XmlNodeReader Classe

Definição

Representa um leitor que fornece acesso rápido e não armazenado em cache somente aos dados XML em um XmlNode.

public ref class XmlNodeReader : System::Xml::XmlReader
public ref class XmlNodeReader : System::Xml::XmlReader, System::Xml::IXmlNamespaceResolver
public class XmlNodeReader : System.Xml.XmlReader
public class XmlNodeReader : System.Xml.XmlReader, System.Xml.IXmlNamespaceResolver
type XmlNodeReader = class
    inherit XmlReader
type XmlNodeReader = class
    inherit XmlReader
    interface IXmlNamespaceResolver
Public Class XmlNodeReader
Inherits XmlReader
Public Class XmlNodeReader
Inherits XmlReader
Implements IXmlNamespaceResolver
Herança
XmlNodeReader
Implementações

Exemplos

No exemplo a seguir, um arquivo XML é carregado em um documento XML e modificado. O documento XML é passado para um XmlNodeReader, que é passado para o XmlReader.Create método. Quando o leitor de validação analisa o arquivo, ele pode validar todas as alterações feitas no arquivo 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

Os dois arquivos XML a seguir são usados como entrada.

<?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>

Saída:

Erro de validação: o atributo 'publisher' não é declarado.

Comentários

Note

Em vez de usar o XmlNodeReader, recomendamos que você crie XmlReader instâncias usando a XmlReaderSettings classe e o Create método. Isso permite que você aproveite a verificação de conformidade e a conformidade com a recomendação XML 1.0.

Ele XmlNodeReader tem a capacidade de ler uma subárvore XML DOM. Essa classe não dá suporte a DTD (definição de tipo de documento) ou validação de esquema. No entanto, você pode criar um XmlReader objeto que encapsula o XmlNodeReader objeto para validar os dados armazenados no XmlNodeReader objeto, conforme mostrado na seção Exemplos.

Construtores

Nome Description
XmlNodeReader(XmlNode)

Cria uma instância da XmlNodeReader classe usando a especificada XmlNode.

Propriedades

Nome Description
AttributeCount

Obtém o número de atributos no nó atual.

BaseURI

Obtém o URI base do nó atual.

CanReadBinaryContent

Obtém um valor que indica se o XmlNodeReader conteúdo binário implementa os métodos de leitura de conteúdo binário.

CanReadValueChunk

Obtém um valor que indica se o XmlReader método implementa ReadValueChunk(Char[], Int32, Int32) .

(Herdado de XmlReader)
CanResolveEntity

Obtém um valor que indica se esse leitor pode analisar e resolver entidades.

Depth

Obtém a profundidade do nó atual no documento XML.

EOF

Obtém um valor que indica se o leitor está posicionado no final do fluxo.

HasAttributes

Obtém um valor que indica se o nó atual tem atributos.

HasValue

Obtém um valor que indica se o nó atual pode ter um Value.

IsDefault

Obtém um valor que indica se o nó atual é um atributo que foi gerado a partir do valor padrão definido na definição de tipo de documento (DTD) ou no esquema.

IsEmptyElement

Obtém um valor que indica se o nó atual é um elemento vazio (por exemplo, <MyElement/>).

Item[Int32]

Obtém o valor do atributo com o índice especificado.

Item[Int32]

Quando substituído em uma classe derivada, obtém o valor do atributo com o índice especificado.

(Herdado de XmlReader)
Item[String, String]

Obtém o valor do atributo com o nome local especificado e o URI do namespace.

Item[String, String]

Quando substituído em uma classe derivada, obtém o valor do atributo com o especificado LocalName e NamespaceURI.

(Herdado de XmlReader)
Item[String]

Quando substituído em uma classe derivada, obtém o valor do atributo com o nome especificado.

Item[String]

Quando substituído em uma classe derivada, obtém o valor do atributo com o especificado Name.

(Herdado de XmlReader)
LocalName

Obtém o nome local do nó atual.

Name

Obtém o nome qualificado do nó atual.

NamespaceURI

