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

This `class` provides a concrete and efficient implementation of the `Reader` protocol&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class MiniReader
    : public xref:BloombergLP/balxml/Reader.adoc[Reader]
----

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/balxml/Reader.adoc[Reader]`
| This abstract class defines an interface for fast, forward&hyphen;only access to XML data&period;
|===

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balxml/Reader/StreamBufPtr.adoc[`StreamBufPtr`] 
| Managed pointer to a `bsl&colon;&colon;streambuf` used for external entity input&period;
| xref:BloombergLP/balxml/Reader/XmlResolverFunctor.adoc[`XmlResolverFunctor`] 
| Type for a user&hyphen;supplied functor that opens an external XML resource&period;
|===


== Enums

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balxml/Reader/NodeType-02.adoc[`NodeType`] 
| Node types returned by `nodeType`, representing XML syntactic constructs within a document&period; Not every `Reader` implementation distinguishes all node types&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balxml/MiniReader/2constructor-0f.adoc[`MiniReader`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/balxml/MiniReader/2destructor.adoc[`&#126;MiniReader`] [.small]#[destructor]# [.small]#[virtual]#
| Destroy this reader and release resources&period;
| xref:BloombergLP/balxml/MiniReader/advanceToEndNode.adoc[`advanceToEndNode`]  [.small]#[virtual]#
| Skip all sub&hyphen;elements and position the reader on the corresponding end node&period;
| xref:BloombergLP/balxml/MiniReader/advanceToEndNodeRaw.adoc[`advanceToEndNodeRaw`]  [.small]#[virtual]#
| Skip all sub&hyphen;elements to the end node without well&hyphen;formedness checks&period;
| xref:BloombergLP/balxml/MiniReader/advanceToEndNodeRawBare.adoc[`advanceToEndNodeRawBare`]  [.small]#[virtual]#
| Skip all sub&hyphen;elements to the end node, allowing only bare XML&period;
| xref:BloombergLP/balxml/MiniReader/advanceToNextNode.adoc[`advanceToNextNode`]  [.small]#[virtual]#
| Move to the next node in the data stream created by `open`&period;
| xref:BloombergLP/balxml/MiniReader/close.adoc[`close`]  [.small]#[virtual]#
| Close the reader&period;
| xref:BloombergLP/balxml/MiniReader/documentEncoding.adoc[`documentEncoding`]  [.small]#[virtual]#
| Return the document encoding or NULL on error&period;
| xref:BloombergLP/balxml/Reader/dumpNode.adoc[`dumpNode`] 
| Print the information about the current node to the specified output `os` stream&period;
| xref:BloombergLP/balxml/MiniReader/errorInfo.adoc[`errorInfo`]  [.small]#[virtual]#
| Return a reference to the non&hyphen;modifiable error information for this reader&period; The returned value becomes invalid when `close` is called or the reader is destroyed&period;
| xref:BloombergLP/balxml/MiniReader/getColumnNumber.adoc[`getColumnNumber`]  [.small]#[virtual]#
| Return the current column number within the input stream&period;
| xref:BloombergLP/balxml/MiniReader/getCurrentPosition.adoc[`getCurrentPosition`] 
| Return the current scanner position as offset from the beginning of document&period;
| xref:BloombergLP/balxml/MiniReader/getLineNumber.adoc[`getLineNumber`]  [.small]#[virtual]#
| Return the current line number within the input stream&period;
| xref:BloombergLP/balxml/MiniReader/isEmptyElement.adoc[`isEmptyElement`]  [.small]#[virtual]#
| Return true if the current node is an empty element&period;
| xref:BloombergLP/balxml/Reader/isError.adoc[`isError`] 
| Return `true` if the derived object encountered a error&period; This method is equivalent to a call to `errorInfo()&period;isError()&semi;`
| xref:BloombergLP/balxml/Reader/isFatalError.adoc[`isFatalError`] 
| Return `true` if the derived object encountered a fatal error&period; This method is equivalent to a call to `errorInfo()&period;isFatalError()&semi;`
| xref:BloombergLP/balxml/MiniReader/isOpen.adoc[`isOpen`]  [.small]#[virtual]#
| Return true if `open` was called successfully and `close` has not yet been called and false otherwise&period;
| xref:BloombergLP/balxml/Reader/isWarning.adoc[`isWarning`] 
| Return `true` if the derived object encountered a warning&period; This method is equivalent to a call to `errorInfo()&period;isWarning()&semi;`
| xref:BloombergLP/balxml/MiniReader/lookupAttribute-00.adoc[`lookupAttribute`] 
| `lookupAttribute` overloads
| xref:BloombergLP/balxml/MiniReader/nodeBaseUri.adoc[`nodeBaseUri`]  [.small]#[virtual]#
| Return the base URI of the current node&period;
| xref:BloombergLP/balxml/MiniReader/nodeDepth.adoc[`nodeDepth`]  [.small]#[virtual]#
| Return the nesting depth of the current node in the XML document&period; The root node has depth 0&period;
| xref:BloombergLP/balxml/MiniReader/nodeEndPosition.adoc[`nodeEndPosition`] 
| Return the byte position within the document corresponding to the byte following after the last byte of the current node&period;
| xref:BloombergLP/balxml/MiniReader/nodeHasValue.adoc[`nodeHasValue`]  [.small]#[virtual]#
| Return true if the current node has a value and false otherwise&period;
| xref:BloombergLP/balxml/MiniReader/nodeLocalName.adoc[`nodeLocalName`]  [.small]#[virtual]#
| Return the local name of the current node&period;
| xref:BloombergLP/balxml/MiniReader/nodeName.adoc[`nodeName`]  [.small]#[virtual]#
| Return the qualified name of the current node&period;
| xref:BloombergLP/balxml/MiniReader/nodeNamespaceId.adoc[`nodeNamespaceId`]  [.small]#[virtual]#
| Return the namespace ID of the current node if the current node has a namespace id and a negative number otherwise&period;
| xref:BloombergLP/balxml/MiniReader/nodeNamespaceUri.adoc[`nodeNamespaceUri`]  [.small]#[virtual]#
| Return the namespace URI of the current node&period;
| xref:BloombergLP/balxml/MiniReader/nodePrefix.adoc[`nodePrefix`]  [.small]#[virtual]#
| Return the prefix name of the current node&period;
| xref:BloombergLP/balxml/MiniReader/nodeStartPosition.adoc[`nodeStartPosition`] 
| Return the byte position within the document corresponding to the first byte of the current node&period;
| xref:BloombergLP/balxml/MiniReader/nodeType.adoc[`nodeType`]  [.small]#[virtual]#
| Return the node type of the current node if the reader `isOpen` and has not encounter an error and `Reader&colon;&colon;NONE` otherwise&period;
| xref:BloombergLP/balxml/MiniReader/nodeValue.adoc[`nodeValue`]  [.small]#[virtual]#
| Return the value of the current node&period;
| xref:BloombergLP/balxml/MiniReader/numAttributes.adoc[`numAttributes`]  [.small]#[virtual]#
| Return the number of attributes for the current node if that node has attributes and 0 otherwise&period;
| xref:BloombergLP/balxml/MiniReader/open-04.adoc[`open`] 
| `open` overloads
| xref:BloombergLP/balxml/MiniReader/options.adoc[`options`]  [.small]#[virtual]#
| Return the option flags&period;
| xref:BloombergLP/balxml/MiniReader/prefixStack.adoc[`prefixStack`]  [.small]#[virtual]#
| Return a pointer to the modifiable prefix stack used by this reader&period;
| xref:BloombergLP/balxml/MiniReader/resolver.adoc[`resolver`]  [.small]#[virtual]#
| Return the external XML resource resolver&period;
| xref:BloombergLP/balxml/MiniReader/setOptions.adoc[`setOptions`]  [.small]#[virtual]#
| Set the options to the flags in the specified `flags`&period;
| xref:BloombergLP/balxml/MiniReader/setPrefixStack.adoc[`setPrefixStack`]  [.small]#[virtual]#
| Set the prefix stack to the stack at the specified `prefixes` address&period;
| xref:BloombergLP/balxml/MiniReader/setResolver.adoc[`setResolver`]  [.small]#[virtual]#
| Set the external XML resource resolver to the specified `resolver`&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balxml/Reader/nodeTypeAsString.adoc[`nodeTypeAsString`] 
| Return a string representation for the specified `nodeType` code or &quot;(&ast; UNKNOWN NODE TYPE &ast;)&quot; if nodeType is not one of the values enumerated in `NodeType`&period;
|===


== Friends

[cols="1,4"]
|===
| Name| Description
| `BloombergLP::balxml::MiniReader::Node`
| 
|===


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