XmlNodeReader Classe

Definição

Representa um leitor que fornece acesso rápido, sem cache para encaminhar, apenas a dados XML num XmlNodearquivo .

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 seguinte, um ficheiro XML é carregado num documento XML e modificado. O documento XML é passado para um XmlNodeReader, que depois é passado para o XmlReader.Create método. Quando o leitor de validação analisa o ficheiro, pode validar quaisquer alterações feitas ao ficheiro 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 ficheiros XML seguintes 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>

Output:

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

Observações

Note

Em vez de usar o XmlNodeReader, recomendamos que crie XmlReader instâncias usando a XmlReaderSettings classe e o Create método. Isto permite-lhe tirar partido da verificação de conformidade e da conformidade com a recomendação XML 1.0.

Tem XmlNodeReader a capacidade de ler uma subárvore XML DOM. Esta classe não suporta definição de tipo de documento (DTD) nem validação de esquemas. No entanto, pode criar um XmlReader objeto que envolva o XmlNodeReader objeto para validar os dados armazenados no XmlNodeReader objeto, como mostrado na secção de Exemplos.

Construtores

Name Description
XmlNodeReader(XmlNode)

Cria uma instância da XmlNodeReader classe usando o especificado XmlNode.

Propriedades

Name Description
AttributeCount

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

BaseURI

Obtém o URI base do nó atual.

CanReadBinaryContent

Recebe um valor que indica se implementa XmlNodeReader os métodos binários de leitura de conteúdo.

CanReadValueChunk

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

(Herdado de XmlReader)
CanResolveEntity

Recebe um valor que indica se este leitor pode analisar e resolver as entidades.

Depth

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

EOF

Recebe um valor que indica se o leitor está posicionado no final do fluxo.

HasAttributes

Recebe um valor que indica se o nó atual tem algum atributo.

HasValue

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

IsDefault

Recebe um valor que indica se o nó atual é um atributo gerado a partir do valor padrão definido na definição do 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 sobrescrito numa 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 espaço de nomes.

Item[String, String]

Quando sobrescrito numa classe derivada, obtém o valor do atributo com o especificado LocalName e NamespaceURI.

(Herdado de XmlReader)
Item[String]

Quando sobrescrito numa classe derivada, obtém o valor do atributo com o nome especificado.

Item[String]

Quando sobrescrito numa 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 namespace (conforme definido na especificação W3C Namespace) do nó onde o leitor está posicionado.

NameTable

Percebe o que XmlNameTable está associado a esta implementação.

NodeType

Obtém o tipo do nó atual.

Prefix

Recebe o prefixo de namespace associado ao nó atual.

QuoteChar

Obtém o carácter de aspas usado para delimitar o valor de um nó de atributo.

QuoteChar

Quando é sobreposto numa classe derivada, obtém o carácter de aspas usado para conter o valor de um nó de atributo.

(Herdado de XmlReader)
ReadState

Percebe o estado do leitor.

SchemaInfo

Obtém a informação do esquema atribuída ao nó atual.

Settings

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

(Herdado de XmlReader)
Value

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

ValueType

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

(Herdado de XmlReader)
XmlLang

Recebe o âmbito atual xml:lang .

XmlSpace

Recebe o âmbito atual xml:space .

Métodos

Name Description
Close()

Muda o ReadState para Closed.

Dispose()

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

(Herdado de XmlReader)
Dispose(Boolean)

Liberta os recursos não geridos usados pelo XmlReader e opcionalmente liberta os recursos geridos.