Obtém o URI do espaço de nomes (conforme definido na especificação espaço de nomes W3C) do nó no qual o leitor está posicionado.

NameTable

Obtém o XmlNameTable associado a essa implementação.

NodeType

Obtém o tipo de nó atual.

Prefix

Obtém o prefixo de espaço de nomes associado ao nó atual.

QuoteChar

Obtém o caractere de aspas usado para colocar o valor de um nó de atributo.

QuoteChar

Quando substituído em uma classe derivada, obtém o caractere de aspas usado para colocar o valor de um nó de atributo.

(Herdado de XmlReader)
ReadState

Obtém o estado do leitor.

SchemaInfo

Obtém as informações de esquema atribuídas ao nó atual.

Settings

Obtém o XmlReaderSettings objeto usado para criar essa XmlReader instância.

(Herdado de XmlReader)
Value

Obtém o valor de texto do nó atual.

ValueType

Obtém o tipo CLR (Common Language Runtime) para o nó atual.

(Herdado de XmlReader)
XmlLang

Obtém o escopo atual xml:lang .

XmlSpace

Obtém o escopo atual xml:space .

Métodos

Nome Description
Close()

Altera o ReadState para Closed.

Dispose()

Libera todos os recursos usados pela instância atual da XmlReader classe.

(Herdado de XmlReader)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo XmlReader e, opcionalmente, libera os recursos gerenciados.

(Herdado de XmlReader)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetAttribute(Int32)

Obtém o valor do atributo com o índice especificado.

GetAttribute(String, String)

Obtém o valor do atributo com o nome local especificado e o URI do namespace.

GetAttribute(String)

Obtém o valor do atributo com o nome especificado.

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValueAsync()

Obtém de forma assíncrona o valor do nó atual.

(Herdado de XmlReader)
IsStartElement()

Chama MoveToContent() e testa se o nó de conteúdo atual é uma marca inicial ou uma marca de elemento vazia.

(Herdado de XmlReader)
IsStartElement(String, String)

Chama MoveToContent() e testa se o nó de conteúdo atual é uma marca inicial ou uma marca de elemento vazia e se as LocalName propriedades do NamespaceURI elemento encontrado correspondem às cadeias de caracteres fornecidas.

(Herdado de XmlReader)
IsStartElement(String)

Chama MoveToContent() e testa se o nó de conteúdo atual é uma marca inicial ou uma marca de elemento vazia e se a Name propriedade do elemento encontrado corresponde ao argumento fornecido.

(Herdado de XmlReader)
LookupNamespace(String)

Resolve um prefixo de namespace no escopo do elemento atual.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
MoveToAttribute(Int32)

Move para o atributo com o índice especificado.

MoveToAttribute(String, String)

Move para o atributo com o nome local especificado e o URI do namespace.

MoveToAttribute(String)

Move para o atributo com o nome especificado.

MoveToContent()

Verifica se o nó atual é um conteúdo (texto de espaço não branco, CDATA, Element, , EndElement, EntityReferenceou EndEntity) nó. Se o nó não for um nó de conteúdo, o leitor ignorará o próximo nó de conteúdo ou o fim do arquivo. Ele ignora nós do seguinte tipo: ProcessingInstruction, , DocumentType, Comment, ou WhitespaceSignificantWhitespace.

(Herdado de XmlReader)
MoveToContentAsync()

Verifica de forma assíncrona se o nó atual é um nó de conteúdo. Se o nó não for um nó de conteúdo, o leitor ignorará o próximo nó de conteúdo ou o fim do arquivo.

(Herdado de XmlReader)
MoveToElement()

Move para o elemento que contém o nó de atributo atual.

MoveToFirstAttribute()

Move para o primeiro atributo.

MoveToNextAttribute()

Move para o próximo atributo.

Read()

Lê o próximo nó do fluxo.

ReadAsync()

Lê de forma assíncrona o próximo nó do fluxo.

(Herdado de XmlReader)
ReadAttributeValue()

Analisa o valor do atributo em um ou mais TextEntityReferencenós ou EndEntity nós.

ReadContentAs(Type, IXmlNamespaceResolver)

