System::Xml::XmlValidatingReader Class Reference

Represents a reader that provides document type definition (DTD), XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD) validation. More...

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

Public Types

using Ptr = SharedPtr< XmlValidatingReader >
 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

XmlNodeType get_NodeType () override
 Returns the type of the current node. More...
 
String get_Name () override
 Returns the qualified name of the current node. More...
 
String get_LocalName () override
 Returns the local name of the current node. More...
 
String get_NamespaceURI () override
 Returns the namespace Uniform Resource Identifier (URI) (as defined in the World Wide Web Consortium (W3C) Namespace specification) of the node on which the reader is positioned. More...
 
String get_Prefix () override
 Returns the namespace prefix associated with the current node. More...
 
bool get_HasValue () override
 Returns a value indicating whether the current node can have a XmlValidatingReader::get_Value other than String::Empty. More...
 
String get_Value () override
 Returns the text value of the current node. More...
 
int32_t get_Depth () override
 Returns the depth of the current node in the XML document. More...
 
String get_BaseURI () override
 Returns the base URI of the current node. More...
 
bool get_IsEmptyElement () override
 Returns a value indicating whether the current node is an empty element (for example, <MyElement/>). More...
 
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...
 
char16_t get_QuoteChar () override
 Returns the quotation mark character used to enclose the value of an attribute node. More...
 
System::Xml::XmlSpace get_XmlSpace () override
 Returns the current xml:space scope. More...
 
String get_XmlLang () override
 Returns the current xml:lang scope. More...
 
int32_t get_AttributeCount () override
 Returns the number of attributes on the current node. More...
 
bool get_EOF () override
 Returns a value indicating whether the reader is positioned at the end of the stream. More...
 
System::Xml::ReadState get_ReadState () override
 Returns the state of the reader. More...
 
SharedPtr< XmlNameTableget_NameTable () override
 Returns the XmlNameTable associated with this implementation. More...
 
bool get_CanResolveEntity () override
 Returns a value indicating whether this reader can parse and resolve entities. More...
 
bool get_CanReadBinaryContent () override
 Returns a value indicating whether the XmlValidatingReader implements the binary content read methods. More...
 
int32_t get_LineNumber () override
 Returns the current line number. More...
 
int32_t get_LinePosition () override
 Returns the current line position. More...
 
SharedPtr< Objectget_SchemaType ()
 Returns a schema type object. More...
 
SharedPtr< XmlReaderget_Reader ()
 Returns the XmlReader used to construct this XmlValidatingReader. More...
 
System::Xml::ValidationType get_ValidationType ()
 Returns a value indicating the type of validation to perform. More...
 
void set_ValidationType (System::Xml::ValidationType value)
 Sets a value indicating the type of validation to perform. More...
 
SharedPtr< Schema::XmlSchemaCollectionget_Schemas ()
 Returns a XmlSchemaCollection to use for validation. More...
 
System::Xml::EntityHandling get_EntityHandling ()
 Returns a value that specifies how the reader handles entities. More...
 
void set_EntityHandling (System::Xml::EntityHandling value)
 Sets a value that specifies how the reader handles entities. More...
 
void set_XmlResolver (const SharedPtr< System::Xml::XmlResolver > &value)
 Sets the XmlResolver used for resolving external document type definition (DTD) and schema location references. The XmlResolver is also used to handle any import or include elements found in XML Schema definition language (XSD) schemas. More...
 
bool get_Namespaces ()
 Returns a value indicating whether to do namespace support. More...
 
void set_Namespaces (bool value)
 Sets a value indicating whether to do namespace support. More...
 
SharedPtr< System::Text::Encodingget_Encoding ()
 Returns the encoding attribute for the document. More...
 
 XmlValidatingReader (const SharedPtr< XmlReader > &reader)
 Initializes a new instance of the XmlValidatingReader class that validates the content returned from the given XmlReader. More...
 
 XmlValidatingReader (const String &xmlFragment, XmlNodeType fragType, const SharedPtr< XmlParserContext > &context)
 Initializes a new instance of the XmlValidatingReader class with the specified values. More...
 
 XmlValidatingReader (const SharedPtr< IO::Stream > &xmlFragment, XmlNodeType fragType, const SharedPtr< XmlParserContext > &context)
 Initializes a new instance of the XmlValidatingReader class with the specified values. More...
 
