System::Xml::XmlNodeReader Class Reference

Represents a reader that provides fast, non-cached forward only access to XML data in an XmlNode. More...

#include "xml_node_reader.h"

Inherits System::Xml::XmlReader, and System::Xml::IXmlNamespaceResolver.

Public Types

using Ptr = SharedPtr< XmlNodeReader >
 An alias for shared pointer to an instance of this class. More...
 
- Public Types inherited from System::Xml::XmlReader
using Ptr = SharedPtr< XmlReader >
 An alias for shared pointer to an instance of this class. More...
 
- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 

Public Member Functions

ASPOSECPP_SHARED_API XmlNodeType get_NodeType () override
 Returns the type of the current node. More...
 
ASPOSECPP_SHARED_API String get_Name () override
 Returns the qualified name of the current node. More...
 
ASPOSECPP_SHARED_API String get_LocalName () override
 Returns the local name of the current node. More...
 
ASPOSECPP_SHARED_API String get_NamespaceURI () override
 Returns the namespace URI (as defined in the W3C Namespace specification) of the node on which the reader is positioned. More...
 
ASPOSECPP_SHARED_API String get_Prefix () override
 Returns the namespace prefix associated with the current node. More...
 
ASPOSECPP_SHARED_API bool get_HasValue () override
 Returns a value indicating whether the current node can have a XmlNodeReader::get_Value value. More...
 
ASPOSECPP_SHARED_API String get_Value () override
 Returns the text value of the current node. More...
 
ASPOSECPP_SHARED_API int32_t get_Depth () override
 Returns the depth of the current node in the XML document. More...
 
ASPOSECPP_SHARED_API String get_BaseURI () override
 Returns the base URI of the current node. More...
 
ASPOSECPP_SHARED_API bool get_CanResolveEntity () override
 Returns a value indicating whether this reader can parse and resolve entities. More...
 
ASPOSECPP_SHARED_API bool get_IsEmptyElement () override
 Returns a value indicating whether the current node is an empty element (for example, <MyElement/>). More...
 
ASPOSECPP_SHARED_API bool get_IsDefault () override
 Returns a value indicating whether the current node is an attribute that was generated from the default value defined in the document type definition (DTD) or schema. More...
 
ASPOSECPP_SHARED_API System::Xml::XmlSpace get_XmlSpace () override
 Returns the current xml:space scope. More...
 
ASPOSECPP_SHARED_API String get_XmlLang () override
 Returns the current xml:lang scope. More...
 
ASPOSECPP_SHARED_API SharedPtr< Schema::IXmlSchemaInfoget_SchemaInfo () override
 Returns the schema information that has been assigned to the current node. More...
 
ASPOSECPP_SHARED_API int32_t get_AttributeCount () override
 Returns the number of attributes on the current node. More...
 
ASPOSECPP_SHARED_API bool get_EOF () override
 Returns a value indicating whether the reader is positioned at the end of the stream. More...
 
ASPOSECPP_SHARED_API System::Xml::ReadState get_ReadState () override
 Returns the state of the reader. More...
 
ASPOSECPP_SHARED_API bool get_HasAttributes () override
 Returns a value indicating whether the current node has any attributes. More...
 
ASPOSECPP_SHARED_API SharedPtr< XmlNameTableget_NameTable () override
 Returns the XmlNameTable associated with this implementation. More...
 
ASPOSECPP_SHARED_API bool get_CanReadBinaryContent () override
 Returns a value indicating whether the XmlNodeReader implements the binary content read methods. More...
 
ASPOSECPP_SHARED_API XmlNodeReader (const SharedPtr< XmlNode > &node)
 Creates an instance of the XmlNodeReader class using the specified XmlNode. More...
 
ASPOSECPP_SHARED_API String GetAttribute (String name) override
 Returns the value of the attribute with the specified name. More...
 
ASPOSECPP_SHARED_API String GetAttribute (String name, String namespaceURI) override
 Returns the value of the attribute with the specified local name and namespace URI. More...
 
ASPOSECPP_SHARED_API String GetAttribute (int32_t attributeIndex) override
 Returns the value of the attribute with the specified index. More...
 
ASPOSECPP_SHARED_API bool MoveToAttribute (String name) override
 Moves to the attribute with the specified name. More...
 
ASPOSECPP_SHARED_API bool MoveToAttribute (String name, String namespaceURI) override
 Moves to the attribute with the specified local name and namespace URI. More...
 
ASPOSECPP_SHARED_API void MoveToAttribute (int32_t attributeIndex) override
 Moves to the attribute with the specified index. More...
 
ASPOSECPP_SHARED_API bool MoveToFirstAttribute () override
 Moves to the first attribute. More...
 
ASPOSECPP_SHARED_API bool MoveToNextAttribute () override
 Moves to the next attribute. More...
 