Lê o conteúdo como um objeto do tipo especificado.

(Herdado de XmlReader)
ReadContentAsAsync(Type, IXmlNamespaceResolver)

Lê o conteúdo de forma assíncrona como um objeto do tipo especificado.

(Herdado de XmlReader)
ReadContentAsBase64(Byte[], Int32, Int32)

Lê o conteúdo e retorna os bytes binários decodificados em Base64.

ReadContentAsBase64Async(Byte[], Int32, Int32)

Lê o conteúdo de forma assíncrona e retorna os bytes binários decodificados em Base64.

(Herdado de XmlReader)
ReadContentAsBinHex(Byte[], Int32, Int32)

Lê o conteúdo e retorna os bytes binários decodificados do BinHex.

ReadContentAsBinHexAsync(Byte[], Int32, Int32)

Lê o conteúdo de forma assíncrona e retorna os BinHex bytes binários decodificados.

(Herdado de XmlReader)
ReadContentAsBoolean()

Lê o conteúdo do texto na posição atual como um Boolean.

(Herdado de XmlReader)
ReadContentAsDateTime()

Lê o conteúdo do texto na posição atual como um DateTime objeto.

(Herdado de XmlReader)
ReadContentAsDateTimeOffset()

Lê o conteúdo do texto na posição atual como um DateTimeOffset objeto.

(Herdado de XmlReader)
ReadContentAsDecimal()

Lê o conteúdo do texto na posição atual como um Decimal objeto.

(Herdado de XmlReader)
ReadContentAsDouble()

Lê o conteúdo do texto na posição atual como um número de ponto flutuante de precisão dupla.

(Herdado de XmlReader)
ReadContentAsFloat()

Lê o conteúdo do texto na posição atual como um número de ponto flutuante de precisão única.

(Herdado de XmlReader)
ReadContentAsInt()

Lê o conteúdo do texto na posição atual como um inteiro com sinal de 32 bits.

(Herdado de XmlReader)
ReadContentAsLong()

Lê o conteúdo do texto na posição atual como um inteiro com sinal de 64 bits.

(Herdado de XmlReader)
ReadContentAsObject()

Lê o conteúdo do texto na posição atual como um Object.

(Herdado de XmlReader)
ReadContentAsObjectAsync()

Lê de forma assíncrona o conteúdo do texto na posição atual como um Object.

(Herdado de XmlReader)
ReadContentAsString()

Lê o conteúdo do texto na posição atual como um String objeto.

(Herdado de XmlReader)
ReadContentAsStringAsync()

Lê de forma assíncrona o conteúdo do texto na posição atual como um String objeto.

(Herdado de XmlReader)
ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

Verifica se o nome local especificado e o URI do namespace correspondem ao do elemento atual e lê o conteúdo do elemento como o tipo solicitado.

(Herdado de XmlReader)
ReadElementContentAs(Type, IXmlNamespaceResolver)

Lê o conteúdo do elemento como o tipo solicitado.

(Herdado de XmlReader)
ReadElementContentAsAsync(Type, IXmlNamespaceResolver)

Lê de forma assíncrona o conteúdo do elemento como o tipo solicitado.

(Herdado de XmlReader)
ReadElementContentAsBase64(Byte[], Int32, Int32)

Lê o elemento e decodifica o conteúdo base64.

ReadElementContentAsBase64Async(Byte[], Int32, Int32)

Lê o elemento de forma assíncrona e decodifica o Base64 conteúdo.

(Herdado de XmlReader)
ReadElementContentAsBinHex(Byte[], Int32, Int32)

Lê o elemento e decodifica o conteúdo do BinHex.

ReadElementContentAsBinHexAsync(Byte[], Int32, Int32)

Lê o elemento de forma assíncrona e decodifica o BinHex conteúdo.

(Herdado de XmlReader)
ReadElementContentAsBoolean()

Lê o elemento atual e retorna o conteúdo como um Boolean objeto.

(Herdado de XmlReader)
ReadElementContentAsBoolean(String, String)

