XmlNodeReader Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um leitor que fornece acesso rápido não armazenado em cache e somente de encaminhamento aos dados XML em um 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
- Herança
- Implementações
Exemplos
No exemplo a seguir, um arquivo XML é carregado em um documento XML e alterado. O documento XML é passado para XmlNodeReader, que é então passado para o método de XmlReader.Create . Quando o leitor validando analisa o arquivo, pode validar 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 “editor” não está declarado.
Comentários
Observação
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.
O XmlNodeReader
tem a capacidade de ler uma subárvore XML DOM. Essa classe não dá suporte à DTD (definição de tipo de documento) nem à validação de esquema. No entanto, você pode criar um XmlReader objeto que envolve o XmlNodeReader objeto para validar os dados armazenados no XmlNodeReader objeto, conforme mostrado na seção Exemplos.
Construtores
XmlNodeReader(XmlNode) |
Cria uma instância da classe |
Propriedades
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 implementa os métodos de leitura de conteúdo binário. |
CanReadBinaryContent |
Obtém um valor que indica se o XmlReader implementa os métodos de leitura de conteúdo binário. (Herdado de XmlReader) |
CanReadValueChunk |
Obtém um valor que indica se o XmlReader implementa o método ReadValueChunk(Char[], Int32, Int32). (Herdado de XmlReader) |
CanResolveEntity |
Obtém um valor que indica se este 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 com base no valor padrão definido na DTD (definição de tipo de documento) ou no esquema. |
IsEmptyElement |
Obtém um valor que indica se o nó atual é um elemento vazio (por exemplo, |
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 do local e o URI de namespace especificados. |
Item[String, String] |
Quando substituído em uma classe derivada, obtém o valor do atributo com o LocalName e o NamespaceURI especificados. (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 Name especificado. (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 de namespace (conforme definido na especificação de Namespace do W3C) do nó no qual o leitor está posicionado. |
NameTable |
Obtém o XmlNameTable associado à essa implementação. |
NodeType |
Obtém o tipo do nó atual. |
Prefix |
Obtém o prefixo de namespace associado ao nó atual. |
QuoteChar |
Obtém o caractere de aspas usado para circunscrever o valor de um nó de atributo. |
QuoteChar |
Quando substituído em uma classe derivada, obtém o caractere de aspas usado para circunscrever 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 que foram atribuídas ao nó atual. |
SchemaInfo |
Obtém as informações de esquema que foram atribuídas ao nó atual como resultado da validação de esquema. (Herdado de XmlReader) |
Settings |
Obtém o objeto XmlReaderSettings usado para criar essa instância XmlReader. (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 de |
XmlSpace |
Obtém o escopo de |
Métodos
Close() |
Altera o ReadState para |
Dispose() |
Libera todos os recursos usados pela instância atual da classe XmlReader. (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) |
Obtém o valor do atributo com o nome especificado. |
GetAttribute(String, String) |
Obtém o valor do atributo com o nome do local e o URI de namespace especificados. |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
GetValueAsync() |
Obtém o valor do nó atual de forma assíncrona. (Herdado de XmlReader) |
IsStartElement() |
Chama MoveToContent() e testa se o nó de conteúdo atual é uma marca de início ou uma marca de elemento vazia. (Herdado de XmlReader) |
IsStartElement(String) |
Chama MoveToContent() e testa se o nó de conteúdo atual é uma marca de início ou uma marca de elemento vazio e se a propriedade Name que o elemento encontrou corresponde ao argumento fornecido. (Herdado de XmlReader) |
IsStartElement(String, String) |
Chama MoveToContent() e testa se o nó de conteúdo atual é uma marca de início ou uma marca de elemento vazio e, se as propriedades LocalName e NamespaceURI do elemento encontrado correspondem às cadeias de caracteres fornecidas. (Herdado de XmlReader) |
LookupNamespace(String) |
Resolve um prefixo de namespace no escopo do elemento atual. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
MoveToAttribute(Int32) |
Move para o atributo com o índice especificado. |
MoveToAttribute(String) |
Move para o atributo com o nome especificado. |
MoveToAttribute(String, String) |
Move para o atributo com o nome local e o URI de namespace especificados. |
MoveToContent() |
Verifica se o nó atual é um nó de conteúdo (texto sem espaço em branco, |
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 avançará para o próximo nó de conteúdo ou para o final 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ê assincronamente o próximo nó do fluxo. (Herdado de XmlReader) |
ReadAttributeValue() |
Analisa o valor do atributo em um ou mais nós |
ReadContentAs(Type, IXmlNamespaceResolver) |
Lê o conteúdo como um objeto do tipo especificado. (Herdado de XmlReader) |
ReadContentAsAsync(Type, IXmlNamespaceResolver) |
Lê de forma assíncrona o conteúdo como um objeto do tipo especificado. (Herdado de XmlReader) |
ReadContentAsBase64(Byte[], Int32, Int32) |
Lê o conteúdo e retorna os bytes binários decodificados de Base64. |
ReadContentAsBase64(Byte[], Int32, Int32) |
Lê o conteúdo e retorna os bytes binários decodificados de Base64. (Herdado de XmlReader) |
ReadContentAsBase64Async(Byte[], Int32, Int32) |
Lê de forma assíncrona o conteúdo e retorna que os bytes binários decodificados de Base64. (Herdado de XmlReader) |
ReadContentAsBinHex(Byte[], Int32, Int32) |
Lê o conteúdo e retorna os bytes binários decodificados BinHex. |
ReadContentAsBinHex(Byte[], Int32, Int32) |
Lê o conteúdo e retorna os bytes binários decodificados |
ReadContentAsBinHexAsync(Byte[], Int32, Int32) |
Lê de forma assíncrona o conteúdo e retorna os bytes binários decodificados |
ReadContentAsBoolean() |
Lê o conteúdo de texto na posição atual como um |
ReadContentAsDateTime() |
Lê o conteúdo de texto na posição atual como um objeto DateTime. (Herdado de XmlReader) |
ReadContentAsDateTimeOffset() |
Lê o conteúdo de texto na posição atual como um objeto DateTimeOffset. (Herdado de XmlReader) |
ReadContentAsDecimal() |
Lê o conteúdo de texto na posição atual como um objeto Decimal. (Herdado de XmlReader) |
ReadContentAsDouble() |
Lê o conteúdo de texto na posição atual como um número de ponto flutuante de precisão dupla. (Herdado de XmlReader) |
ReadContentAsFloat() |
Lê o conteúdo de texto na posição atual como um número de ponto flutuante de precisão simples. (Herdado de XmlReader) |
ReadContentAsInt() |
Lê o conteúdo de texto na posição atual como um inteiro com sinal de 32 bits. (Herdado de XmlReader) |
ReadContentAsLong() |
Lê o conteúdo de 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 de texto na posição atual como um objeto String. (Herdado de XmlReader) |
ReadContentAsStringAsync() |
Lê de forma assíncrona o conteúdo do texto na posição atual como um objeto String. (Herdado de XmlReader) |
ReadElementContentAs(Type, IXmlNamespaceResolver) |
Lê o conteúdo do elemento como o tipo solicitado. (Herdado de XmlReader) |
ReadElementContentAs(Type, IXmlNamespaceResolver, String, String) |
Verifica se o nome local e o URI de namespace especificados são iguais aos do elemento atual e, em seguida, lê o conteúdo do elemento atual 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 de Base64. |
ReadElementContentAsBase64(Byte[], Int32, Int32) |
Lê o elemento e decodifica o conteúdo de |
ReadElementContentAsBase64Async(Byte[], Int32, Int32) |
Lê de forma assíncrona o elemento e decodifica o conteúdo |
ReadElementContentAsBinHex(Byte[], Int32, Int32) |
Lê o elemento e decodifica o conteúdo BinHex. |
ReadElementContentAsBinHex(Byte[], Int32, Int32) |
Lê o elemento e decodifica o conteúdo de |
ReadElementContentAsBinHexAsync(Byte[], Int32, Int32) |
Lê de forma assíncrona o elemento e decodifica o conteúdo |
ReadElementContentAsBoolean() |
Lê o elemento atual e retorna o conteúdo como um objeto Boolean. (Herdado de XmlReader) |
ReadElementContentAsBoolean(String, String) |
Verifica se o nome do local especificado e o URI de namespace correspondem àqueles do elemento atual, em seguida, lê o elemento atual e retorna o conteúdo como um objeto Boolean. (Herdado de XmlReader) |
ReadElementContentAsDateTime() |
Lê o elemento atual e retorna o conteúdo como um objeto DateTime. (Herdado de XmlReader) |
ReadElementContentAsDateTime(String, String) |
Verifica se o nome do local especificado e o URI de namespace correspondem àqueles do elemento atual, em seguida, lê o elemento atual e retorna o conteúdo como um objeto DateTime. (Herdado de XmlReader) |
ReadElementContentAsDecimal() |
Lê o elemento atual e retorna o conteúdo como um objeto Decimal. (Herdado de XmlReader) |
ReadElementContentAsDecimal(String, String) |
Verifica se o nome do local especificado e o URI de namespace correspondem àqueles do elemento atual, em seguida, lê o elemento atual e retorna o conteúdo como um objeto Decimal. (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 e o URI de namespace especificados são iguais aos 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 um número de ponto flutuante de precisão simples. (Herdado de XmlReader) |
ReadElementContentAsFloat(String, String) |
Verifica se o nome local e o URI de namespace especificados são iguais aos do elemento atual, lê o elemento atual e retorna o conteúdo como um número de ponto flutuante de precisão simples. (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 e o URI de namespace especificados são iguais aos 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 e o URI de namespace especificados são iguais aos 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 os conteúdos como um Object. (Herdado de XmlReader) |
ReadElementContentAsObject(String, String) |
Verifica se o nome local e o URI de namespace especificados são iguais aos do elemento atual, lê o elemento atual e retorna o conteúdo como um Object. (Herdado de XmlReader) |
ReadElementContentAsObjectAsync() |
Lê de forma assíncrona o elemento atual e retorna o conteúdo como um Object. (Herdado de XmlReader) |
ReadElementContentAsString() |
Lê o elemento atual e retorna o conteúdo como um objeto String. (Herdado de XmlReader) |
ReadElementContentAsString(String, String) |
Verifica se o nome do local especificado e o URI de namespace correspondem àqueles do elemento atual, em seguida, lê o elemento atual e retorna o conteúdo como um objeto String. (Herdado de XmlReader) |
ReadElementContentAsStringAsync() |
Lê de forma assíncrona o elemento atual e retorna o conteúdo como um objeto String. (Herdado de XmlReader) |
ReadElementString() |
Lê um elemento somente texto. No entanto, é recomendável que você use o método ReadElementContentAsString() em vez disso, porque ele fornece uma maneira mais simples de lidar com essa operação. (Herdado de XmlReader) |
ReadElementString(String) |
Verifica se a propriedade Name do elemento encontrado corresponde à cadeia de caracteres fornecida antes de ler um elemento somente texto. No entanto, é recomendável que você use o método ReadElementContentAsString() em vez disso, porque ele fornece uma maneira mais simples de lidar com essa operação. (Herdado de XmlReader) |
ReadElementString(String, String) |
Verifica se as propriedades LocalName e NamespaceURI do elemento encontrado correspondem às cadeias de caracteres fornecidas antes de ler um elemento somente de texto. No entanto, é recomendável que você use o método ReadElementContentAsString(String, String) em vez disso, porque 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 fim 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 a marcação, como uma cadeia de caracteres. (Herdado de XmlReader) |
ReadInnerXmlAsync() |
Lê de forma assíncrona todo o conteúdo, inclusive a marcação, como uma cadeia de caracteres. (Herdado de XmlReader) |
ReadOuterXml() |
Quando substituído em uma classe derivada, lê o conteúdo, inclusive a marcação, que representa esse nó e todos os seus filhos. (Herdado de XmlReader) |
ReadOuterXmlAsync() |
Lê de forma assíncrona o conteúdo, inclusive a marcação, representando 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) |
Verifica se o nó de conteúdo atual é um elemento com o Name fornecido 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 LocalName e NamespaceURI fornecidos 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 instância |
ReadToDescendant(String) |
Avança o XmlReader para o próximo elemento descendente com o nome qualificado especificado. (Herdado de XmlReader) |
ReadToDescendant(String, String) |
Avança o XmlReader para o próximo elemento descendente com o nome local e URI do namespace especificados. (Herdado de XmlReader) |
ReadToFollowing(String) |
Lê até que seja encontrado um elemento com o nome qualificado especificado. (Herdado de XmlReader) |
ReadToFollowing(String, String) |
Lê até que seja encontrado um elemento com o nome do local e o URI do namespace especificados. (Herdado de XmlReader) |
ReadToNextSibling(String) |
Avança o |
ReadToNextSibling(String, String) |
Avança o |
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 inserido em um documento XML. (Herdado de XmlReader) |
ResolveEntity() |
Resolve a referência de entidade para nós |
Skip() |
Ignora os filhos do nó atual. |
SkipAsync() |
Ignora de forma assíncrona 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
IDisposable.Dispose() |
Para obter uma descrição desse membro, confira Dispose(). (Herdado de XmlReader) |
IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope) |
Para obter uma descrição desse membro, confira GetNamespacesInScope(XmlNamespaceScope). |
IXmlNamespaceResolver.LookupNamespace(String) |
Para obter uma descrição desse membro, confira LookupNamespace(String). |
IXmlNamespaceResolver.LookupPrefix(String) |
Para obter uma descrição desse membro, confira LookupPrefix(String). |