ASPOSECPP_SHARED_API bool MoveToElement () override
 Moves to the element that contains the current attribute node. More...
 
ASPOSECPP_SHARED_API bool Read () override
 Reads the next node from the stream. More...
 
ASPOSECPP_SHARED_API void Close () override
 Changes the XmlNodeReader::get_ReadState to ReadState::Closed. More...
 
ASPOSECPP_SHARED_API void Skip () override
 Skips the children of the current node. More...
 
ASPOSECPP_SHARED_API String ReadString () override
 Reads the contents of an element or text node as a string. More...
 
ASPOSECPP_SHARED_API String LookupNamespace (const String &prefix) override
 Resolves a namespace prefix in the current element's scope. More...
 
ASPOSECPP_SHARED_API void ResolveEntity () override
 Resolves the entity reference for EntityReference nodes. More...
 
ASPOSECPP_SHARED_API bool ReadAttributeValue () override
 Parses the attribute value into one or more Text, EntityReference, or EndEntity nodes. More...
 
ASPOSECPP_SHARED_API int32_t ReadContentAsBase64 (ArrayPtr< uint8_t > buffer, int32_t index, int32_t count) override
 Reads the content and returns the Base64 decoded binary bytes. More...
 
ASPOSECPP_SHARED_API int32_t ReadContentAsBinHex (ArrayPtr< uint8_t > buffer, int32_t index, int32_t count) override
 Reads the content and returns the BinHex decoded binary bytes. More...
 
ASPOSECPP_SHARED_API int32_t ReadElementContentAsBase64 (ArrayPtr< uint8_t > buffer, int32_t index, int32_t count) override
 Reads the element and decodes the Base64 content. More...
 
ASPOSECPP_SHARED_API int32_t ReadElementContentAsBinHex (ArrayPtr< uint8_t > buffer, int32_t index, int32_t count) override
 Reads the element and decodes the BinHex content. More...
 
- Public Member Functions inherited from System::Xml::XmlReader
virtual ASPOSECPP_SHARED_API SharedPtr< XmlReaderSettingsget_Settings ()
 Returns the XmlReaderSettings object used to create this XmlReader instance. More...
 
virtual ASPOSECPP_SHARED_API char16_t get_QuoteChar ()
 When overridden in a derived class, gets the quotation mark character used to enclose the value of an attribute node. More...
 
virtual ASPOSECPP_SHARED_API TypeInfo get_ValueType ()
 Returns The type for the current node. More...
 
virtual ASPOSECPP_SHARED_API bool get_CanReadValueChunk ()
 Returns a value indicating whether the XmlReader implements the XmlReader::ReadValueChunk method. More...
 
virtual ASPOSECPP_SHARED_API SharedPtr< ObjectReadContentAsObject ()
 Reads the text content at the current position as an Object. More...
 
virtual ASPOSECPP_SHARED_API bool ReadContentAsBoolean ()
 Reads the text content at the current position as a Boolean. More...
 
virtual ASPOSECPP_SHARED_API DateTime ReadContentAsDateTime ()
 Reads the text content at the current position as a DateTime object. More...
 
virtual ASPOSECPP_SHARED_API DateTimeOffset ReadContentAsDateTimeOffset ()
 Reads the text content at the current position as a DateTimeOffset object. More...
 
virtual ASPOSECPP_SHARED_API double ReadContentAsDouble ()
 Reads the text content at the current position as a double-precision floating-point number. More...
 
virtual ASPOSECPP_SHARED_API float ReadContentAsFloat ()
 Reads the text content at the current position as a single-precision floating point number. More...
 
virtual ASPOSECPP_SHARED_API Decimal ReadContentAsDecimal ()
 Reads the text content at the current position as a Decimal object. More...
 
virtual ASPOSECPP_SHARED_API int32_t ReadContentAsInt ()
 Reads the text content at the current position as a 32-bit signed integer. More...
 
virtual ASPOSECPP_SHARED_API int64_t ReadContentAsLong ()
 Reads the text content at the current position as a 64-bit signed integer. More...
 
virtual ASPOSECPP_SHARED_API String ReadContentAsString ()
 Reads the text content at the current position as a String object. More...
 
virtual ASPOSECPP_SHARED_API SharedPtr< ObjectReadContentAs (const TypeInfo &returnType, SharedPtr< IXmlNamespaceResolver > namespaceResolver)
 Reads the content as an object of the type specified. More...
 
virtual ASPOSECPP_SHARED_API SharedPtr< ObjectReadElementContentAsObject ()
 Reads the current element and returns the contents as an Object. More...
 
virtual ASPOSECPP_SHARED_API SharedPtr< ObjectReadElementContentAsObject (String localName, String namespaceURI)
 Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as an Object. More...
 