String GetAttribute (String name) override
 Returns the value of the attribute with the specified name. More...
 
String GetAttribute (String localName, String namespaceURI) override
 Returns the value of the attribute with the specified local name and namespace Uniform Resource Identifier (URI). More...
 
String GetAttribute (int32_t i) override
 Returns the value of the attribute with the specified index. More...
 
bool MoveToAttribute (String name) override
 Moves to the attribute with the specified name. More...
 
bool MoveToAttribute (String localName, String namespaceURI) override
 Moves to the attribute with the specified local name and namespace Uniform Resource Identifier (URI). More...
 
void MoveToAttribute (int32_t i) override
 Moves to the attribute with the specified index. More...
 
bool MoveToFirstAttribute () override
 Moves to the first attribute. More...
 
bool MoveToNextAttribute () override
 Moves to the next attribute. More...
 
bool MoveToElement () override
 Moves to the element that contains the current attribute node. More...
 
bool ReadAttributeValue () override
 Parses the attribute value into one or more Text, EntityReference, or EndEntity nodes. More...
 
bool Read () override
 Reads the next node from the stream. More...
 
void Close () override
 Changes the XmlReader::get_ReadState to Closed. More...
 
String LookupNamespace (const String &prefix) override
 Resolves a namespace prefix in the current element's scope. More...
 
void ResolveEntity () override
 Resolves the entity reference for EntityReference nodes. More...
 
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...
 
int32_t ReadElementContentAsBase64 (ArrayPtr< uint8_t > buffer, int32_t index, int32_t count) override
 Reads the element and decodes the Base64 content. More...
 
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...
 
int32_t ReadElementContentAsBinHex (ArrayPtr< uint8_t > buffer, int32_t index, int32_t count) override
 Reads the element and decodes the BinHex content. More...
 
String ReadString () override
 Reads the contents of an element or text node as a string. More...
 
bool HasLineInfo () override
 Returns a value indicating whether the class can return line information. More...
 
template<class... Args>
void ValidationEventHandler_add (Args... value)
 Adds an event handler for receiving information about document type definition (DTD), XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD) schema validation errors. More...
 
template<class... Args>
void ValidationEventHandler_remove (Args... value)
 Removes an event handler for receiving information about document type definition (DTD), XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD) schema validation errors. More...
 
SharedPtr< ObjectReadTypedValue ()
 Returns the runt-ime type for the specified XML Schema definition language (XSD) type. More...
 
- Public Member Functions inherited from System::Xml::XmlReader
virtual SharedPtr< XmlReaderSettingsget_Settings ()
 Returns the XmlReaderSettings object used to create this XmlReader instance. More...
 
virtual SharedPtr< Schema::IXmlSchemaInfoget_SchemaInfo ()
 Returns the schema information that has been assigned to the current node as a result of schema validation. More...
 
virtual TypeInfo get_ValueType ()
 Returns The type for the current node. More...
 
virtual bool get_CanReadValueChunk ()
 Returns a value indicating whether the XmlReader implements the XmlReader::ReadValueChunk method. More...
 
virtual bool get_HasAttributes ()
 Returns a value indicating whether the current node has any attributes. More...
 
virtual SharedPtr< ObjectReadContentAsObject ()
 Reads the text content at the current position as an Object. More...
 
virtual bool ReadContentAsBoolean ()
 Reads the text content at the current position as a Boolean. More...
 
virtual DateTime ReadContentAsDateTime ()
 Reads the text content at the current position as a DateTime object. More...
 
virtual DateTimeOffset ReadContentAsDateTimeOffset ()
 Reads the text content at the current position as a DateTimeOffset object. More...
 
virtual double ReadContentAsDouble ()
 Reads the text content at the current position as a double-precision floating-point number. More...
 
