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 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
- 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 |
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, |
| 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 |
| XmlSpace |
Obtém o escopo atual |
Métodos
| Nome | Description |
|---|---|
| Close() |
Altera o ReadState para |
| 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, |
| 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 |
| 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 |
| ReadContentAsBoolean() |
Lê o conteúdo do texto na posição atual como um |
| 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 |
| 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 |
| 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 |
| 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 |
| ReadToNextSibling(String) |
Avança para 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 inseridos em um documento XML. (Herdado de XmlReader) |
| ResolveEntity() |
Resolve a referência de entidade para |
| 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). |