XmlNodeReader Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет средство чтения, обеспечивающее быстрый прямой доступ (без кэширования) к данным XML в классе XmlNode.
public ref class XmlNodeReader : System::Xml::XmlReader, System::Xml::IXmlNamespaceResolver
public ref class XmlNodeReader : System::Xml::XmlReader
public class XmlNodeReader : System.Xml.XmlReader, System.Xml.IXmlNamespaceResolver
public class XmlNodeReader : System.Xml.XmlReader
type XmlNodeReader = class
inherit XmlReader
interface IXmlNamespaceResolver
type XmlNodeReader = class
inherit XmlReader
Public Class XmlNodeReader
Inherits XmlReader
Implements IXmlNamespaceResolver
Public Class XmlNodeReader
Inherits XmlReader
- Наследование
- Реализации
Примеры
В следующем примере XML-файл загружается в XML-документ и изменяется. XML-документ передается в объект XmlNodeReader, который затем передается методу XmlReader.Create. Во время анализа файла проверяющий модуль чтения может проверить любые изменения, внесенные в XML-файл.
using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;
public class Sample {
public static void Main() {
// Create and load the XML document.
XmlDocument doc = new XmlDocument();
doc.Load("booksSchema.xml");
// Make changes to the document.
XmlElement book = (XmlElement) doc.DocumentElement.FirstChild;
book.SetAttribute("publisher", "Worldwide Publishing");
// Create an XmlNodeReader using the XML document.
XmlNodeReader nodeReader = new XmlNodeReader(doc);
// Set the validation settings on the XmlReaderSettings object.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add("urn:bookstore-schema", "books.xsd");
settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
// Create a validating reader that wraps the XmlNodeReader object.
XmlReader reader = XmlReader.Create(nodeReader, settings);
// Parse the XML file.
while (reader.Read());
}
// Display any validation errors.
private static void ValidationCallBack(object sender, ValidationEventArgs e) {
Console.WriteLine("Validation Error: {0}", e.Message);
}
}
Imports System.Xml
Imports System.Xml.Schema
Imports System.IO
public class Sample
public shared sub Main()
' Create and load the XML document.
Dim doc as XmlDocument = new XmlDocument()
doc.Load("booksSchema.xml")
' Make changes to the document.
Dim book as XmlElement
book = CType(doc.DocumentElement.FirstChild, XmlElement)
book.SetAttribute("publisher", "Worldwide Publishing")
' Create an XmlNodeReader using the XML document.
Dim nodeReader as XmlNodeReader = new XmlNodeReader(doc)
' Set the validation settings on the XmlReaderSettings object.
Dim settings as XmlReaderSettings = new XmlReaderSettings()
settings.ValidationType = ValidationType.Schema
settings.Schemas.Add("urn:bookstore-schema", "books.xsd")
AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack
' Create a validating reader that wraps the XmlNodeReader object.
Dim reader as XmlReader = XmlReader.Create(nodeReader,settings)
' Parse the XML file.
while (reader.Read())
end while
end sub
' Display any validation errors.
private shared sub ValidationCallBack(sender as object, e as ValidationEventArgs)
Console.WriteLine("Validation Error: {0}", e.Message)
end sub
end class
В качестве входных данных используются следующие два XML-файла.
<?xml version='1.0'?>
<bookstore xmlns="urn:bookstore-schema">
<book genre="autobiography">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
</bookstore>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="urn:bookstore-schema"
elementFormDefault="qualified"
targetNamespace="urn:bookstore-schema">
<xsd:element name="bookstore" type="bookstoreType"/>
<xsd:complexType name="bookstoreType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="book" type="bookType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="bookType">
<xsd:sequence>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="author" type="authorName"/>
<xsd:element name="price" type="xsd:decimal"/>
</xsd:sequence>
<xsd:attribute name="genre" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="authorName">
<xsd:sequence>
<xsd:element name="first-name" type="xsd:string"/>
<xsd:element name="last-name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Выходные данные:
Ошибка проверки. Не объявлен атрибут «publisher».
Комментарии
Примечание
Вместо использования XmlNodeReaderрекомендуется создавать XmlReader экземпляры с помощью XmlReaderSettings класса и Create метода . Это позволяет воспользоваться преимуществами проверки соответствия и соответствия рекомендациям XML 1.0.
имеет XmlNodeReader
возможность считывать поддеревье XML DOM. Этот класс не поддерживает определение типа документа (DTD) или проверку схемы. Однако можно создать XmlReader объект, который создает оболочку XmlNodeReader вокруг объекта для проверки данных, хранящихся в объекте XmlNodeReader , как показано в разделе Примеры.
Конструкторы
XmlNodeReader(XmlNode) |
Инициализирует новый экземпляр класса |
Свойства
AttributeCount |
Возвращает количество атрибутов текущего узла. |
BaseURI |
Возвращает базовый URI текущего узла. |
CanReadBinaryContent |
Получает значение, указывающее, реализует ли объект XmlNodeReader методы чтения двоичного содержимого. |
CanReadBinaryContent |
Получает значение, указывающее, реализует ли объект XmlReader методы чтения двоичного содержимого. (Унаследовано от XmlReader) |
CanReadValueChunk |
Возвращает значение, указывающее, реализует ли объект XmlReader метод ReadValueChunk(Char[], Int32, Int32). (Унаследовано от XmlReader) |
CanResolveEntity |
Возвращает значение, определяющее, способно ли данное средство чтения выполнять синтаксический анализ и разрешение сущностей. |
Depth |
Возвращает глубину текущего узла в XML-документе. |
EOF |
Возвращает значение, определяющее, позиционировано ли средство чтения в конец потока. |
HasAttributes |
Возвращает значение, показывающее, имеются ли атрибуты у текущего узла. |
HasValue |
Возвращает значение, определяющие наличие свойства Value у текущего узла. |
IsDefault |
Возвращает значение, определяющее, является ли текущий узел атрибутом, созданным из значения по умолчанию, определенного в DTD или схеме. |
IsEmptyElement |
Возвращает значение, указывающее, является ли текущий узел пустым элементом (например, |
Item[Int32] |
Возвращает значение атрибута по заданному индексу. |
Item[Int32] |
Когда переопределено в производном классе, возвращает значение атрибута по указанному индексу. (Унаследовано от XmlReader) |
Item[String, String] |
Возвращает значение атрибута с указанным локальным именем и универсальным кодом ресурса (URI) пространства имен. |
Item[String, String] |
При переопределении в производном классе получает значение атрибута с указанными свойствами LocalName и NamespaceURI. (Унаследовано от XmlReader) |
Item[String] |
При переопределении в производном классе получает значение атрибута с указанным именем. |
Item[String] |
При переопределении в производном классе получает значение атрибута с указанным свойством Name. (Унаследовано от XmlReader) |
LocalName |
Возвращает локальное имя текущего узла. |
Name |
Возвращает полное имя текущего узла. |
NamespaceURI |
Возвращает URI пространства имен (определенное в спецификации W3C Namespace) узла, на который позиционировано средство чтения. |
NameTable |
Возвращает класс XmlNameTable, связанный с данной реализацией. |
NodeType |
Возвращает тип текущего узла. |
Prefix |
Возвращает префикс пространства имен, связанный с текущим узлом. |
QuoteChar |
Возвращает знак кавычек, используемый для выделения значения узла атрибута. |
QuoteChar |
Когда переопределено в производном классе, возвращает знак кавычек для выделения значения узла атрибута. (Унаследовано от XmlReader) |
ReadState |
Возвращает состояние средства чтения. |
SchemaInfo |
Возвращает сведения схемы, которые были назначены текущему узлу. |
SchemaInfo |
Возвращает сведения схемы, которые были назначены текущему узлу в результате проверки схемы. (Унаследовано от XmlReader) |
Settings |
Получает объект XmlReaderSettings, используемый для создания данного экземпляра XmlReader. (Унаследовано от XmlReader) |
Value |
Возвращает текстовое значение текущего узла. |
ValueType |
Возвращает тип CLR текущего узла. (Унаследовано от XmlReader) |
XmlLang |
Возвращает текущую область действия |
XmlSpace |
Возвращает текущую область действия |
Методы
Close() |
Изменяет значение свойства ReadState на |
Dispose() |
Освобождает все ресурсы, используемые текущим экземпляром класса XmlReader. (Унаследовано от XmlReader) |
Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые объектом XmlReader, а при необходимости освобождает также управляемые ресурсы. (Унаследовано от XmlReader) |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetAttribute(Int32) |
Возвращает значение атрибута по заданному индексу. |
GetAttribute(String) |
Возвращает значение атрибута с указанным именем. |
GetAttribute(String, String) |
Возвращает значение атрибута с указанным локальным именем и универсальным кодом ресурса (URI) пространства имен. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
GetValueAsync() |
Асинхронно возвращает значение текущего узла. (Унаследовано от XmlReader) |
IsStartElement() |
Вызывает метод MoveToContent() и проверяет, является ли текущий узел содержимого открывающим тегом или пустым тегом элемента. (Унаследовано от XmlReader) |
IsStartElement(String) |
Вызывает метод MoveToContent() и проверяет, является ли текущий узел содержимого открывающим тегом или пустым тегом элемента, а также соответствует ли значение свойства Name элемента заданному аргументу. (Унаследовано от XmlReader) |
IsStartElement(String, String) |
Вызывает метод MoveToContent() и проверяет, является ли текущий узел содержимого открывающим тегом или пустым тегом элемента, а также соответствуют ли значения свойств LocalName и NamespaceURI элемента заданным строкам. (Унаследовано от XmlReader) |
LookupNamespace(String) |
Разрешает префикс пространства имен в области видимости текущего элемента. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
MoveToAttribute(Int32) |
Переходит к атрибуту с указанным индексом. |
MoveToAttribute(String) |
Переходит к атрибуту с указанным именем. |
MoveToAttribute(String, String) |
Переходит к атрибуту с указанным локальным именем и URI пространства имен. |
MoveToContent() |
Проверяет, является ли текущий узел узлом содержимого (текст без пустого пространства, |
MoveToContentAsync() |
В асинхронном режиме проверяет, является ли текущий узел узлом содержимого. Если узел не является узлом содержимого, средство чтения пропускает этот узел и переходит к следующему узлу содержимого или в конец файла. (Унаследовано от XmlReader) |
MoveToElement() |
Переходит к элементу, содержащему текущий узел атрибута. |
MoveToFirstAttribute() |
Переходит к первому атрибуту. |
MoveToNextAttribute() |
Переходит к следующему атрибуту. |
Read() |
Считывает следующий узел из потока. |
ReadAsync() |
Асинхронно считывает следующий узел из потока. (Унаследовано от XmlReader) |
ReadAttributeValue() |
Разбирает значение атрибута в один или несколько узлов |
ReadContentAs(Type, IXmlNamespaceResolver) |
Считывает содержимое объекта указанного типа. (Унаследовано от XmlReader) |
ReadContentAsAsync(Type, IXmlNamespaceResolver) |
Асинхронно считывает содержимое как объект указанного типа. (Унаследовано от XmlReader) |
ReadContentAsBase64(Byte[], Int32, Int32) |
Считывает содержимое и возвращает раскодированные двоичные байты Base64. |
ReadContentAsBase64(Byte[], Int32, Int32) |
Считывает содержимое и возвращает раскодированные двоичные байты Base64. (Унаследовано от XmlReader) |
ReadContentAsBase64Async(Byte[], Int32, Int32) |
Асинхронно считывает содержимое и возвращает декодированные из кодировки Base64 двоичные байты. (Унаследовано от XmlReader) |
ReadContentAsBinHex(Byte[], Int32, Int32) |
Считывает данные и возвращает двоичные байты, декодированные из кодировки BinHex. |
ReadContentAsBinHex(Byte[], Int32, Int32) |
Считывает содержимое и возвращает раскодированные двоичные байты |
ReadContentAsBinHexAsync(Byte[], Int32, Int32) |
Асинхронно считывает содержимое и возвращает раскодированные двоичные байты |
ReadContentAsBoolean() |
Считывает содержимое текста в текущей позиции как значение |
ReadContentAsDateTime() |
Считывает содержимое текста в текущем положении как объект DateTime. (Унаследовано от XmlReader) |
ReadContentAsDateTimeOffset() |
Считывает содержимое текста в текущем положении как объект DateTimeOffset. (Унаследовано от XmlReader) |
ReadContentAsDecimal() |
Считывает содержимое текста в текущем положении как объект Decimal. (Унаследовано от XmlReader) |
ReadContentAsDouble() |
Считывает текстовое содержимое в текущей позиции как число с плавающей запятой двойной точности. (Унаследовано от XmlReader) |
ReadContentAsFloat() |
Считывает содержимое текста в текущей позиции как число с плавающей запятой одиночной точности. (Унаследовано от XmlReader) |
ReadContentAsInt() |
Считывает текстовое содержимое в текущей позиции как 32-разрядное целое число со знаком. (Унаследовано от XmlReader) |
ReadContentAsLong() |
Считывает текстовое содержимое в текущей позиции как 64-разрядное целое число со знаком. (Унаследовано от XmlReader) |
ReadContentAsObject() |
Считывает содержимое текста в текущей позиции как значение Object. (Унаследовано от XmlReader) |
ReadContentAsObjectAsync() |
Асинхронно считывает содержимое текста в текущем положении как объект Object. (Унаследовано от XmlReader) |
ReadContentAsString() |
Считывает содержимое текста в текущем положении как объект String. (Унаследовано от XmlReader) |
ReadContentAsStringAsync() |
Асинхронно считывает содержимое текста в текущем положении как объект String. (Унаследовано от XmlReader) |
ReadElementContentAs(Type, IXmlNamespaceResolver) |
Считывает содержимое элемента в качестве требуемого типа. (Унаследовано от XmlReader) |
ReadElementContentAs(Type, IXmlNamespaceResolver, String, String) |
Проверяет, совпадают ли указанные локальное имя и URI пространства имен с таковыми для текущего элемента, затем считывает содержимое элемента как требуемый тип. (Унаследовано от XmlReader) |
ReadElementContentAsAsync(Type, IXmlNamespaceResolver) |
Асинхронно считывает содержимое элемента как запрашиваемый тип. (Унаследовано от XmlReader) |
ReadElementContentAsBase64(Byte[], Int32, Int32) |
Считывает элемент и декодирует его из кодировки Base64. |
ReadElementContentAsBase64(Byte[], Int32, Int32) |
Считывает элемент и декодирует содержимое |
ReadElementContentAsBase64Async(Byte[], Int32, Int32) |
Асинхронно считывает элемент и расшифровывает содержимое |
ReadElementContentAsBinHex(Byte[], Int32, Int32) |
Считывает элемент и декодирует его из кодировки BinHex. |
ReadElementContentAsBinHex(Byte[], Int32, Int32) |
Считывает элемент и декодирует содержимое |
ReadElementContentAsBinHexAsync(Byte[], Int32, Int32) |
Асинхронно считывает элемент и расшифровывает содержимое |
ReadElementContentAsBoolean() |
Считывает текущий элемент и возвращает содержимое объекта Boolean. (Унаследовано от XmlReader) |
ReadElementContentAsBoolean(String, String) |
Проверяет соответствие указанного URI локального имени и пространства имен с URI текущего элемента, затем считывает текущий элемент и возвращает содержимое как объект Boolean. (Унаследовано от XmlReader) |
ReadElementContentAsDateTime() |
Считывает текущий элемент и возвращает содержимое объекта DateTime. (Унаследовано от XmlReader) |
ReadElementContentAsDateTime(String, String) |
Проверяет соответствие указанного URI локального имени и пространства имен с URI текущего элемента, затем считывает текущий элемент и возвращает содержимое как объект DateTime. (Унаследовано от XmlReader) |
ReadElementContentAsDecimal() |
Считывает текущий элемент и возвращает содержимое объекта Decimal. (Унаследовано от XmlReader) |
ReadElementContentAsDecimal(String, String) |
Проверяет соответствие указанного URI локального имени и пространства имен с URI текущего элемента, затем считывает текущий элемент и возвращает содержимое как объект Decimal. (Унаследовано от XmlReader) |
ReadElementContentAsDouble() |
Считывает текущий элемент и возвращает содержимое как число с плавающей запятой двойной точности. (Унаследовано от XmlReader) |
ReadElementContentAsDouble(String, String) |
Проверяет, совпадают ли указанные локальное имя и URI пространства имен с таковыми для текущего элемента, затем считывает текущий элемент и возвращает содержимое как число с плавающей запятой двойной точности. (Унаследовано от XmlReader) |
ReadElementContentAsFloat() |
Считывает текущий элемент и возвращает содержимое как число с плавающей запятой одиночной точности. (Унаследовано от XmlReader) |
ReadElementContentAsFloat(String, String) |
Проверяет, совпадают ли указанные локальное имя и URI пространства имен с таковыми для текущего элемента, затем считывает текущий элемент и возвращает содержимое как число с плавающей запятой одиночной точности. (Унаследовано от XmlReader) |
ReadElementContentAsInt() |
Считывает текущий элемент и возвращает содержимое в виде 32-разрядного целого числа со знаком. (Унаследовано от XmlReader) |
ReadElementContentAsInt(String, String) |
Проверяет, совпадают ли указанные локальное имя и URI пространства имен с таковыми для текущего элемента, затем считывает текущий элемент и возвращает содержимое как 32-разрядное целое число со знаком. (Унаследовано от XmlReader) |
ReadElementContentAsLong() |
Считывает текущий элемент и возвращает содержимое в виде 64-разрядного целого числа со знаком. (Унаследовано от XmlReader) |
ReadElementContentAsLong(String, String) |
Проверяет, совпадают ли указанные локальное имя и URI пространства имен с таковыми для текущего элемента, затем считывает текущий элемент и возвращает содержимое как 64-разрядное целое число со знаком. (Унаследовано от XmlReader) |
ReadElementContentAsObject() |
Прочитывает текущий элемент и возвращает содержимое в качестве объекта Object. (Унаследовано от XmlReader) |
ReadElementContentAsObject(String, String) |
Проверяет соответствие указанного URI локального имени и пространства имен с URI текущего элемента, затем считывает текущий элемент и возвращает содержимое как объект Object. (Унаследовано от XmlReader) |
ReadElementContentAsObjectAsync() |
Асинхронно считывает текущий элемент и возвращает содержимое как объект Object. (Унаследовано от XmlReader) |
ReadElementContentAsString() |
Считывает текущий элемент и возвращает содержимое объекта String. (Унаследовано от XmlReader) |
ReadElementContentAsString(String, String) |
Проверяет соответствие указанного URI локального имени и пространства имен с URI текущего элемента, затем считывает текущий элемент и возвращает содержимое как объект String. (Унаследовано от XmlReader) |
ReadElementContentAsStringAsync() |
Асинхронно считывает текущий элемент и возвращает содержимое как объект String. (Унаследовано от XmlReader) |
ReadElementString() |
Считывает элемент, предназначенный только для чтения. Однако рекомендуем использовать вместо этого метод ReadElementContentAsString(), предполагающий более простой способ обработки данной операции. (Унаследовано от XmlReader) |
ReadElementString(String) |
Проверяет перед чтением текстового элемента соответствие значения свойства Name найденного элемента и заданной строки. Однако рекомендуем использовать вместо этого метод ReadElementContentAsString(), предполагающий более простой способ обработки данной операции. (Унаследовано от XmlReader) |
ReadElementString(String, String) |
Проверяет перед чтением текстового элемента соответствие значений свойств LocalName и NamespaceURI найденного элемента и заданных строк. Однако рекомендуем использовать вместо этого метод ReadElementContentAsString(String, String), предполагающий более простой способ обработки данной операции. (Унаследовано от XmlReader) |
ReadEndElement() |
Проверяет, является ли текущий узел содержимого закрывающим тегом, и позиционирует средство чтения на следующий узел. (Унаследовано от XmlReader) |
ReadInnerXml() |
Когда переопределено в производном классе, считывает как строку все содержимое, включая разметку. (Унаследовано от XmlReader) |
ReadInnerXmlAsync() |
Асинхронно считывает в виде строки все содержимое, включая разметку. (Унаследовано от XmlReader) |
ReadOuterXml() |
Когда переопределено в производном классе, считывает содержимое, включая разметку, представляющую этот узел и все его дочерние узлы. (Унаследовано от XmlReader) |
ReadOuterXmlAsync() |
Асинхронно считывает содержимое, включая разметку, представляющее этот узел и все его дочерние узлы. (Унаследовано от XmlReader) |
ReadStartElement() |
Проверяет, является ли текущий узел элементом и перемещает модуль чтения к следующему узлу. (Унаследовано от XmlReader) |
ReadStartElement(String) |
Проверяет, является ли текущий узел элементом с заданным Name, и перемещает средство чтения на следующий узел. (Унаследовано от XmlReader) |
ReadStartElement(String, String) |
Проверяет, является ли текущий узел элементом с заданным LocalName и NamespaceURI, и перемещает средство чтения на следующий узел. (Унаследовано от XmlReader) |
ReadString() |
Считывает содержимое элемента или текстового узла в виде строки. |
ReadSubtree() |
Возвращает новый экземпляр |
ReadToDescendant(String) |
Переводит XmlReader к следующему сопоставленному элементу-потомку с указанным проверенным именем. (Унаследовано от XmlReader) |
ReadToDescendant(String, String) |
Переводит XmlReader к следующему элементу-потомку с указанным локальным именем и URI пространства имен. (Унаследовано от XmlReader) |
ReadToFollowing(String) |
Выполняет чтение до обнаружения элемента с указанным полным именем. (Унаследовано от XmlReader) |
ReadToFollowing(String, String) |
Выполняет чтение до обнаружения указанных локального имени и URI пространства имен. (Унаследовано от XmlReader) |
ReadToNextSibling(String) |
Переводит |
ReadToNextSibling(String, String) |
Переводит |
ReadValueChunk(Char[], Int32, Int32) |
Считывает большие потоки текста, внедренного в XML-документ. (Унаследовано от XmlReader) |
ReadValueChunkAsync(Char[], Int32, Int32) |
Асинхронно считывает большие потоки текста, внедренного в XML-документ. (Унаследовано от XmlReader) |
ResolveEntity() |
Разрешает ссылки на сущности для узлов |
Skip() |
Пропускает дочерний узел текущего узла. |
SkipAsync() |
Асинхронно пропускает дочерние узлы текущего узла. (Унаследовано от XmlReader) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
IDisposable.Dispose() |
Описание этого члена см. в разделе Dispose(). (Унаследовано от XmlReader) |
IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope) |
Описание этого члена см. в разделе GetNamespacesInScope(XmlNamespaceScope). |
IXmlNamespaceResolver.LookupNamespace(String) |
Описание этого члена см. в разделе LookupNamespace(String). |
IXmlNamespaceResolver.LookupPrefix(String) |
Описание этого члена см. в разделе LookupPrefix(String). |