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

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;

== Synopsis

Declared in `&lt;balxml&lowbar;decoder&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class Decoder;
----

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balxml/Decoder/2constructor-0ec.adoc[`Decoder`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/balxml/Decoder/2destructor.adoc[`&#126;Decoder`] [.small]#[destructor]#
| Call `close` and destroy this object&period;
| xref:BloombergLP/balxml/Decoder/close.adoc[`close`] 
| Put the associated `Reader` object (i&period;e&period;, the `reader` specified at construction) into a closed state&period;
| xref:BloombergLP/balxml/Decoder/decode-04.adoc[`decode`] 
| `decode` overloads
| xref:BloombergLP/balxml/Decoder/decodeAny-01.adoc[`decodeAny`] 
| `decodeAny` overloads
| xref:BloombergLP/balxml/Decoder/errorCount.adoc[`errorCount`] 
| Return the number of errors that occurred during decoding&period; This number is reset to zero on a call to `open`&period;
| xref:BloombergLP/balxml/Decoder/errorInfo.adoc[`errorInfo`] 
| Return a pointer to the modifiable error&hyphen;reporting structure associated with this decoder (i&period;e&period;, the `errInfo` pointer provided at construction)&period; The value stored in the error structure is reset to indicate no error on a successful call to `open`&period;
| xref:BloombergLP/balxml/Decoder/errorSeverity.adoc[`errorSeverity`] 
| Return the severity of the most severe warning or error encountered during the last call to the `decode` method&period; The severity is reset each time `decode` is called&period;
| xref:BloombergLP/balxml/Decoder/errorStream.adoc[`errorStream`] 
| Return pointer to the error stream&period;
| xref:BloombergLP/balxml/Decoder/loggedMessages.adoc[`loggedMessages`] 
| Return a string containing any error, warning, or trace messages that were logged during the last call to the `decode` method&period; The log is reset each time `decode` is called&period;
| xref:BloombergLP/balxml/Decoder/numUnknownElementsSkipped.adoc[`numUnknownElementsSkipped`] 
| Return the number of unknown elements that were skipped during the previous decoding operation&period; Note that unknown elements are skipped only if `true &equals;&equals; options()&hyphen;&gt;skipUnknownElements()`&period;
| xref:BloombergLP/balxml/Decoder/open-03.adoc[`open`] 
| `open` overloads
| xref:BloombergLP/balxml/Decoder/options.adoc[`options`] 
| Return a pointer to the non&hyphen;modifiable decoder options provided at construction&period;
| xref:BloombergLP/balxml/Decoder/reader.adoc[`reader`] 
| Return the a pointer to the modifiable reader associated with this decoder (i&period;e&period;, the `reader` pointer provided at construction)&period;
| xref:BloombergLP/balxml/Decoder/setNumUnknownElementsSkipped.adoc[`setNumUnknownElementsSkipped`] 
| Set the number of unknown elements skipped by the decoder during the current decoding operation to the specified `value`&period; The behavior is undefined unless `0 &lt;&equals; value`&period;
| xref:BloombergLP/balxml/Decoder/warningCount.adoc[`warningCount`] 
| Return the number of warnings that occurred during decoding&period; This number is reset to zero on a call to `open`&period;
| xref:BloombergLP/balxml/Decoder/warningStream.adoc[`warningStream`] 
| Return pointer to the warning stream&period;
|===


== Friends

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/balxml/Decoder_ParseObject.adoc[BloombergLP::balxml::Decoder&lowbar;ParseObject]`
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| `xref:BloombergLP/balxml/Decoder_ErrorLogger.adoc[BloombergLP::balxml::Decoder&lowbar;ErrorLogger]`
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| `xref:BloombergLP/balxml/Decoder_decodeImpProxy.adoc[BloombergLP::balxml::Decoder&lowbar;decodeImpProxy]`
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
| `xref:BloombergLP/balxml/Decoder_ElementContext.adoc[BloombergLP::balxml::Decoder&lowbar;ElementContext]`
| COMPONENT&hyphen;PRIVATE CLASS&period; DO NOT USE OUTSIDE OF THIS COMPONENT&period;
|===


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