virtual float ReadContentAsFloat ()
 Reads the text content at the current position as a single-precision floating point number. More...
 
virtual Decimal ReadContentAsDecimal ()
 Reads the text content at the current position as a Decimal object. More...
 
virtual int32_t ReadContentAsInt ()
 Reads the text content at the current position as a 32-bit signed integer. More...
 
virtual int64_t ReadContentAsLong ()
 Reads the text content at the current position as a 64-bit signed integer. More...
 
virtual String ReadContentAsString ()
 Reads the text content at the current position as a String object. More...
 
virtual SharedPtr< ObjectReadContentAs (const TypeInfo &returnType, SharedPtr< IXmlNamespaceResolver > namespaceResolver)
 Reads the content as an object of the type specified. More...
 
virtual SharedPtr< ObjectReadElementContentAsObject ()
 Reads the current element and returns the contents as an Object. More...
 
virtual 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 bool ReadElementContentAsBoolean ()
 Reads the current element and returns the contents as a Boolean object. More...
 
virtual 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 DateTime ReadElementContentAsDateTime ()
 Reads the current element and returns the contents as a DateTime object. More...
 
virtual 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 double ReadElementContentAsDouble ()
 Reads the current element and returns the contents as a double-precision floating-point number. More...
 
virtual 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 float ReadElementContentAsFloat ()
 Reads the current element and returns the contents as single-precision floating-point number. More...
 
virtual 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 Decimal ReadElementContentAsDecimal ()
 Reads the current element and returns the contents as a Decimal object. More...
 
virtual 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 int32_t ReadElementContentAsInt ()
 Reads the current element and returns the contents as a 32-bit signed integer. More...
 
virtual 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 int64_t ReadElementContentAsLong ()
 Reads the current element and returns the contents as a 64-bit signed integer. More...
 
virtual 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 String ReadElementContentAsString ()
 Reads the current element and returns the contents as a String object. More...
 
virtual 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 SharedPtr< ObjectReadElementContentAs (const TypeInfo &returnType, SharedPtr< IXmlNamespaceResolver > namespaceResolver)
 Reads the element content as the requested type. More...
 
virtual 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 String idx_get (int32_t i)
 When overridden in a derived class, gets the value of the attribute with the specified index. More...
 
virtual 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 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 void Skip ()
 Skips the children of the current node. More...
 
virtual 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 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 void ReadStartElement ()
 Checks that the current node is an element and advances the reader to the next node. More...
 
virtual 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 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 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 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 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 void ReadEndElement ()
 Checks that the current content node is an end tag and advances the reader to the next node. More...
 
virtual bool IsStartElement ()
 Calls XmlReader::MoveToContent and tests if the current content node is a start tag or empty element tag. More...
 
virtual 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 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 bool ReadToFollowing (String name)
 Reads until an element with the specified qualified name is found. More...
 
virtual bool ReadToFollowing (String localName, String namespaceURI)
 Reads until an element with the specified local name and namespace URI is found. More...
 
virtual bool ReadToDescendant (String name)
 Advances the XmlReader to the next descendant element with the specified qualified name. More...
 
virtual bool ReadToDescendant (String localName, String namespaceURI)
 Advances the XmlReader to the next descendant element with the specified local name and namespace URI. More...
 
virtual bool ReadToNextSibling (String name)
 Advances the XmlReader to the next sibling element with the specified qualified name. More...
 
virtual bool ReadToNextSibling (String localName, String namespaceURI)
 Advances the XmlReader to the next sibling element with the specified local name and namespace URI. More...
 
virtual String ReadInnerXml ()
 When overridden in a derived class, reads all the content, including markup, as a string. More...
 
virtual String ReadOuterXml ()
 When overridden in a derived class, reads the content, including markup, representing this node and all its children. More...
 
virtual SharedPtr< XmlReaderReadSubtree ()
 Returns a new XmlReader instance that can be used to read the current node, and all its descendants. More...
 
void Dispose () override
 Releases all resources used by the current instance of the XmlReader class. More...
 