virtual ASPOSECPP_SHARED_API bool ReadElementContentAsBoolean ()
 Reads the current element and returns the contents as a Boolean object. More...
 
virtual ASPOSECPP_SHARED_API bool ReadElementContentAsBoolean (String localName, String namespaceURI)
 Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a Boolean object. More...
 
virtual ASPOSECPP_SHARED_API DateTime ReadElementContentAsDateTime ()
 Reads the current element and returns the contents as a DateTime object. More...
 
virtual ASPOSECPP_SHARED_API DateTime ReadElementContentAsDateTime (String localName, String namespaceURI)
 Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a DateTime object. More...
 
virtual ASPOSECPP_SHARED_API double ReadElementContentAsDouble ()
 Reads the current element and returns the contents as a double-precision floating-point number. More...
 
virtual ASPOSECPP_SHARED_API double ReadElementContentAsDouble (String localName, String namespaceURI)
 Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a double-precision floating-point number. More...
 
virtual ASPOSECPP_SHARED_API float ReadElementContentAsFloat ()
 Reads the current element and returns the contents as single-precision floating-point number. More...
 
virtual ASPOSECPP_SHARED_API float ReadElementContentAsFloat (String localName, String namespaceURI)
 Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a single-precision floating-point number. More...
 
virtual ASPOSECPP_SHARED_API Decimal ReadElementContentAsDecimal ()
 Reads the current element and returns the contents as a Decimal object. More...
 
virtual ASPOSECPP_SHARED_API Decimal ReadElementContentAsDecimal (String localName, String namespaceURI)
 Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a Decimal object. More...
 
virtual ASPOSECPP_SHARED_API int32_t ReadElementContentAsInt ()
 Reads the current element and returns the contents as a 32-bit signed integer. More...
 
virtual ASPOSECPP_SHARED_API int32_t ReadElementContentAsInt (String localName, String namespaceURI)
 Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a 32-bit signed integer. More...
 
virtual ASPOSECPP_SHARED_API int64_t ReadElementContentAsLong ()
 Reads the current element and returns the contents as a 64-bit signed integer. More...
 
virtual ASPOSECPP_SHARED_API int64_t ReadElementContentAsLong (String localName, String namespaceURI)
 Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a 64-bit signed integer. More...
 
virtual ASPOSECPP_SHARED_API String ReadElementContentAsString ()
 Reads the current element and returns the contents as a String object. More...
 
virtual ASPOSECPP_SHARED_API String ReadElementContentAsString (String localName, String namespaceURI)
 Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a String object. More...
 
virtual ASPOSECPP_SHARED_API SharedPtr< ObjectReadElementContentAs (const TypeInfo &returnType, SharedPtr< IXmlNamespaceResolver > namespaceResolver)
 Reads the element content as the requested type. More...
 
virtual ASPOSECPP_SHARED_API SharedPtr< ObjectReadElementContentAs (const TypeInfo &returnType, SharedPtr< IXmlNamespaceResolver > namespaceResolver, String localName, String namespaceURI)
 Checks that the specified local name and namespace URI matches that of the current element, then reads the element content as the requested type. More...
 
virtual ASPOSECPP_SHARED_API String idx_get (int32_t i)
 When overridden in a derived class, gets the value of the attribute with the specified index. More...
 
virtual ASPOSECPP_SHARED_API String idx_get (String name)
 When overridden in a derived class, gets the value of the attribute with the specified XmlReader::get_Name value. More...
 
virtual ASPOSECPP_SHARED_API String idx_get (String name, String namespaceURI)
 When overridden in a derived class, gets the value of the attribute with the specified XmlReader::get_LocalName and XmlReader::get_NamespaceURI values. More...
 
virtual ASPOSECPP_SHARED_API int32_t ReadValueChunk (ArrayPtr< char16_t > buffer, int32_t index, int32_t count)
 Reads large streams of text embedded in an XML document. More...
 
virtual ASPOSECPP_SHARED_API XmlNodeType MoveToContent ()
 Checks whether the current node is a content (non-white space text, CDATA, Element, EndElement, EntityReference, or EndEntity) node. If the node is not a content node, the reader skips ahead to the next content node or end of file. It skips over nodes of the following type: ProcessingInstruction, DocumentType, Comment, Whitespace, or SignificantWhitespace. More...
 
virtual ASPOSECPP_SHARED_API void ReadStartElement ()
 Checks that the current node is an element and advances the reader to the next node. More...
 
virtual ASPOSECPP_SHARED_API void ReadStartElement (String name)
 Checks that the current content node is an element with the given XmlReader::get_Name value and advances the reader to the next node. More...
 
virtual ASPOSECPP_SHARED_API void ReadStartElement (String localname, String ns)
 Checks that the current content node is an element with the given XmlReader::get_LocalName and XmlReader::get_NamespaceURI values and advances the reader to the next node. More...
 
