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 не объявлен.
Комментарии
Note
Вместо использования XmlNodeReaderрекомендуется создавать XmlReader экземпляры с помощью XmlReaderSettings класса и Create метода. Это позволяет воспользоваться преимуществами проверки соответствия и соответствия рекомендациям XML 1.0.
Имеет XmlNodeReader возможность чтения поддерев XML-DOM. Этот класс не поддерживает определение типа документа (DTD) или проверку схемы. Однако можно создать XmlReader объект, который выполняет оболочку вокруг XmlNodeReader объекта, чтобы проверить данные, хранящиеся в объекте XmlNodeReader , как показано в разделе "Примеры".
Конструкторы
| Имя | Описание |
|---|---|
| XmlNodeReader(XmlNode) |
Создает экземпляр класса с помощью указанного |
Свойства
| Имя | Описание |
|---|---|
| AttributeCount |
Возвращает количество атрибутов на текущем узле. |
| BaseURI |
Возвращает базовый универсальный код ресурса (URI) текущего узла. |
| CanReadBinaryContent |
Возвращает значение, указывающее, реализует ли XmlNodeReader методы чтения двоичного содержимого. |
| 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) узла, на котором размещается средство чтения. |
| NameTable |
Возвращает связанную XmlNameTable с этой реализацией. |
| NodeType |
Возвращает тип текущего узла. |
| Prefix |
Возвращает префикс пространства имен, связанный с текущим узлом. |
| QuoteChar |
Возвращает символ кавычки, используемый для заключения значения узла атрибута. |
| QuoteChar |
При переопределении в производном классе получает символ кавычки, используемый для заключения значения узла атрибута. (Унаследовано от XmlReader) |
| ReadState |
Возвращает состояние средства чтения. |
| SchemaInfo |
Возвращает сведения о схеме, назначенные текущему узлу. |
| 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, String) |
Возвращает значение атрибута с указанным локальным именем и URI пространства имен. |
| GetAttribute(String) |
Возвращает значение атрибута с указанным именем. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| GetValueAsync() |
Асинхронно получает значение текущего узла. (Унаследовано от XmlReader) |
| IsStartElement() |
Вызывает MoveToContent() и проверяет, является ли текущий узел содержимого начальным тегом или пустым тегом элемента. (Унаследовано от XmlReader) |
| IsStartElement(String, String) |
Вызывает MoveToContent() и проверяет, является ли текущий узел содержимого начальным тегом или пустым тегом элемента, а также если LocalNameNamespaceURI найденные свойства элемента соответствуют заданным строкам. (Унаследовано от XmlReader) |
| IsStartElement(String) |
Вызывает MoveToContent() и проверяет, является ли текущий узел содержимого начальным тегом или пустым тегом элемента, и если Name свойство элемента найдено соответствует заданному аргументу. (Унаследовано от XmlReader) |
| LookupNamespace(String) |
Разрешает префикс пространства имен в области текущего элемента. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| MoveToAttribute(Int32) |
Перемещается к атрибуту с указанным индексом. |
| MoveToAttribute(String, String) |
Перемещается к атрибуту с указанным локальным именем и URI пространства имен. |
| MoveToAttribute(String) |
Перемещается к атрибуту с указанным именем. |
| MoveToContent() |
Проверяет, является ли текущий узел содержимым (текст без пробелов, |
| MoveToContentAsync() |
Асинхронно проверяет, является ли текущий узел узлом содержимого. Если узел не является узлом содержимого, читатель пропускает следующий узел содержимого или конец файла. (Унаследовано от XmlReader) |
| MoveToElement() |
Перемещается в элемент, содержащий текущий узел атрибута. |
| MoveToFirstAttribute() |
Перемещается к первому атрибуту. |
| MoveToNextAttribute() |
Переходит к следующему атрибуту. |
| Read() |
Считывает следующий узел из потока. |
| ReadAsync() |
Асинхронно считывает следующий узел из потока. (Унаследовано от XmlReader) |
| ReadAttributeValue() |
Анализирует значение атрибута на один или несколько |
| ReadContentAs(Type, IXmlNamespaceResolver) |
Считывает содержимое в виде объекта указанного типа. (Унаследовано от XmlReader) |
| ReadContentAsAsync(Type, IXmlNamespaceResolver) |
Асинхронно считывает содержимое как объект указанного типа. (Унаследовано от XmlReader) |
| ReadContentAsBase64(Byte[], Int32, Int32) |
Считывает содержимое и возвращает декодированные двоичные байты Base64. |
| ReadContentAsBase64Async(Byte[], Int32, Int32) |
Асинхронно считывает содержимое и возвращает декодированные двоичные байты Base64. (Унаследовано от XmlReader) |
| ReadContentAsBinHex(Byte[], Int32, Int32) |
Считывает содержимое и возвращает декодированные двоичные байты BinHex. |
| 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, String, String) |
Проверяет, соответствует ли указанный локальный URI и URI пространства имен текущему элементу, а затем считывает содержимое элемента в качестве запрошенного типа. (Унаследовано от XmlReader) |
| ReadElementContentAs(Type, IXmlNamespaceResolver) |
Считывает содержимое элемента в качестве запрошенного типа. (Унаследовано от XmlReader) |
| ReadElementContentAsAsync(Type, IXmlNamespaceResolver) |
Асинхронно считывает содержимое элемента в качестве запрошенного типа. (Унаследовано от XmlReader) |
| ReadElementContentAsBase64(Byte[], Int32, Int32) |
Считывает элемент и декодирует содержимое Base64. |
| ReadElementContentAsBase64Async(Byte[], Int32, Int32) |
Асинхронно считывает элемент и декодирует содержимое |
| ReadElementContentAsBinHex(Byte[], Int32, Int32) |
Считывает элемент и декодирует содержимое BinHex. |
| ReadElementContentAsBinHexAsync(Byte[], Int32, Int32) |
Асинхронно считывает элемент и декодирует содержимое |
| ReadElementContentAsBoolean() |
Считывает текущий элемент и возвращает содержимое в виде Boolean объекта. (Унаследовано от XmlReader) |
| ReadElementContentAsBoolean(String, String) |
Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде Boolean объекта. (Унаследовано от XmlReader) |
| ReadElementContentAsDateTime() |
Считывает текущий элемент и возвращает содержимое в виде DateTime объекта. (Унаследовано от XmlReader) |
| ReadElementContentAsDateTime(String, String) |
Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде DateTime объекта. (Унаследовано от XmlReader) |
| ReadElementContentAsDecimal() |
Считывает текущий элемент и возвращает содержимое в виде Decimal объекта. (Унаследовано от XmlReader) |
| ReadElementContentAsDecimal(String, String) |
Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде Decimal объекта. (Унаследовано от XmlReader) |
| ReadElementContentAsDouble() |
Считывает текущий элемент и возвращает содержимое в виде числа с плавающей запятой двойной точности. (Унаследовано от XmlReader) |
| ReadElementContentAsDouble(String, String) |
Проверяет, соответствует ли указанный локальный URI имени и пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде числа с плавающей запятой двойной точности. (Унаследовано от XmlReader) |
| ReadElementContentAsFloat() |
Считывает текущий элемент и возвращает содержимое в виде числа с плавающей запятой с одной точностью. (Унаследовано от XmlReader) |
| ReadElementContentAsFloat(String, String) |
Проверяет, соответствует ли указанный локальный URI и 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 пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде Object. (Унаследовано от XmlReader) |
| ReadElementContentAsObjectAsync() |
Асинхронно считывает текущий элемент и возвращает содержимое в виде Object. (Унаследовано от XmlReader) |
| ReadElementContentAsString() |
Считывает текущий элемент и возвращает содержимое в виде String объекта. (Унаследовано от XmlReader) |
| ReadElementContentAsString(String, String) |
Проверяет, соответствует ли указанный локальный и URI пространства имен текущему элементу, а затем считывает текущий элемент и возвращает содержимое в виде String объекта. (Унаследовано от XmlReader) |
| ReadElementContentAsStringAsync() |
Асинхронно считывает текущий элемент и возвращает содержимое в виде String объекта. (Унаследовано от XmlReader) |
| ReadElementString() |
Считывает элемент только для текста. Однако вместо этого рекомендуется использовать ReadElementContentAsString() метод, так как он предоставляет более простой способ обработки этой операции. (Унаследовано от XmlReader) |
| ReadElementString(String, String) |
Проверяет, соответствует ли LocalName найденный элемент и NamespaceURI свойства заданным строкам перед чтением элемента только для текста. Однако вместо этого рекомендуется использовать ReadElementContentAsString(String, String) метод, так как он предоставляет более простой способ обработки этой операции. (Унаследовано от XmlReader) |
| ReadElementString(String) |
Проверяет, соответствует ли Name свойство элемента заданной строке перед чтением элемента только для текста. Однако вместо этого рекомендуется использовать ReadElementContentAsString() метод, так как он предоставляет более простой способ обработки этой операции. (Унаследовано от XmlReader) |
| ReadEndElement() |
Проверяет, является ли текущий узел содержимого конечным тегом и перемещает читателя к следующему узлу. (Унаследовано от XmlReader) |
| ReadInnerXml() |
При переопределении в производном классе считывает все содержимое, включая разметку, в виде строки. (Унаследовано от XmlReader) |
| ReadInnerXmlAsync() |
Асинхронно считывает все содержимое, включая разметку, в виде строки. (Унаследовано от XmlReader) |
| ReadOuterXml() |
При переопределении в производном классе считывает содержимое, включая разметку, представляющую этот узел и все его дочерние элементы. (Унаследовано от XmlReader) |
| ReadOuterXmlAsync() |
Асинхронно считывает содержимое, включая разметку, представляющую этот узел и все его дочерние элементы. (Унаследовано от XmlReader) |
| ReadStartElement() |
Проверяет, является ли текущий узел элементом и перемещает читателя к следующему узлу. (Унаследовано от XmlReader) |
| ReadStartElement(String, String) |
Проверяет, является ли текущий узел содержимого элементом с заданным LocalName и NamespaceURI перемещает читателя к следующему узлу. (Унаследовано от XmlReader) |
| ReadStartElement(String) |
Проверяет, является ли текущий узел содержимого элементом с заданным Name и перемещает читателя к следующему узлу. (Унаследовано от XmlReader) |
| ReadString() |
Считывает содержимое элемента или текстового узла в виде строки. |
| ReadSubtree() |
Возвращает новый |
| ReadToDescendant(String, String) |
XmlReader Перемещается к следующему элементу-потомку с указанным локальным именем и URI пространства имен. (Унаследовано от XmlReader) |
| ReadToDescendant(String) |
XmlReader Перемещается к следующему элементу-потомку с указанным полным именем. (Унаследовано от XmlReader) |
| ReadToFollowing(String, String) |
Считывает, пока не будет найден элемент с указанным локальным именем и URI пространства имен. (Унаследовано от XmlReader) |
| ReadToFollowing(String) |
Считывает до тех пор, пока не будет найден элемент с указанным полным именем. (Унаследовано от XmlReader) |
| ReadToNextSibling(String, String) |
|
| ReadToNextSibling(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). |