- Public Member Functions inherited from System::Object
 Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ~Object ()
 Destroys object. Frees all internal data structures. More...
 
 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...
 
void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual 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 bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. 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 ~XmlValidatingReader ()
 
- Protected Member Functions inherited from System::Xml::XmlReader
virtual void Dispose (bool disposing)
 Optionally releases all resources used by the current instance of the XmlReader class. More...
 
virtual ~XmlReader ()
 

Additional Inherited Members

- Static Public Member Functions inherited from System::Xml::XmlReader
static bool IsName (const String &str)
 Returns a value indicating whether the string argument is a valid XML name. More...
 
static bool IsNameToken (const String &str)
 Returns a value indicating whether or not the string argument is a valid XML name token. More...
 
static SharedPtr< XmlReaderCreate (const String &inputUri)
 Creates a new XmlReader instance with specified URI. More...
 
static SharedPtr< XmlReaderCreate (const String &inputUri, const SharedPtr< XmlReaderSettings > &settings)
 Creates a new XmlReader instance by using the specified URI and settings. More...
 
static 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 SharedPtr< XmlReaderCreate (const SharedPtr< IO::Stream > &input)
 Creates a new XmlReader instance using the specified stream with default settings. More...
 
static SharedPtr< XmlReaderCreate (const SharedPtr< IO::Stream > &input, const SharedPtr< XmlReaderSettings > &settings)
 Creates a new XmlReader instance with the specified stream and settings. More...
 
static 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 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 SharedPtr< XmlReaderCreate (const SharedPtr< IO::TextReader > &input)
 Creates a new XmlReader instance by using the specified text reader. More...
 
static 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 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 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 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...
 
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...
 

Detailed Description

Represents a reader that provides document type definition (DTD), XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD) validation.

Deprecated:
This class is obsolete. It is recommended to use the XmlReaderSettings class and the XmlReader::Create method to create a validating XML reader.
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

◆ XmlValidatingReader() [1/3]

System::Xml::XmlValidatingReader::XmlValidatingReader ( const SharedPtr< XmlReader > &  reader)

Initializes a new instance of the XmlValidatingReader class that validates the content returned from the given XmlReader.

Parameters
readerThe XmlReader to read from while validating. The current implementation supports only XmlTextReader.
Exceptions
ArgumentExceptionThe reader specified is not an XmlTextReader.

◆ XmlValidatingReader() [2/3]

System::Xml::XmlValidatingReader::XmlValidatingReader ( const String xmlFragment,
XmlNodeType  fragType,
const SharedPtr< XmlParserContext > &  context 
)

Initializes a new instance of the XmlValidatingReader class with the specified values.

Parameters
xmlFragmentThe string containing the XML fragment to parse.
fragTypeThe XmlNodeType of the XML fragment. This also determines what the fragment string can contain (see table below).
contextThe XmlParserContext in which the XML fragment is to be parsed. This includes the NameTable to use, encoding, namespace scope, current xml:lang, and xml:space scope.
Exceptions
XmlExceptionfragType is not one of the node types listed in the table below.

The following table lists valid values for fragType and how the reader parses each of the different node types.

XmlNodeType Fragment May Contain
ElementAny valid element content (for example, any combination of elements, comments, processing instructions, cdata, text, and entity references).
AttributeThe value of an attribute (the part inside the quotes).
DocumentThe contents of an entire XML document; this enforces document level rules.

◆ XmlValidatingReader() [3/3]

System::Xml::XmlValidatingReader::XmlValidatingReader ( const SharedPtr< IO::Stream > &  xmlFragment,
XmlNodeType  fragType,
const SharedPtr< XmlParserContext > &  context 
)

Initializes a new instance of the XmlValidatingReader class with the specified values.

Parameters
xmlFragmentThe stream containing the XML fragment to parse.
fragTypeThe XmlNodeType of the XML fragment. This determines what the fragment can contain (see table below).
contextThe XmlParserContext in which the XML fragment is to be parsed. This includes the XmlNameTable to use, encoding, namespace scope, current xml:lang, and xml:space scope.
Exceptions
XmlExceptionfragType is not one of the node types listed in the table below.