virtual ASPOSECPP_SHARED_API String ReadElementString ()
 Reads a text-only element. However, it is recommended to use the XmlReader::ReadElementContentAsString method instead, because it provides a more straightforward way to handle this operation. More...
 
virtual ASPOSECPP_SHARED_API String ReadElementString (String name)
 Checks that the XmlReader::get_Name value of the element found matches the given string before reading a text-only element. However, it is recommended to use the XmlReader::ReadElementContentAsString method instead, because it provides a more straightforward way to handle this operation. More...
 
virtual ASPOSECPP_SHARED_API String ReadElementString (String localname, String ns)
 Checks that the XmlReader::get_LocalName and XmlReader::get_NamespaceURI values of the element found matches the given strings before reading a text-only element. However, it is recommended to use the XmlReader::ReadElementContentAsString method instead, because it provides a more straightforward way to handle this operation. More...
 
virtual ASPOSECPP_SHARED_API void ReadEndElement ()
 Checks that the current content node is an end tag and advances the reader to the next node. More...
 
virtual ASPOSECPP_SHARED_API bool IsStartElement ()
 Calls XmlReader::MoveToContent and tests if the current content node is a start tag or empty element tag. More...
 
virtual ASPOSECPP_SHARED_API bool IsStartElement (String name)
 Calls XmlReader::MoveToContent and tests if the current content node is a start tag or empty element tag and if the XmlReader::get_Name value of the element found matches the given argument. More...
 
virtual ASPOSECPP_SHARED_API bool IsStartElement (String localname, String ns)
 Calls XmlReader::MoveToContent and tests if the current content node is a start tag or empty element tag and if the XmlReader::get_LocalName and XmlReader::get_NamespaceURI values of the element found match the given strings. More...
 
virtual ASPOSECPP_SHARED_API bool ReadToFollowing (String name)
 Reads until an element with the specified qualified name is found. More...
 
virtual ASPOSECPP_SHARED_API bool ReadToFollowing (String localName, String namespaceURI)
 Reads until an element with the specified local name and namespace URI is found. More...
 
virtual ASPOSECPP_SHARED_API bool ReadToDescendant (String name)
 Advances the XmlReader to the next descendant element with the specified qualified name. More...
 
virtual ASPOSECPP_SHARED_API bool ReadToDescendant (String localName, String namespaceURI)
 Advances the XmlReader to the next descendant element with the specified local name and namespace URI. More...
 
virtual ASPOSECPP_SHARED_API bool ReadToNextSibling (String name)
 Advances the XmlReader to the next sibling element with the specified qualified name. More...
 
virtual ASPOSECPP_SHARED_API bool ReadToNextSibling (String localName, String namespaceURI)
 Advances the XmlReader to the next sibling element with the specified local name and namespace URI. More...
 
virtual ASPOSECPP_SHARED_API String ReadInnerXml ()
 When overridden in a derived class, reads all the content, including markup, as a string. More...
 
virtual ASPOSECPP_SHARED_API String ReadOuterXml ()
 When overridden in a derived class, reads the content, including markup, representing this node and all its children. More...
 
virtual ASPOSECPP_SHARED_API SharedPtr< XmlReaderReadSubtree ()
 Returns a new XmlReader instance that can be used to read the current node, and all its descendants. More...
 
ASPOSECPP_SHARED_API void Dispose () override
 Releases all resources used by the current instance of the XmlReader class. More...
 
- Public Member Functions inherited from System::Object
ASPOSECPP_SHARED_API Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ASPOSECPP_SHARED_API ~Object ()
 Destroys object. Frees all internal data structures. More...
 
ASPOSECPP_SHARED_API Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared reference counter. More...
 