Verifica se o nome local especificado e o URI do namespace correspondem ao do elemento atual, lê o elemento atual e retorna o conteúdo como um Boolean objeto.

(Herdado de XmlReader)
ReadElementContentAsDateTime()

Lê o elemento atual e retorna o conteúdo como um DateTime objeto.

(Herdado de XmlReader)
ReadElementContentAsDateTime(String, String)

Verifica se o nome local especificado e o URI do namespace correspondem ao do elemento atual, lê o elemento atual e retorna o conteúdo como um DateTime objeto.

(Herdado de XmlReader)
ReadElementContentAsDecimal()

Lê o elemento atual e retorna o conteúdo como um Decimal objeto.

(Herdado de XmlReader)
ReadElementContentAsDecimal(String, String)

Verifica se o nome local especificado e o URI do namespace correspondem ao do elemento atual, lê o elemento atual e retorna o conteúdo como um Decimal objeto.

(Herdado de XmlReader)
ReadElementContentAsDouble()

Lê o elemento atual e retorna o conteúdo como um número de ponto flutuante de precisão dupla.

(Herdado de XmlReader)
ReadElementContentAsDouble(String, String)

Verifica se o nome local especificado e o URI do namespace correspondem ao do elemento atual, lê o elemento atual e retorna o conteúdo como um número de ponto flutuante de precisão dupla.

(Herdado de XmlReader)
ReadElementContentAsFloat()

Lê o elemento atual e retorna o conteúdo como número de ponto flutuante de precisão única.

(Herdado de XmlReader)
ReadElementContentAsFloat(String, String)

Verifica se o nome local especificado e o URI do namespace correspondem ao do elemento atual, lê o elemento atual e retorna o conteúdo como um número de ponto flutuante de precisão única.

(Herdado de XmlReader)
ReadElementContentAsInt()

Lê o elemento atual e retorna o conteúdo como um inteiro com sinal de 32 bits.

(Herdado de XmlReader)
ReadElementContentAsInt(String, String)

Verifica se o nome local especificado e o URI do namespace correspondem ao do elemento atual, lê o elemento atual e retorna o conteúdo como um inteiro com sinal de 32 bits.

(Herdado de XmlReader)
ReadElementContentAsLong()

Lê o elemento atual e retorna o conteúdo como um inteiro com sinal de 64 bits.

(Herdado de XmlReader)
ReadElementContentAsLong(String, String)

Verifica se o nome local especificado e o URI do namespace correspondem ao do elemento atual, lê o elemento atual e retorna o conteúdo como um inteiro com sinal de 64 bits.

(Herdado de XmlReader)
ReadElementContentAsObject()

Lê o elemento atual e retorna o conteúdo como um Object.

(Herdado de XmlReader)
ReadElementContentAsObject(String, String)

Verifica se o nome local especificado e o URI do namespace correspondem ao do elemento atual, lê o elemento atual e retorna o conteúdo como um Object.

(Herdado de XmlReader)
ReadElementContentAsObjectAsync()

Lê o elemento atual de forma assíncrona e retorna o conteúdo como um Object.

(Herdado de XmlReader)
ReadElementContentAsString()

Lê o elemento atual e retorna o conteúdo como um String objeto.

(Herdado de XmlReader)
ReadElementContentAsString(String, String)

Verifica se o nome local especificado e o URI do namespace correspondem ao do elemento atual, lê o elemento atual e retorna o conteúdo como um String objeto.

(Herdado de XmlReader)
ReadElementContentAsStringAsync()

Lê o elemento atual de forma assíncrona e retorna o conteúdo como um String objeto.

(Herdado de XmlReader)
ReadElementString()

Lê um elemento somente texto. No entanto, recomendamos que você use o ReadElementContentAsString() método, pois ele fornece uma maneira mais simples de lidar com essa operação.

(Herdado de XmlReader)
ReadElementString(String, String)

Verifica se as LocalName propriedades do NamespaceURI elemento encontrado correspondem às cadeias de caracteres fornecidas antes de ler um elemento somente texto. No entanto, recomendamos que você use o ReadElementContentAsString(String, String) método, pois ele fornece uma maneira mais simples de lidar com essa operação.