The following table lists valid values for fragType and how the reader parses each of the different node types.

XmlNodeType Fragment May Contain
ElementAny valid element content (for example, any combination of elements, comments, processing instructions, cdata, text, and entity references).
AttributeThe value of an attribute (the part inside the quotes).
DocumentThe contents of an entire XML document; this enforces document level rules.

◆ ~XmlValidatingReader()

virtual System::Xml::XmlValidatingReader::~XmlValidatingReader ( )
protectedvirtual

Member Function Documentation

◆ Close()

void System::Xml::XmlValidatingReader::Close ( )
overridevirtual

Changes the XmlReader::get_ReadState to Closed.

Reimplemented from System::Xml::XmlReader.

◆ get_AttributeCount()

int32_t System::Xml::XmlValidatingReader::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()

String System::Xml::XmlValidatingReader::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()

bool System::Xml::XmlValidatingReader::get_CanReadBinaryContent ( )
overridevirtual

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

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

Reimplemented from System::Xml::XmlReader.

◆ get_CanResolveEntity()

bool System::Xml::XmlValidatingReader::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. XmlValidatingReader always returns true.

Reimplemented from System::Xml::XmlReader.

◆ get_Depth()

int32_t System::Xml::XmlValidatingReader::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_Encoding()

SharedPtr<System::Text::Encoding> System::Xml::XmlValidatingReader::get_Encoding ( )

Returns the encoding attribute for the document.

Returns
The encoding value. If no encoding attribute exists, and there is not byte-order mark, this defaults to UTF-8.

◆ get_EntityHandling()

System::Xml::EntityHandling System::Xml::XmlValidatingReader::get_EntityHandling ( )

Returns a value that specifies how the reader handles entities.

Returns
One of the EntityHandling values. If no EntityHandling is specified, it defaults to EntityHandling::ExpandEntities.

◆ get_EOF()

bool System::Xml::XmlValidatingReader::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_HasValue()

bool System::Xml::XmlValidatingReader::get_HasValue ( )
overridevirtual

Returns a value indicating whether the current node can have a XmlValidatingReader::get_Value other than String::Empty.

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()

bool System::Xml::XmlValidatingReader::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()

bool System::Xml::XmlValidatingReader::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 (XmlValidatingReader::get_NodeType value equals XmlNodeType::Element) that ends with />; otherwise, false.

Implements System::Xml::XmlReader.

◆ get_LineNumber()

int32_t System::Xml::XmlValidatingReader::get_LineNumber ( )
overridevirtual

Returns the current line number.

Returns
The current line number. The starting value is 1.

Implements System::Xml::IXmlLineInfo.

◆ get_LinePosition()

int32_t System::Xml::XmlValidatingReader::get_LinePosition ( )
overridevirtual

Returns the current line position.

Returns
The current line position. The starting value is 1.

Implements System::Xml::IXmlLineInfo.

◆ get_LocalName()

String System::Xml::XmlValidatingReader::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()

String System::Xml::XmlValidatingReader::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 XmlValidatingReader::NodeType 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_Namespaces()

bool System::Xml::XmlValidatingReader::get_Namespaces ( )

Returns a value indicating whether to do namespace support.

Returns
true to do namespace support; otherwise, false. The default is true.

◆ get_NamespaceURI()

String System::Xml::XmlValidatingReader::get_NamespaceURI ( )
overridevirtual