ASPOSECPP_SHARED_API void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
ASPOSECPP_SHARED_API void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual ASPOSECPP_SHARED_API bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual ASPOSECPP_SHARED_API int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual ASPOSECPP_SHARED_API String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ASPOSECPP_SHARED_API ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual ASPOSECPP_SHARED_API const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual ASPOSECPP_SHARED_API bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual ASPOSECPP_SHARED_API void SetTemplateWeakPtr (uint32_t argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
virtual ASPOSECPP_SHARED_API bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool Equals (double const &objA, double const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 Specialization of Object::ReferenceEquals for case of string and nullptr. More...
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 Specialization of Object::ReferenceEquals for case of strings. More...
 

Protected Member Functions

virtual ASPOSECPP_SHARED_API ~XmlNodeReader ()
 
- Protected Member Functions inherited from System::Xml::XmlReader
virtual ASPOSECPP_SHARED_API void Dispose (bool disposing)
 Optionally releases all resources used by the current instance of the XmlReader class. More...
 
virtual ASPOSECPP_SHARED_API ~XmlReader ()
 

Additional Inherited Members

- Static Public Member Functions inherited from System::Xml::XmlReader
static ASPOSECPP_SHARED_API bool IsName (const String &str)
 Returns a value indicating whether the string argument is a valid XML name. More...
 
static ASPOSECPP_SHARED_API bool IsNameToken (const String &str)
 Returns a value indicating whether or not the string argument is a valid XML name token. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const String &inputUri)
 Creates a new XmlReader instance with specified URI. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const String &inputUri, const SharedPtr< XmlReaderSettings > &settings)
 Creates a new XmlReader instance by using the specified URI and settings. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const String &inputUri, SharedPtr< XmlReaderSettings > settings, const SharedPtr< XmlParserContext > &inputContext)
 Creates a new XmlReader instance by using the specified URI, settings, and context information for parsing. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const SharedPtr< IO::Stream > &input)
 Creates a new XmlReader instance using the specified stream with default settings. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const SharedPtr< IO::Stream > &input, const SharedPtr< XmlReaderSettings > &settings)
 Creates a new XmlReader instance with the specified stream and settings. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const SharedPtr< IO::Stream > &input, SharedPtr< XmlReaderSettings > settings, const String &baseUri)
 Creates a new XmlReader instance using the specified stream, base URI, and settings. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const SharedPtr< IO::Stream > &input, SharedPtr< XmlReaderSettings > settings, const SharedPtr< XmlParserContext > &inputContext)
 Creates a new XmlReader instance using the specified stream, settings, and context information for parsing. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const SharedPtr< IO::TextReader > &input)
 Creates a new XmlReader instance by using the specified text reader. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const SharedPtr< IO::TextReader > &input, const SharedPtr< XmlReaderSettings > &settings)
 Creates a new XmlReader instance by using the specified text reader and settings. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const SharedPtr< IO::TextReader > &input, SharedPtr< XmlReaderSettings > settings, const String &baseUri)
 Creates a new XmlReader instance by using the specified text reader, settings, and base URI. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const SharedPtr< IO::TextReader > &input, SharedPtr< XmlReaderSettings > settings, const SharedPtr< XmlParserContext > &inputContext)
 Creates a new XmlReader instance by using the specified text reader, settings, and context information for parsing. More...
 
static ASPOSECPP_SHARED_API SharedPtr< XmlReaderCreate (const SharedPtr< XmlReader > &reader, SharedPtr< XmlReaderSettings > settings)
 Creates a new XmlReader instance by using the specified XML reader and settings. More...
 
- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Implements C# typeof(System.Object) construct. More...
 

Detailed Description

Represents a reader that provides fast, non-cached forward only access to XML data in an XmlNode.

Attention
Objects of this class should only be allocated using System::MakeObject() function. Never create instances of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

Member Typedef Documentation

◆ Ptr

An alias for shared pointer to an instance of this class.

Constructor & Destructor Documentation

◆ XmlNodeReader()

ASPOSECPP_SHARED_API System::Xml::XmlNodeReader::XmlNodeReader ( const SharedPtr< XmlNode > &  node)

Creates an instance of the XmlNodeReader class using the specified XmlNode.

Parameters
nodeThe XmlNode you want to read.

◆ ~XmlNodeReader()

virtual ASPOSECPP_SHARED_API System::Xml::XmlNodeReader::~XmlNodeReader ( )
protectedvirtual

Member Function Documentation

◆ Close()

ASPOSECPP_SHARED_API void System::Xml::XmlNodeReader::Close ( )
overridevirtual

◆ get_AttributeCount()

ASPOSECPP_SHARED_API int32_t System::Xml::XmlNodeReader::get_AttributeCount ( )
overridevirtual

Returns the number of attributes on the current node.

Returns
The number of attributes on the current node. This number includes default attributes.

Implements System::Xml::XmlReader.

◆ get_BaseURI()

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::get_BaseURI ( )
overridevirtual

Returns the base URI of the current node.

Returns
The base URI of the current node.

Implements System::Xml::XmlReader.

◆ get_CanReadBinaryContent()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::get_CanReadBinaryContent ( )
overridevirtual

Returns a value indicating whether the XmlNodeReader implements the binary content read methods.

Returns
true if the binary content read methods are implemented; otherwise false. The XmlNodeReader class always returns true.

Reimplemented from System::Xml::XmlReader.

◆ get_CanResolveEntity()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::get_CanResolveEntity ( )
overridevirtual

Returns a value indicating whether this reader can parse and resolve entities.

Returns
true if the reader can parse and resolve entities; otherwise, false. XmlNodeReader always returns true.

Reimplemented from System::Xml::XmlReader.

◆ get_Depth()

ASPOSECPP_SHARED_API int32_t System::Xml::XmlNodeReader::get_Depth ( )
overridevirtual

