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
Наследование
XmlNodeReader
Реализации

Примеры

В следующем примере 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)

Создает экземпляр класса с помощью указанного XmlNodeReaderXmlNode.

Свойства

Имя Описание
AttributeCount

Возвращает количество атрибутов на текущем узле.

BaseURI

Возвращает базовый универсальный код ресурса (URI) текущего узла.

CanReadBinaryContent

Возвращает значение, указывающее, реализует ли XmlNodeReader методы чтения двоичного содержимого.

CanReadValueChunk

Возвращает значение, указывающее, реализует XmlReader ли ReadValueChunk(Char[], Int32, Int32) метод.

(Унаследовано от XmlReader)
CanResolveEntity

Возвращает значение, указывающее, может ли средство чтения анализировать и разрешать сущности.

Depth

Возвращает глубину текущего узла в XML-документе.

EOF

Возвращает значение, указывающее, находится ли средство чтения в конце потока.

HasAttributes

Возвращает значение, указывающее, имеет ли текущий узел какие-либо атрибуты.

HasValue

Возвращает значение, указывающее, может ли текущий узел иметь Value.

IsDefault

Возвращает значение, указывающее, является ли текущий узел атрибутом, созданным из значения по умолчанию, определенного в определении типа документа (DTD) или схеме.

IsEmptyElement

Возвращает значение, указывающее, является ли текущий узел пустым элементом (например, <MyElement/>).

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

Возвращает текущую xml:lang область.

XmlSpace

Возвращает текущую xml:space область.

Методы

Имя Описание
Close()

Изменяет значение ReadStateClosed.

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

Проверяет, является ли текущий узел содержимым (текст без пробелов, CDATA, , ElementEndElementили EntityReferenceEndEntity) узла. Если узел не является узлом содержимого, читатель пропускает следующий узел содержимого или конец файла. Он пропускает узлы следующего типа: ProcessingInstruction, DocumentType, Comment, Whitespaceили SignificantWhitespace.

(Унаследовано от XmlReader)
MoveToContentAsync()

Асинхронно проверяет, является ли текущий узел узлом содержимого. Если узел не является узлом содержимого, читатель пропускает следующий узел содержимого или конец файла.

(Унаследовано от XmlReader)
MoveToElement()

Перемещается в элемент, содержащий текущий узел атрибута.

MoveToFirstAttribute()

Перемещается к первому атрибуту.

MoveToNextAttribute()

Переходит к следующему атрибуту.

Read()

Считывает следующий узел из потока.

ReadAsync()

Асинхронно считывает следующий узел из потока.

(Унаследовано от XmlReader)
ReadAttributeValue()

Анализирует значение атрибута на один или несколько TextEntityReferenceузлов или EndEntity узлов.

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)

Асинхронно считывает содержимое и возвращает декодированные двоичные BinHex байты.

(Унаследовано от XmlReader)
ReadContentAsBoolean()

Считывает текстовое содержимое в текущей позиции в виде Boolean.

(Унаследовано от XmlReader)
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)

Асинхронно считывает элемент и декодирует содержимое Base64 .

(Унаследовано от XmlReader)
ReadElementContentAsBinHex(Byte[], Int32, Int32)

Считывает элемент и декодирует содержимое BinHex.

ReadElementContentAsBinHexAsync(Byte[], Int32, Int32)

Асинхронно считывает элемент и декодирует содержимое BinHex .

(Унаследовано от XmlReader)
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()

Возвращает новый XmlReader экземпляр, который можно использовать для чтения текущего узла и всех его потомков.

(Унаследовано от XmlReader)
ReadToDescendant(String, String)

XmlReader Перемещается к следующему элементу-потомку с указанным локальным именем и URI пространства имен.

(Унаследовано от XmlReader)
ReadToDescendant(String)

XmlReader Перемещается к следующему элементу-потомку с указанным полным именем.

(Унаследовано от XmlReader)
ReadToFollowing(String, String)

Считывает, пока не будет найден элемент с указанным локальным именем и URI пространства имен.

(Унаследовано от XmlReader)
ReadToFollowing(String)

Считывает до тех пор, пока не будет найден элемент с указанным полным именем.

(Унаследовано от XmlReader)
ReadToNextSibling(String, String)

XmlReader Перемещается к следующему элементу с одноуровневыми элементами с указанным локальным именем и URI пространства имен.

(Унаследовано от XmlReader)
ReadToNextSibling(String)

XmlReader Перемещается к следующему элементу с одинаковым именем.

(Унаследовано от XmlReader)
ReadValueChunk(Char[], Int32, Int32)

Считывает большие потоки текста, внедренного в XML-документ.

(Унаследовано от XmlReader)
ReadValueChunkAsync(Char[], Int32, Int32)

Асинхронно считывает большие потоки текста, внедренного в XML-документ.

(Унаследовано от XmlReader)
ResolveEntity()

Разрешает ссылку на сущность для EntityReference узлов.

Skip()

Пропускает дочерние элементы текущего узла.

SkipAsync()

Асинхронно пропускает дочерние элементы текущего узла.

(Унаследовано от XmlReader)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IDisposable.Dispose()

Описание этого элемента см. в разделе Dispose().

(Унаследовано от XmlReader)
IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope)

Описание этого элемента см. в разделе GetNamespacesInScope(XmlNamespaceScope).

IXmlNamespaceResolver.LookupNamespace(String)

Описание этого элемента см. в разделе LookupNamespace(String).

IXmlNamespaceResolver.LookupPrefix(String)

Описание этого элемента см. в разделе LookupPrefix(String).

Применяется к