[#BloombergLP-balxml]
= xref:BloombergLP.adoc[BloombergLP]::balxml
:relfileprefix: ../
:mrdocs:

Namespace for XML encoding, decoding, and formatting components&period;

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balxml/Base64Parser.adoc[`Base64Parser`] 
| This is a push parser for supported Base64 types (`bsl&colon;&colon;vector&lt;char&gt;` or `bsl&colon;&colon;string`)&period;
| xref:BloombergLP/balxml/ConfigSchema.adoc[`ConfigSchema`] 
| Provide a namespace for the service configuration schema&period;
| xref:BloombergLP/balxml/Decoder.adoc[`Decoder`] 
| Engine for decoding value&hyphen;semantic objects in XML format&period; The `decode` methods are function templates that will decode any object that meets the requirements of a sequence or choice object as defined in the `bdlat&lowbar;sequencefunctions` and `bdlat&lowbar;choicefunctions` components&period; These generic frameworks provide a common compile&hyphen;time interface for manipulating struct&hyphen;like and union&hyphen;like objects&period;
| xref:BloombergLP/balxml/DecoderOptions.adoc[`DecoderOptions`] 
| Options for controlling the XML decoding process&period; The generated C&plus;&plus; code for this schema element is created by using bas&lowbar;codegen&period;pl, run by balxml&sol;code&lowbar;from&lowbar;xsd&period;pl with no hand&hyphen;editing&period;
| xref:BloombergLP/balxml/Decoder_ChoiceContext.adoc[`Decoder&lowbar;ChoiceContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ElementContext.adoc[`Decoder&lowbar;ElementContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ErrorLogger.adoc[`Decoder&lowbar;ErrorLogger`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_InstantiateContext-01.adoc[`Decoder&lowbar;InstantiateContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ListParser.adoc[`Decoder&lowbar;ListParser`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_NillableContext.adoc[`Decoder&lowbar;NillableContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ParseAttribute.adoc[`Decoder&lowbar;ParseAttribute`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ParseAttribute_executeImpProxy.adoc[`Decoder&lowbar;ParseAttribute&lowbar;executeImpProxy`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ParseAttribute_executeProxy.adoc[`Decoder&lowbar;ParseAttribute&lowbar;executeProxy`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ParseNillableObject.adoc[`Decoder&lowbar;ParseNillableObject`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ParseNillableObject_executeImpProxy.adoc[`Decoder&lowbar;ParseNillableObject&lowbar;executeImpProxy`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ParseObject.adoc[`Decoder&lowbar;ParseObject`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ParseObject_executeImpProxy.adoc[`Decoder&lowbar;ParseObject&lowbar;executeImpProxy`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ParseObject_executeProxy.adoc[`Decoder&lowbar;ParseObject&lowbar;executeProxy`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ParseSequenceSimpleContent.adoc[`Decoder&lowbar;ParseSequenceSimpleContent`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_ParseSequenceSubElement.adoc[`Decoder&lowbar;ParseSequenceSubElement`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_PrepareSequenceContext.adoc[`Decoder&lowbar;PrepareSequenceContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_PushParserContext.adoc[`Decoder&lowbar;PushParserContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_SelectContext.adoc[`Decoder&lowbar;SelectContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_SequenceContext.adoc[`Decoder&lowbar;SequenceContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_SimpleContext.adoc[`Decoder&lowbar;SimpleContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_StdStringContext.adoc[`Decoder&lowbar;StdStringContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_StdVectorCharContext.adoc[`Decoder&lowbar;StdVectorCharContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_UTF8Context.adoc[`Decoder&lowbar;UTF8Context`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_UnknownElementContext.adoc[`Decoder&lowbar;UnknownElementContext`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/Decoder_decodeImpProxy.adoc[`Decoder&lowbar;decodeImpProxy`] 
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| xref:BloombergLP/balxml/ElementAttribute.adoc[`ElementAttribute`] 
| Class to represent the properties of an attribute in an XML element tag&period; Note that this class is not value semantic and does not own any of its pointer values&period; The owner of the arguments used to set the value of a `ElementAttribute` is responsible for ensuring that the values remain valid or else must document the conditions that will make the values invalid&period; Some facets are computed the first time that they are needed&period; To avoid extra processing, the caller may supply otherwise&hyphen;computed facets at construction or by calling `reset`&period; Facets provided by the caller are not checked to ensure that they are consistent with one another&period;
| xref:BloombergLP/balxml/Encoder.adoc[`Encoder`] 
| This `class` contains the parameterized `encode` functions that encode `bdlat` types in XML format&period;
| xref:BloombergLP/balxml/EncoderOptions.adoc[`EncoderOptions`] 
| Options for performing XML encodings&period; Encoding style is either COMPACT or PRETTY&period; If encoding style is COMPACT, no whitespace will be added between elements&period; If encoding style is `PRETTY`, then the `InitialIndentLevel`, `SpacesPerLevel`, and `WrapColumn` parameters are used to specify the formatting of the output&period; Note that `InitialIndentLevel`, `SpacesPerLevel`, and `WrapColumn` are ignored when `EncodingStyle` is COMPACT (this is the default)&period; The generated C&plus;&plus; code for this schema element is created by using bas&lowbar;codegen&period;pl, run by balxml&sol;code&lowbar;from&lowbar;xsd&period;pl, with no hand&hyphen;editing&period;
| xref:BloombergLP/balxml/Encoder_Context.adoc[`Encoder&lowbar;Context`] 
| This `struct` contains state that is maintained during encoding&period; It also contains methods for switching between pretty formatting and compact formatting, based on the encoding options&period;
| xref:BloombergLP/balxml/Encoder_EncodeObject.adoc[`Encoder&lowbar;EncodeObject`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/Encoder_EncodeObject_executeImpProxy.adoc[`Encoder&lowbar;EncodeObject&lowbar;executeImpProxy`] 
| Component&hyphen;private struct&period; Do not use&period;
| xref:BloombergLP/balxml/Encoder_EncodeObject_executeProxy.adoc[`Encoder&lowbar;EncodeObject&lowbar;executeProxy`] 
| Component&hyphen;private struct&period; Do not use&period;
| xref:BloombergLP/balxml/Encoder_EncodeValue.adoc[`Encoder&lowbar;EncodeValue`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/Encoder_EncodeValue_executeImpProxy.adoc[`Encoder&lowbar;EncodeValue&lowbar;executeImpProxy`] 
| Component&hyphen;private struct&period; Do not use&period;
| xref:BloombergLP/balxml/Encoder_OptionsCompatibilityUtil.adoc[`Encoder&lowbar;OptionsCompatibilityUtil`] 
| Component&hyphen;private `struct`&period; Do not use&period;
| xref:BloombergLP/balxml/Encoder_SequenceFirstPass.adoc[`Encoder&lowbar;SequenceFirstPass`] 
| Component private class&period; Do not use&period;
| xref:BloombergLP/balxml/Encoder_SequenceFirstPass_addAttributeImpProxy.adoc[`Encoder&lowbar;SequenceFirstPass&lowbar;addAttributeImpProxy`] 
| Component&hyphen;private struct&period; Do not use&period;
| xref:BloombergLP/balxml/Encoder_SequenceFirstPass_addAttributeProxy.adoc[`Encoder&lowbar;SequenceFirstPass&lowbar;addAttributeProxy`] 
| Component&hyphen;private struct&period; Do not use&period;
| xref:BloombergLP/balxml/Encoder_SequenceSecondPass.adoc[`Encoder&lowbar;SequenceSecondPass`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/EncodingStyle.adoc[`EncodingStyle`] 
| Enumeration of encoding style (COMPACT or PRETTY)&period; This struct is generated using bas&lowbar;codegen&period;pl called by balxml&sol;code&lowbar;from&lowbar;xsd&period;pl
| xref:BloombergLP/balxml/ErrorInfo.adoc[`ErrorInfo`] 
| This class provides detailed information for errors encountered during XML parsing&period; Such information is common for most parsers and contains the following data&colon; line number, column number, severity code, identification of source document and the parser error message&period;
| xref:BloombergLP/balxml/Formatter.adoc[`Formatter`] 
| This class provides a set of XML&hyphen;style formatting utilities that enable transparent indentation and wrapping for users attempting to format data with XML tags and attributes&period; A formatter object is instantiated with a pointer to an output stream or streambuf&period; Users can then use the provided utilities to write element tags, attributes, data in a valid XML sequence into the underlying stream&period;
| xref:BloombergLP/balxml/FormatterWhitespaceType.adoc[`FormatterWhitespaceType`] 
| This `struct` describes options available when outputting textual data of an element between its pair of opening and closing tags&period;
| xref:BloombergLP/balxml/Formatter_CompactImplState.adoc[`Formatter&lowbar;CompactImplState`] 
| This class provides an in&hyphen;core, value&hyphen;semantic attribute type that maintains all of the state information needed to print an XML document with minimal whitespace using the operations provided by `Formatter&lowbar;CompactImplUtil`&period;
| xref:BloombergLP/balxml/Formatter_CompactImplStateId.adoc[`Formatter&lowbar;CompactImplStateId`] 
| This `struct` provides a namespace for enumerating a set of labels for distinct states of `Formatter&lowbar;CompactImplState`&period;
| xref:BloombergLP/balxml/Formatter_CompactImplUtil.adoc[`Formatter&lowbar;CompactImplUtil`] 
| This utility `struct` provides a namespace for a suite of operations used to pretty&hyphen;print XML documents given a sequence of tokens to emit&period; Together with `Formatter&lowbar;CompactImplState`, this `struct` provides an implementation of a state machine for such pretty&hyphen;printing&period;
| xref:BloombergLP/balxml/Formatter_Mode.adoc[`Formatter&lowbar;Mode`] 
| This component&hyphen;private utility `struct` provides a namespace for enumerating the set of formatting modes that the `Formatter` can take&period;
| xref:BloombergLP/balxml/Formatter_PrettyImplState.adoc[`Formatter&lowbar;PrettyImplState`] 
| This class provides an in&hyphen;core, value&hyphen;semantic attribute type that maintains all of the state information needed to pretty&hyphen;print an XML document using the operations provided by `Formatter&lowbar;PrettyImplUtil`&period;
| xref:BloombergLP/balxml/Formatter_PrettyImplStateId.adoc[`Formatter&lowbar;PrettyImplStateId`] 
| This `struct` provides a namespace for enumerating the set of labels for distinct states of `Formatter&lowbar;PrettyImplState`&period;
| xref:BloombergLP/balxml/Formatter_PrettyImplUtil.adoc[`Formatter&lowbar;PrettyImplUtil`] 
| This utility `struct` provides a namespace for a suite of operations used to pretty&hyphen;print XML documents given a sequence of tokens to emit&period; Together with `Formatter&lowbar;PrettyImplState`, this `struct` provides an implementation of a state machine for such pretty&hyphen;printing&period;
| xref:BloombergLP/balxml/Formatter_State.adoc[`Formatter&lowbar;State`] 
| This component&hyphen;private, in&hyphen;core, value&hyphen;semantic class provides a variant that can be inhabited by an object of either the component&hyphen;private `Formatter&lowbar;CompactImplState` type or the component&hyphen;private `Formatter&lowbar;PrettyImplState` type&period;
| xref:BloombergLP/balxml/Formatter_StreamHolder.adoc[`Formatter&lowbar;StreamHolder`] 
| This component&hyphen;private class provides a mechanism for holding the `bsl&colon;&colon;ostream` used by the `Formatter` to emit XML documents&period; Objects of `Formatter&lowbar;StreamHolder` type can be constructed with either a `bsl&colon;&colon;streambuf &ast;` or a `bsl&colon;&colon;ostream &ast;`&period; If a stream holder is constructed with a `bsl&colon;&colon;streambuf &ast;`, then it owns its held `bsl&colon;&colon;ostream`, which is constructed with the supplied stream buffer&period; If a stream holder is constructed with a `bsl&colon;&colon;ostream &ast;`, its held `bsl&colon;&colon;ostream` is the supplied stream&period;
| xref:BloombergLP/balxml/HexParser.adoc[`HexParser`] 
| This is a push parser for supported Hex types (`bsl&colon;&colon;vector&lt;char&gt;` or `bsl&colon;&colon;string`)&period;
| xref:BloombergLP/balxml/HexParser_Helper.adoc[`HexParser&lowbar;Helper`] 
| Namespace for facilities that are used in the implementation of class `HexParser&lt;TYPE&gt;`&period; Only instances of `HexParser&lt;TYPE&gt;` can access the facilities in this class&period;
| xref:BloombergLP/balxml/ListParser.adoc[`ListParser`] 
| This is a push parser for lists&period;
| xref:BloombergLP/balxml/MiniReader.adoc[`MiniReader`] 
| This `class` provides a concrete and efficient implementation of the `Reader` protocol&period;
| xref:BloombergLP/balxml/NamespaceRegistry.adoc[`NamespaceRegistry`] 
| Mapping that associates a unique integer with each registered namespace URI&period;
| xref:BloombergLP/balxml/PrefixStack.adoc[`PrefixStack`] 
| `PrefixStack` allows associating a unique integer (namespace ID) with prefix&period;
| xref:BloombergLP/balxml/Reader.adoc[`Reader`] 
| This abstract class defines an interface for fast, forward&hyphen;only access to XML data&period; An object belonging to a derived&hyphen;class implementation of this protocol is required to be re&hyphen;usable, such that a new XML document can be parsed using the same reader object by calling `close` followed by another `open`&period;
| xref:BloombergLP/balxml/TypesParserUtil.adoc[`TypesParserUtil`] 
| This `struct` contains functions for parsing input strings using various XML formatting modes&period;
| xref:BloombergLP/balxml/TypesParserUtilImp_ParseBase64.adoc[`TypesParserUtilImp&lowbar;ParseBase64`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesParserUtilImp_ParseDecimal.adoc[`TypesParserUtilImp&lowbar;ParseDecimal`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesParserUtilImp_ParseDefault.adoc[`TypesParserUtilImp&lowbar;ParseDefault`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesParserUtilImp_ParseHex.adoc[`TypesParserUtilImp&lowbar;ParseHex`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesParserUtilImp_ParseList.adoc[`TypesParserUtilImp&lowbar;ParseList`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesParserUtilImp_ParseListElementDefault.adoc[`TypesParserUtilImp&lowbar;ParseListElementDefault`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesParserUtilImp_ParseText.adoc[`TypesParserUtilImp&lowbar;ParseText`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesPrintUtil.adoc[`TypesPrintUtil`] 
| This `struct` contains functions for printing objects to output streams using various formatting modes&period;
| xref:BloombergLP/balxml/TypesPrintUtilImp_PrintBase64.adoc[`TypesPrintUtilImp&lowbar;PrintBase64`] 
| Component&hyphen;private struct&period; Do not use&period;
| xref:BloombergLP/balxml/TypesPrintUtilImp_PrintDecimal.adoc[`TypesPrintUtilImp&lowbar;PrintDecimal`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesPrintUtilImp_PrintDefault.adoc[`TypesPrintUtilImp&lowbar;PrintDefault`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesPrintUtilImp_PrintHex.adoc[`TypesPrintUtilImp&lowbar;PrintHex`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesPrintUtilImp_PrintList.adoc[`TypesPrintUtilImp&lowbar;PrintList`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesPrintUtilImp_PrintListElementDefault.adoc[`TypesPrintUtilImp&lowbar;PrintListElementDefault`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/TypesPrintUtilImp_PrintText.adoc[`TypesPrintUtilImp&lowbar;PrintText`] 
| Component&hyphen;private class&period; Do not use&period;
| xref:BloombergLP/balxml/Utf8ReaderWrapper.adoc[`Utf8ReaderWrapper`] 
| This class &quot;has a&quot; pointer to a held and wrapped `Reader` object, and operations on this object are passed to the held reader&period; The held reader is passed a `Utf8CheckingInStreamBufWrapper`, which holds and wraps a normal `streambuf`&period; The `Utf8CheckingInStreamBufWrapper` checks input for invalid UTF&hyphen;8, and if it detects any, makes the diagnosis of the problem available through the `errorInfo` accessor&period;
| xref:BloombergLP/balxml/Util.adoc[`Util`] 
| Utility functions for `balxml`&period;
| xref:BloombergLP/balxml/ValidatingReader.adoc[`ValidatingReader`] 
| TBD Class description
|===


== Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balxml/operator_lshift-01e.adoc[`operator&lt;&lt;`] 
| Stream insertion operators
| xref:BloombergLP/balxml/operator_eq-06.adoc[`operator&equals;&equals;`] 
| Equality operators
| xref:BloombergLP/balxml/operator_not_eq-0a.adoc[`operator!&equals;`] 
| Inequality operators
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