Returns the depth of the current node in the XML document.

Returns
The depth of the current node in the XML document.

Implements System::Xml::XmlReader.

◆ get_EOF()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::get_EOF ( )
overridevirtual

Returns a value indicating whether the reader is positioned at the end of the stream.

Returns
true if the reader is positioned at the end of the stream; otherwise, false.

Implements System::Xml::XmlReader.

◆ get_HasAttributes()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::get_HasAttributes ( )
overridevirtual

Returns a value indicating whether the current node has any attributes.

Returns
true if the current node has attributes; otherwise, false.

Reimplemented from System::Xml::XmlReader.

◆ get_HasValue()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::get_HasValue ( )
overridevirtual

Returns a value indicating whether the current node can have a XmlNodeReader::get_Value value.

Returns
true if the node on which the reader is currently positioned can have a Value; otherwise, false.

Reimplemented from System::Xml::XmlReader.

◆ get_IsDefault()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::get_IsDefault ( )
overridevirtual

Returns a value indicating whether the current node is an attribute that was generated from the default value defined in the document type definition (DTD) or schema.

Returns
true if the current node is an attribute whose value was generated from the default value defined in the DTD or schema; false if the attribute value was explicitly set.

Reimplemented from System::Xml::XmlReader.

◆ get_IsEmptyElement()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::get_IsEmptyElement ( )
overridevirtual

Returns a value indicating whether the current node is an empty element (for example, <MyElement/>).

Returns
true if the current node is an element (XmlNodeReader::get_NodeType equals XmlNodeType::Element) and it ends with />; otherwise, false.

Implements System::Xml::XmlReader.

◆ get_LocalName()

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::get_LocalName ( )
overridevirtual

Returns the local name of the current node.

Returns
The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>. For node types that do not have a name (like Text, Comment, and so on), this method returns String::Empty.

Implements System::Xml::XmlReader.

◆ get_Name()

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::get_Name ( )
overridevirtual

Returns the qualified name of the current node.

Returns
The qualified name of the current node. For example, Name is bk:book for the element <bk:book>.

The name returned is dependent on the XmlNodeReader::get_NodeType value of the node. The following node types return the listed values. All other node types return an empty string.

Node Type Name
AttributeThe name of the attribute.
DocumentTypeThe document type name.
ElementThe tag name.
EntityReferenceThe name of the entity referenced.
ProcessingInstructionThe target of the processing instruction.
XmlDeclarationThe literal string xml.

Reimplemented from System::Xml::XmlReader.

◆ get_NamespaceURI()

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::get_NamespaceURI ( )
overridevirtual

Returns the namespace URI (as defined in the W3C Namespace specification) of the node on which the reader is positioned.

Returns
The namespace URI of the current node; otherwise an empty string.

Implements System::Xml::XmlReader.

◆ get_NameTable()

ASPOSECPP_SHARED_API SharedPtr<XmlNameTable> System::Xml::XmlNodeReader::get_NameTable ( )
overridevirtual

Returns the XmlNameTable associated with this implementation.

Returns
The XmlNameTable enabling you to get the atomized version of a string within the node.

Implements System::Xml::XmlReader.

◆ get_NodeType()

ASPOSECPP_SHARED_API XmlNodeType System::Xml::XmlNodeReader::get_NodeType ( )
overridevirtual

Returns the type of the current node.

Returns
One of the XmlNodeType values representing the type of the current node.

Implements System::Xml::XmlReader.

◆ get_Prefix()

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::get_Prefix ( )
overridevirtual

Returns the namespace prefix associated with the current node.

Returns
The namespace prefix associated with the current node.

Implements System::Xml::XmlReader.

◆ get_ReadState()

ASPOSECPP_SHARED_API System::Xml::ReadState System::Xml::XmlNodeReader::get_ReadState ( )
overridevirtual

Returns the state of the reader.

Returns
One of the ReadState values.

Implements System::Xml::XmlReader.

◆ get_SchemaInfo()

ASPOSECPP_SHARED_API SharedPtr<Schema::IXmlSchemaInfo> System::Xml::XmlNodeReader::get_SchemaInfo ( )
overridevirtual

Returns the schema information that has been assigned to the current node.

Returns
An IXmlSchemaInfo object containing the schema information for the current node.

Reimplemented from System::Xml::XmlReader.

◆ get_Value()

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::get_Value ( )
overridevirtual

Returns the text value of the current node.

Returns
The value returned depends on the XmlNodeReader::get_NodeType of the node.

The following table lists node types that have a value to return. All other node types return String::Empty.

Node Type Value
AttributeThe value of the attribute.
CDATAThe content of the CDATA section.
CommentThe content of the comment.
DocumentTypeThe internal subset.
ProcessingInstructionThe entire content, excluding the target.
SignificantWhitespaceThe white space between markup in a mixed content model.
TextThe content of the text node.
WhitespaceThe white space between markup.
XmlDeclarationThe content of the declaration.