Returns the namespace Uniform Resource Identifier (URI) (as defined in the World Wide Web Consortium (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()

SharedPtr<XmlNameTable> System::Xml::XmlValidatingReader::get_NameTable ( )
overridevirtual

Returns the XmlNameTable associated with this implementation.

Returns
XmlNameTable that enables you to get the atomized version of a string within the node.

Implements System::Xml::XmlReader.

◆ get_NodeType()

XmlNodeType System::Xml::XmlValidatingReader::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()

String System::Xml::XmlValidatingReader::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_QuoteChar()

char16_t System::Xml::XmlValidatingReader::get_QuoteChar ( )
overridevirtual

Returns the quotation mark character used to enclose the value of an attribute node.

Returns
The quotation mark character (" or ') used to enclose the value of an attribute node.

Reimplemented from System::Xml::XmlReader.

◆ get_Reader()

SharedPtr<XmlReader> System::Xml::XmlValidatingReader::get_Reader ( )

Returns the XmlReader used to construct this XmlValidatingReader.

Returns
The XmlReader specified in the constructor.

◆ get_ReadState()

System::Xml::ReadState System::Xml::XmlValidatingReader::get_ReadState ( )
overridevirtual

Returns the state of the reader.

Returns
One of the ReadState values.

Implements System::Xml::XmlReader.

◆ get_Schemas()

SharedPtr<Schema::XmlSchemaCollection> System::Xml::XmlValidatingReader::get_Schemas ( )

Returns a XmlSchemaCollection to use for validation.

Returns
The XmlSchemaCollection to use for validation.

◆ get_SchemaType()

SharedPtr<Object> System::Xml::XmlValidatingReader::get_SchemaType ( )

Returns a schema type object.

Returns
XmlSchemaDatatype, XmlSchemaSimpleType, or XmlSchemaComplexType depending whether the node value is a built in XML Schema definition language (XSD) type or a user defined simpleType or complexType; nullptr if the current node has no schema type.

◆ get_ValidationType()

System::Xml::ValidationType System::Xml::XmlValidatingReader::get_ValidationType ( )

Returns a value indicating the type of validation to perform.

Returns
One of the ValidationType values. If this value is not set, it defaults to ValidationType::Auto.

◆ get_Value()

String System::Xml::XmlValidatingReader::get_Value ( )
overridevirtual

Returns the text value of the current node.

Returns
The value returned depends on the XmlValidatingReader::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()

String System::Xml::XmlValidatingReader::get_XmlLang ( )
overridevirtual

Returns the current xml:lang scope.

Returns
The current xml:lang scope.

Reimplemented from System::Xml::XmlReader.

◆ get_XmlSpace()

System::Xml::XmlSpace System::Xml::XmlValidatingReader::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]

String System::Xml::XmlValidatingReader::GetAttribute ( int32_t  i)
overridevirtual

Returns the value of the attribute with the specified index.

Parameters
iThe 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 XmlValidatingReader::get_AttributeCount value.

Implements System::Xml::XmlReader.

◆ GetAttribute() [2/3]

String System::Xml::XmlValidatingReader::GetAttribute ( String  localName,
String  namespaceURI 
)
overridevirtual

Returns the value of the attribute with the specified local name and namespace Uniform Resource Identifier (URI).

Parameters
localNameThe 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. This method does not move the reader.

Implements System::Xml::XmlReader.

◆ GetAttribute() [3/3]

String System::Xml::XmlValidatingReader::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.

◆ HasLineInfo()

bool System::Xml::XmlValidatingReader::HasLineInfo ( )
overridevirtual

Returns a value indicating whether the class can return line information.

Returns
true if the class can return line information; otherwise, false.

Implements System::Xml::IXmlLineInfo.

◆ LookupNamespace()

String System::Xml::XmlValidatingReader::LookupNamespace ( const String prefix)
overridevirtual

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

Parameters
prefixThe prefix whose namespace Uniform Resource Identifier (URI) you want to resolve. To match the default namespace, pass an empty string.
Returns
The namespace URI to which the prefix maps or nullptr if no matching prefix is found.

Implements System::Xml::IXmlNamespaceResolver.

◆ MoveToAttribute() [1/3]

void System::Xml::XmlValidatingReader::MoveToAttribute ( int32_t  i)
overridevirtual

Moves to the attribute with the specified index.

Parameters
iThe 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.

◆ MoveToAttribute() [2/3]

bool System::Xml::XmlValidatingReader::MoveToAttribute ( String  localName,
String  namespaceURI 
)
overridevirtual

Moves to the attribute with the specified local name and namespace Uniform Resource Identifier (URI).

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

Implements System::Xml::XmlReader.

◆ MoveToAttribute() [3/3]

bool System::Xml::XmlValidatingReader::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 position of the reader does not change.

Implements System::Xml::XmlReader.

◆ MoveToElement()

bool System::Xml::XmlValidatingReader::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()

bool System::Xml::XmlValidatingReader::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()

bool System::Xml::XmlValidatingReader::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()

bool System::Xml::XmlValidatingReader::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()

bool System::Xml::XmlValidatingReader::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()

int32_t System::Xml::XmlValidatingReader::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()

int32_t System::Xml::XmlValidatingReader::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.
NotSupportedExceptionThe XmlValidatingReader implementation does not support this method.

Reimplemented from System::Xml::XmlReader.

◆ ReadElementContentAsBase64()

int32_t System::Xml::XmlValidatingReader::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.
NotSupportedExceptionThe XmlValidatingReader implementation does not support this method.
XmlExceptionThe element contains mixed-content.
FormatExceptionThe content cannot be converted to the requested type.

Reimplemented from System::Xml::XmlReader.

◆ ReadElementContentAsBinHex()

int32_t System::Xml::XmlValidatingReader::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.
NotSupportedExceptionThe XmlValidatingReader implementation does not support this method.
XmlExceptionThe element contains mixed-content.
FormatExceptionThe content cannot be converted to the requested type.

Reimplemented from System::Xml::XmlReader.

◆ ReadString()

String System::Xml::XmlValidatingReader::ReadString ( )
overridevirtual

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

Returns
The contents of the element or text node. 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.

Reimplemented from System::Xml::XmlReader.

◆ ReadTypedValue()

SharedPtr<Object> System::Xml::XmlValidatingReader::ReadTypedValue ( )

Returns the runt-ime type for the specified XML Schema definition language (XSD) type.

Returns
The run-time type for the specified XML Schema type.

◆ ResolveEntity()

void System::Xml::XmlValidatingReader::ResolveEntity ( )
overridevirtual

Resolves the entity reference for EntityReference nodes.

Exceptions
InvalidOperationExceptionThe reader is not positioned on an EntityReference node.

Implements System::Xml::XmlReader.

◆ set_EntityHandling()

void System::Xml::XmlValidatingReader::set_EntityHandling ( System::Xml::EntityHandling  value)

Sets a value that specifies how the reader handles entities.

Parameters
valueThe value to set.
Exceptions
ArgumentOutOfRangeExceptionInvalid value was specified.

◆ set_Namespaces()

void System::Xml::XmlValidatingReader::set_Namespaces ( bool  value)

Sets a value indicating whether to do namespace support.

Parameters
valueThe value to set.

◆ set_ValidationType()

void System::Xml::XmlValidatingReader::set_ValidationType ( System::Xml::ValidationType  value)

Sets a value indicating the type of validation to perform.

Parameters
valueThe value to set.
Exceptions
InvalidOperationExceptionSetting the value after a Read has been called.

◆ set_XmlResolver()

void System::Xml::XmlValidatingReader::set_XmlResolver ( const SharedPtr< System::Xml::XmlResolver > &  value)

Sets the XmlResolver used for resolving external document type definition (DTD) and schema location references. The XmlResolver is also used to handle any import or include elements found in XML Schema definition language (XSD) schemas.

Parameters
valueThe value to set.

◆ ValidationEventHandler_add()

template<class... Args>
void System::Xml::XmlValidatingReader::ValidationEventHandler_add ( Args...  value)
inline

Adds an event handler for receiving information about document type definition (DTD), XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD) schema validation errors.

Parameters
valueA bound or static method or ValidationEventHandler instance.

◆ ValidationEventHandler_remove()

template<class... Args>
void System::Xml::XmlValidatingReader::ValidationEventHandler_remove ( Args...  value)
inline

Removes an event handler for receiving information about document type definition (DTD), XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD) schema validation errors.

Parameters
valueA bound or static method or ValidationEventHandler instance.