(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 espaço de nomes.

GetAttribute(String)

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

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValueAsync()

De forma assíncrona, obtém-se o valor do nó atual.

(Herdado de XmlReader)
IsStartElement()

Chama MoveToContent() e testa se o nó de conteúdo atual é uma tag de início ou uma tag de elemento vazio.

(Herdado de XmlReader)
IsStartElement(String, String)

Chamadas MoveToContent() e testes se o nó de conteúdo atual é uma etiqueta inicial ou uma etiqueta de elemento vazio e se as LocalName propriedades e NamespaceURI do elemento encontrado correspondem às strings dadas.

(Herdado de XmlReader)
IsStartElement(String)

Chamadas MoveToContent() e testes se o nó de conteúdo atual é uma etiqueta inicial ou uma etiqueta de elemento vazia e se a Name propriedade do elemento encontrado corresponde ao argumento dado.

(Herdado de XmlReader)
LookupNamespace(String)

Resolve um prefixo de namespace no âmbito do elemento atual.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
MoveToAttribute(Int32)

Move-se para o atributo com o índice especificado.

MoveToAttribute(String, String)

Move-se para o atributo com o nome local especificado e o espaço de nomes URI.

MoveToAttribute(String)

Move-se para o atributo com o nome especificado.

MoveToContent()

Verifica se o nó atual é um nó de conteúdo (texto sem espaço em branco, CDATA, Element, EntityReferenceEndElement, , ou EndEntity) . Se o nó não for um nó de conteúdo, o leitor avança para o próximo nó de conteúdo ou para o fim do ficheiro. Ignora nós do seguinte tipo: ProcessingInstruction, DocumentType, Comment, Whitespace, ou SignificantWhitespace.

(Herdado de XmlReader)
MoveToContentAsync()

Verifica assíncronamente se o nó atual é um nó de conteúdo. Se o nó não for um nó de conteúdo, o leitor avança para o próximo nó de conteúdo ou para o fim do ficheiro.

(Herdado de XmlReader)
MoveToElement()

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

MoveToFirstAttribute()

Passa para o primeiro atributo.

MoveToNextAttribute()

Passa para o atributo seguinte.

Read()

Lê o próximo nó do fluxo.

ReadAsync()

Lê assíncronamente o próximo nó do fluxo.

(Herdado de XmlReader)
ReadAttributeValue()

Analisa o valor do atributo em um ou mais Text, EntityReference, ou EndEntity nós.

ReadContentAs(Type, IXmlNamespaceResolver)

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

(Herdado de XmlReader)
ReadContentAsAsync(Type, IXmlNamespaceResolver)

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

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

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

ReadContentAsBase64Async(Byte[], Int32, Int32)

Lê assíncronamente o conteúdo e devolve os bytes binários decodificados em Base64.

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

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

ReadContentAsBinHexAsync(Byte[], Int32, Int32)

Lê assíncronamente o conteúdo e devolve 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 dupla precisão.

(Herdado de XmlReader)
ReadContentAsFloat()

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

(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 assinado 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ê assíncronamente 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ê assíncronamente 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 espaço de nomes correspondem ao do elemento atual, depois lê o conteúdo do elemento como o tipo solicitado.

(Herdado de XmlReader)
ReadElementContentAs(Type, IXmlNamespaceResolver)

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

(Herdado de XmlReader)
ReadElementContentAsAsync(Type, IXmlNamespaceResolver)

Lê assíncronamente o conteúdo do elemento como o tipo solicitado.

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

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

ReadElementContentAsBase64Async(Byte[], Int32, Int32)

Lê assíncronamente o elemento 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ê assíncronamente o elemento e decodifica o BinHex conteúdo.

(Herdado de XmlReader)
ReadElementContentAsBoolean()

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

(Herdado de XmlReader)
ReadElementContentAsBoolean(String, String)

Verifica se o nome local especificado e o URI do espaço de nomes correspondem ao do elemento atual, depois lê o elemento atual e devolve o conteúdo como um Boolean objeto.

(Herdado de XmlReader)
ReadElementContentAsDateTime()

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

(Herdado de XmlReader)
ReadElementContentAsDateTime(String, String)

Verifica se o nome local especificado e o URI do espaço de nomes correspondem ao do elemento atual, depois lê o elemento atual e devolve o conteúdo como um DateTime objeto.

(Herdado de XmlReader)
ReadElementContentAsDecimal()

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

(Herdado de XmlReader)
ReadElementContentAsDecimal(String, String)

Verifica se o nome local especificado e o URI do espaço de nomes correspondem ao do elemento atual, depois lê o elemento atual e devolve o conteúdo como um Decimal objeto.

(Herdado de XmlReader)
ReadElementContentAsDouble()

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

(Herdado de XmlReader)
ReadElementContentAsDouble(String, String)

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

(Herdado de XmlReader)
ReadElementContentAsFloat()

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

(Herdado de XmlReader)
ReadElementContentAsFloat(String, String)

Verifica se o nome local especificado e o URI do espaço de nomes correspondem ao do elemento atual, depois lê o elemento atual e devolve o conteúdo como um número de ponto flutuante de precisão simples.

(Herdado de XmlReader)
ReadElementContentAsInt()

Lê o elemento atual e devolve 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 espaço de nomes correspondem ao do elemento atual, depois lê o elemento atual e devolve o conteúdo como um inteiro assinado de 32 bits.

(Herdado de XmlReader)
ReadElementContentAsLong()

Lê o elemento atual e devolve o conteúdo como um inteiro assinado de 64 bits.

(Herdado de XmlReader)
ReadElementContentAsLong(String, String)

Verifica se o nome local especificado e o URI do espaço de nomes correspondem ao do elemento atual, depois lê o elemento atual e devolve o conteúdo como um inteiro assinado de 64 bits.

(Herdado de XmlReader)
ReadElementContentAsObject()

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

(Herdado de XmlReader)
ReadElementContentAsObject(String, String)

Verifica se o nome local especificado e o URI do espaço de nomes correspondem ao do elemento atual, depois lê o elemento atual e devolve o conteúdo como um Object.

(Herdado de XmlReader)
ReadElementContentAsObjectAsync()

Lê assíncronamente o elemento atual e devolve o conteúdo como um Object.

(Herdado de XmlReader)
ReadElementContentAsString()

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

(Herdado de XmlReader)
ReadElementContentAsString(String, String)

Verifica se o nome local especificado e o URI do espaço de nomes correspondem ao do elemento atual, depois lê o elemento atual e devolve o conteúdo como um String objeto.

(Herdado de XmlReader)
ReadElementContentAsStringAsync()

Lê assíncronamente o elemento atual e devolve o conteúdo como um String objeto.

(Herdado de XmlReader)
ReadElementString()

Lê um elemento apenas de texto. No entanto, recomendamos que utilize este ReadElementContentAsString() método, pois oferece uma forma mais direta de lidar com esta operação.

(Herdado de XmlReader)
ReadElementString(String, String)

Verifica se as LocalName propriedades e NamespaceURI do elemento encontrado correspondem às strings dadas antes de ler um elemento apenas de texto. No entanto, recomendamos que utilize este ReadElementContentAsString(String, String) método, pois oferece uma forma mais direta de lidar com esta operação.

(Herdado de XmlReader)
ReadElementString(String)

Verifica se a Name propriedade do elemento encontrado corresponde à cadeia dada antes de ler um elemento apenas de texto. No entanto, recomendamos que utilize este ReadElementContentAsString() método, pois oferece uma forma mais direta de lidar com esta operação.

(Herdado de XmlReader)
ReadEndElement()

Verifica se o nó de conteúdo atual é uma etiqueta final e avança o leitor para o nó seguinte.

(Herdado de XmlReader)
ReadInnerXml()

Quando sobrescrito numa classe derivada, lê todo o conteúdo, incluindo a marcação, como uma cadeia.

(Herdado de XmlReader)
ReadInnerXmlAsync()

Lê assíncronamente todo o conteúdo, incluindo a marcação, como uma cadeia.

(Herdado de XmlReader)
ReadOuterXml()

Quando sobreposto numa classe derivada, lê o conteúdo, incluindo a marcação, representando este nó e todos os seus filhos.

(Herdado de XmlReader)
ReadOuterXmlAsync()

Lê assíncronamente o conteúdo, incluindo a marcação, que representa este 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 dado LocalName e NamespaceURI avança o leitor para o nó seguinte.

(Herdado de XmlReader)
ReadStartElement(String)

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

(Herdado de XmlReader)
ReadString()

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

ReadSubtree()

Devolve 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 XmlReader o próximo elemento descendente com o nome local especificado e o espaço de nomes URI.

(Herdado de XmlReader)
ReadToDescendant(String)

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

(Herdado de XmlReader)
ReadToFollowing(String, String)

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

(Herdado de XmlReader)
ReadToFollowing(String)

Lê-se até ser encontrado um elemento com o nome qualificado especificado.

(Herdado de XmlReader)
ReadToNextSibling(String, String)

Avança para XmlReader o próximo elemento irmão com o nome local especificado e o espaço de nomes URI.

(Herdado de XmlReader)
ReadToNextSibling(String)

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

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

Lê grandes fluxos de texto embutidos num documento XML.

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

Lê assíncronamente grandes fluxos de texto embutidos num documento XML.

(Herdado de XmlReader)
ResolveEntity()

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

Skip()

Ignora os filhos do nó atual.

SkipAsync()

Salta assíncronamente os filhos do nó atual.

(Herdado de XmlReader)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IDisposable.Dispose()

Para uma descrição deste elemento, veja Dispose().

(Herdado de XmlReader)
IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope)

Para uma descrição deste elemento, veja GetNamespacesInScope(XmlNamespaceScope).

IXmlNamespaceResolver.LookupNamespace(String)

Para uma descrição deste elemento, veja LookupNamespace(String).

IXmlNamespaceResolver.LookupPrefix(String)

Para uma descrição deste elemento, veja LookupPrefix(String).

Aplica-se a