XmlNodeReader Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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 |
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, |
| 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 |
| XmlSpace |
Recebe o âmbito atual |
Métodos
| Name | Description |
|---|---|
| Close() |
Muda o ReadState para |
| 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, |
| 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 |
| 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 |
| 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 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 |
| 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 |
| 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 |
| 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 |
| ReadToNextSibling(String) |
Avança |
| 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 |
| 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). |