Implements System::Xml::XmlReader.

◆ get_XmlLang()

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::get_XmlLang ( )
overridevirtual

Returns the current xml:lang scope.

Returns
The current xml:lang scope.

Reimplemented from System::Xml::XmlReader.

◆ get_XmlSpace()

ASPOSECPP_SHARED_API System::Xml::XmlSpace System::Xml::XmlNodeReader::get_XmlSpace ( )
overridevirtual

Returns the current xml:space scope.

Returns
One of the XmlSpace values. If no xml:space scope exists, this value defaults to XmlSpace::None.

Reimplemented from System::Xml::XmlReader.

◆ GetAttribute() [1/3]

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::GetAttribute ( String  name)
overridevirtual

Returns the value of the attribute with the specified name.

Parameters
nameThe qualified name of the attribute.
Returns
The value of the specified attribute. If the attribute is not found, nullptr is returned.

Implements System::Xml::XmlReader.

◆ GetAttribute() [2/3]

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::GetAttribute ( String  name,
String  namespaceURI 
)
overridevirtual

Returns the value of the attribute with the specified local name and namespace URI.

Parameters
nameThe local name of the attribute.
namespaceURIThe namespace URI of the attribute.
Returns
The value of the specified attribute. If the attribute is not found, nullptr is returned.

Implements System::Xml::XmlReader.

◆ GetAttribute() [3/3]

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::GetAttribute ( int32_t  attributeIndex)
overridevirtual

Returns the value of the attribute with the specified index.

Parameters
attributeIndexThe index of the attribute. The index is zero-based. (The first attribute has index 0.)
Returns
The value of the specified attribute.
Exceptions
ArgumentOutOfRangeExceptionThe i parameter is less than 0 or greater than or equal to XmlNodeReader::get_AttributeCount value.

Implements System::Xml::XmlReader.

◆ LookupNamespace()

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::LookupNamespace ( const String prefix)
overridevirtual

Resolves a namespace prefix in the current element's scope.

Parameters
prefixThe prefix whose namespace URI you want to resolve. To match the default namespace, pass an empty string. This string does not have to be atomized.
Returns
The namespace URI to which the prefix maps or nullptr if no matching prefix is found.

Implements System::Xml::IXmlNamespaceResolver.

◆ MoveToAttribute() [1/3]

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::MoveToAttribute ( String  name)
overridevirtual

Moves to the attribute with the specified name.

Parameters
nameThe qualified name of the attribute.
Returns
true if the attribute is found; otherwise, false. If false, the reader's position does not change.

Implements System::Xml::XmlReader.

◆ MoveToAttribute() [2/3]

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::MoveToAttribute ( String  name,
String  namespaceURI 
)
overridevirtual

Moves to the attribute with the specified local name and namespace URI.

Parameters
nameThe local name of the attribute.
namespaceURIThe namespace URI of the attribute.
Returns
true if the attribute is found; otherwise, false. If false, the reader's position does not change.

Implements System::Xml::XmlReader.

◆ MoveToAttribute() [3/3]

ASPOSECPP_SHARED_API void System::Xml::XmlNodeReader::MoveToAttribute ( int32_t  attributeIndex)
overridevirtual

Moves to the attribute with the specified index.

Parameters
attributeIndexThe index of the attribute.
Exceptions
ArgumentOutOfRangeExceptionThe i parameter is less than 0 or greater than or equal to XmlReader::get_AttributeCount value.

Reimplemented from System::Xml::XmlReader.

◆ MoveToElement()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::MoveToElement ( )
overridevirtual

Moves to the element that contains the current attribute node.

Returns
true if the reader is positioned on an attribute (the reader moves to the element that owns the attribute); false if the reader is not positioned on an attribute (the position of the reader does not change).

Implements System::Xml::XmlReader.

◆ MoveToFirstAttribute()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::MoveToFirstAttribute ( )
overridevirtual

Moves to the first attribute.

Returns
true if an attribute exists (the reader moves to the first attribute); otherwise,false (the position of the reader does not change).

Implements System::Xml::XmlReader.

◆ MoveToNextAttribute()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::MoveToNextAttribute ( )
overridevirtual

Moves to the next attribute.

Returns
true if there is a next attribute; false if there are no more attributes.

Implements System::Xml::XmlReader.

◆ Read()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::Read ( )
overridevirtual

Reads the next node from the stream.

Returns
true if the next node was read successfully; false if there are no more nodes to read.

Implements System::Xml::XmlReader.

◆ ReadAttributeValue()

ASPOSECPP_SHARED_API bool System::Xml::XmlNodeReader::ReadAttributeValue ( )
overridevirtual