(Herdado de XmlReader)
ReadElementString(String)

Verifica se a Name propriedade do elemento encontrado corresponde à cadeia de caracteres determinada antes de ler um elemento somente texto. No entanto, recomendamos que você use o ReadElementContentAsString() método, pois ele fornece uma maneira mais simples de lidar com essa operação.

(Herdado de XmlReader)
ReadEndElement()

Verifica se o nó de conteúdo atual é uma marca de término e avança o leitor para o próximo nó.

(Herdado de XmlReader)
ReadInnerXml()

Quando substituído em uma classe derivada, lê todo o conteúdo, incluindo marcação, como uma cadeia de caracteres.

(Herdado de XmlReader)
ReadInnerXmlAsync()

Lê de forma assíncrona todo o conteúdo, incluindo marcação, como uma cadeia de caracteres.

(Herdado de XmlReader)
ReadOuterXml()

Quando substituído em uma classe derivada, lê o conteúdo, incluindo marcação, representando esse nó e todos os seus filhos.

(Herdado de XmlReader)
ReadOuterXmlAsync()

Lê o conteúdo de forma assíncrona, incluindo marcação, representando esse nó e todos os seus filhos.

(Herdado de XmlReader)
ReadStartElement()

Verifica se o nó atual é um elemento e avança o leitor para o próximo nó.

(Herdado de XmlReader)
ReadStartElement(String, String)

Verifica se o nó de conteúdo atual é um elemento com o determinado LocalName e NamespaceURI avança o leitor para o próximo nó.

(Herdado de XmlReader)
ReadStartElement(String)

Verifica se o nó de conteúdo atual é um elemento com o determinado Name e avança o leitor para o próximo nó.

(Herdado de XmlReader)
ReadString()

Lê o conteúdo de um elemento ou nó de texto como uma cadeia de caracteres.

ReadSubtree()

Retorna uma nova XmlReader instância que pode ser usada para ler o nó atual e todos os seus descendentes.

(Herdado de XmlReader)
ReadToDescendant(String, String)

Avança para o XmlReader próximo elemento descendente com o nome local e o URI do namespace especificados.

(Herdado de XmlReader)
ReadToDescendant(String)

Avança para o XmlReader próximo elemento descendente com o nome qualificado especificado.

(Herdado de XmlReader)
ReadToFollowing(String, String)

Lê até que um elemento com o nome local e o URI do namespace especificados seja encontrado.

(Herdado de XmlReader)
ReadToFollowing(String)

Lê até que um elemento com o nome qualificado especificado seja encontrado.

(Herdado de XmlReader)
ReadToNextSibling(String, String)

Avança para o XmlReader próximo elemento irmão com o nome local e o URI do namespace especificados.

(Herdado de XmlReader)
ReadToNextSibling(String)

Avança para o XmlReader próximo elemento irmão com o nome qualificado especificado.

(Herdado de XmlReader)
ReadValueChunk(Char[], Int32, Int32)

Lê grandes fluxos de texto inseridos em um documento XML.

(Herdado de XmlReader)
ReadValueChunkAsync(Char[], Int32, Int32)

Lê de forma assíncrona grandes fluxos de texto inseridos em um documento XML.

(Herdado de XmlReader)
ResolveEntity()

Resolve a referência de entidade para EntityReference nós.

Skip()

Ignora os subordinados do nó atual.

SkipAsync()

Ignora assíncronamente os filhos do nó atual.

(Herdado de XmlReader)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IDisposable.Dispose()

Para obter uma descrição deste membro, consulte Dispose().

(Herdado de XmlReader)
IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope)

Para obter uma descrição deste membro, consulte GetNamespacesInScope(XmlNamespaceScope).

IXmlNamespaceResolver.LookupNamespace(String)

Para obter uma descrição deste membro, consulte LookupNamespace(String).

IXmlNamespaceResolver.LookupPrefix(String)

Para obter uma descrição deste membro, consulte LookupPrefix(String).

Aplica-se a