BDE 4.14.0 Production release
Loading...
Searching...
No Matches
balxml.h
Go to the documentation of this file.
1/// @file balxml.h
2///
3///
4/// @defgroup balxml Package balxml
5/// @brief Basic Application Library XML (balxml)
6/// @addtogroup bal
7/// @{
8/// @addtogroup balxml
9/// [balxml]: group__balxml.html
10/// @{
11///
12/// # Purpose {#balxml-purpose}
13/// Provide utility components for using XML and XSD.
14///
15/// # Mnemonic {#balxml-mnemonic}
16/// Basic Application Library XML (balxml)
17///
18/// @see a_xercesc, a_xml2
19///
20/// # Description {#balxml-description}
21/// The 'balxml' package provides utilities for working with XML and
22/// XSD. Clients can use the components provided by 'balxml' for parsing and
23/// printing fundamental types, XML schema, and XML data documents.
24///
25/// ## Code Generation
26///
27/// The script 'code_from_xsd.pl' will automatically generate several components
28/// from the file 'balxml.xsd'. It will refuse to run in the 'balxml' source
29/// directory. Create a separate, temporary directory and copy 'balxml.xsd' and
30/// 'code_from_xsd.sh' into it, 'cd' into that directory, and run
31/// 'code_from_xsd.sh' there will no command-line arguments.
32///
33/// Note that the @ref balxml_encodingstyle component will need hand-editing due to
34/// redundant, synonymous enum values.
35///
36/// ## Hierarchical Synopsis
37///
38/// The 'balxml' package currently has 24 components having 6 levels of physical
39/// dependency. The list below shows the hierarchical ordering of the components.
40/// The order of components within each level is not architecturally significant,
41/// just alphabetical.
42/// @code
43/// 6. balxml_decoder
44/// balxml_encoder
45///
46/// 5. balxml_formatter
47/// balxml_minireader
48/// balxml_utf8readerwrapper
49/// balxml_validatingreader
50///
51/// 4. balxml_formatter_compactimpl !PRIVATE!
52/// balxml_formatter_prettyimpl !PRIVATE!
53/// balxml_reader
54/// balxml_typesparserutil
55///
56/// 3. balxml_elementattribute
57/// balxml_typesprintutil
58///
59/// 2. balxml_encoderoptions
60/// balxml_prefixstack
61///
62/// 1. balxml_base64parser !DEPRECATED!
63/// balxml_configschema
64/// balxml_decoderoptions
65/// balxml_encodingstyle
66/// balxml_errorinfo
67/// balxml_formatterwhitespacetype
68/// balxml_hexparser
69/// balxml_listparser
70/// balxml_namespaceregistry
71/// balxml_util
72/// @endcode
73///
74/// ## Component Synopsis
75///
76/// @ref balxml_base64parser : !DEPRECATED!
77/// Provide push parser for Base64 types.
78///
79/// @ref balxml_configschema :
80/// Provide the service configuration schema
81///
82/// @ref balxml_decoder :
83/// Provide a generic translation from XML into C++ objects.
84///
85/// @ref balxml_decoderoptions :
86/// Provide value-semantic attribute classes
87///
88/// @ref balxml_elementattribute :
89/// Provide the properties of an attribute in an XML element tag.
90///
91/// @ref balxml_encoder :
92/// Provide an XML encoder utility.
93///
94/// @ref balxml_encoderoptions :
95/// Provide value-semantic attribute classes
96///
97/// @ref balxml_encodingstyle :
98/// Provide value-semantic attribute classes
99///
100/// @ref balxml_errorinfo :
101/// Provide common error information for XML components.
102///
103/// @ref balxml_formatter :
104/// Provide a simple interface for writing formatted XML.
105///
106/// 'balxml_formatter_compactimpl': !PRIVATE!
107/// Provide a minimal-whitespace implementation for @ref balxml_formatter .
108///
109/// 'balxml_formatter_prettyimpl': !PRIVATE!
110/// Provide pretty-printing implementation for @ref balxml_formatter .
111///
112/// @ref balxml_formatterwhitespacetype :
113/// Enumerate the set of whitespace options for @ref balxml_formatter .
114///
115/// @ref balxml_hexparser :
116/// Provide push parser for hex types.
117///
118/// @ref balxml_listparser :
119/// Provide push parser for lists.
120///
121/// @ref balxml_minireader :
122/// Provide light-weight implementation of `balxml::Reader` protocol.
123///
124/// @ref balxml_namespaceregistry :
125/// Provide a unique integer ID for each XML namespace.
126///
127/// @ref balxml_prefixstack :
128/// Provide a unique integer ID for each XML namespace.
129///
130/// @ref balxml_reader :
131/// Provide common reader protocol for parsing XML documents.
132///
133/// @ref balxml_typesparserutil :
134/// Provide a utility for parsing types using XML formatting.
135///
136/// @ref balxml_typesprintutil :
137/// Provide a utility for printing types using XML formatting.
138///
139/// @ref balxml_utf8readerwrapper :
140/// Provide wrapper for `Reader` to check input UTF-8 validity.
141///
142/// @ref balxml_util :
143/// Provide a suite of common XML utilities.
144///
145/// @ref balxml_validatingreader :
146/// Provide a common reader protocol for parsing and validating XML.
147///
148/// @}
149/** @} */