Parses the attribute value into one or more Text, EntityReference, or EndEntity nodes.

Returns
true if there are nodes to return. false if the reader is not positioned on an attribute node when the initial call is made or if all the attribute values have been read. An empty attribute, such as, misc="", returns true with a single node with a value of String::Empty.

Implements System::Xml::XmlReader.

◆ ReadContentAsBase64()

ASPOSECPP_SHARED_API int32_t System::Xml::XmlNodeReader::ReadContentAsBase64 ( ArrayPtr< uint8_t >  buffer,
int32_t  index,
int32_t  count 
)
overridevirtual

Reads the content and returns the Base64 decoded binary bytes.

Parameters
bufferThe buffer into which to copy the resulting text. This value cannot be nullptr.
indexThe offset into the buffer where to start copying the result.
countThe maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
Returns
The number of bytes written to the buffer.
Exceptions
ArgumentNullExceptionThe buffer value is nullptr.
InvalidOperationExceptionThe call is not supported on the current node.
ArgumentOutOfRangeExceptionThe index into the buffer or index + count is larger than the allocated buffer size.

Reimplemented from System::Xml::XmlReader.

◆ ReadContentAsBinHex()

ASPOSECPP_SHARED_API int32_t System::Xml::XmlNodeReader::ReadContentAsBinHex ( ArrayPtr< uint8_t >  buffer,
int32_t  index,
int32_t  count 
)
overridevirtual

Reads the content and returns the BinHex decoded binary bytes.

Parameters
bufferThe buffer into which to copy the resulting text. This value cannot be nullptr.
indexThe offset into the buffer where to start copying the result.
countThe maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
Returns
The number of bytes written to the buffer.
Exceptions
ArgumentNullExceptionThe buffer value is nullptr.
InvalidOperationExceptionThe call is not supported on the current node.
ArgumentOutOfRangeExceptionThe index into the buffer or index + count is larger than the allocated buffer size.

Reimplemented from System::Xml::XmlReader.

◆ ReadElementContentAsBase64()

ASPOSECPP_SHARED_API int32_t System::Xml::XmlNodeReader::ReadElementContentAsBase64 ( ArrayPtr< uint8_t >  buffer,
int32_t  index,
int32_t  count 
)
overridevirtual

Reads the element and decodes the Base64 content.

Parameters
bufferThe buffer into which to copy the resulting text. This value cannot be nullptr.
indexThe offset into the buffer where to start copying the result.
countThe maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
Returns
The number of bytes written to the buffer.
Exceptions
ArgumentNullExceptionThe buffer value is nullptr.
InvalidOperationExceptionThe current node is not an element node.
ArgumentOutOfRangeExceptionThe index into the buffer or index + count is larger than the allocated buffer size.
XmlExceptionThe element contains mixed content.
FormatExceptionThe content cannot be converted to the requested type.

Reimplemented from System::Xml::XmlReader.

◆ ReadElementContentAsBinHex()

ASPOSECPP_SHARED_API int32_t System::Xml::XmlNodeReader::ReadElementContentAsBinHex ( ArrayPtr< uint8_t >  buffer,
int32_t  index,
int32_t  count 
)
overridevirtual

Reads the element and decodes the BinHex content.

Parameters
bufferThe buffer into which to copy the resulting text. This value cannot be nullptr.
indexThe offset into the buffer where to start copying the result.
countThe maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
Returns
The number of bytes written to the buffer.
Exceptions
ArgumentNullExceptionThe buffer value is nullptr.
InvalidOperationExceptionThe current node is not an element node.
ArgumentOutOfRangeExceptionThe index into the buffer or index + count is larger than the allocated buffer size.
XmlExceptionThe element contains mixed content.
FormatExceptionThe content cannot be converted to the requested type.

Reimplemented from System::Xml::XmlReader.

◆ ReadString()

ASPOSECPP_SHARED_API String System::Xml::XmlNodeReader::ReadString ( )
overridevirtual

Reads the contents of an element or text node as a string.

Returns
The contents of the element or text-like node (This can include CDATA, Text nodes, and so on). This can be an empty string if the reader is positioned on something other than an element or text node, or if there is no more text content to return in the current context. Note: The text node can be either an element or an attribute text node.

Reimplemented from System::Xml::XmlReader.

◆ ResolveEntity()

ASPOSECPP_SHARED_API void System::Xml::XmlNodeReader::ResolveEntity ( )
overridevirtual

Resolves the entity reference for EntityReference nodes.

Exceptions
InvalidOperationExceptionThe reader is not positioned on an EntityReference node.

Implements System::Xml::XmlReader.

◆ Skip()

ASPOSECPP_SHARED_API void System::Xml::XmlNodeReader::Skip ( )
overridevirtual

Skips the children of the current node.

Reimplemented from System::Xml::XmlReader.