XmlNodeReader Clase

Definición

Representa un lector que proporciona acceso rápido y no almacenado en caché solo a los datos XML de .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
Herencia
XmlNodeReader
Implementaciones

Ejemplos

En el ejemplo siguiente, se carga un archivo XML en un documento XML y se modifica. El documento XML se pasa a un XmlNodeReaderobjeto , que luego se pasa al XmlReader.Create método . Cuando el lector de validación analiza el archivo, puede validar los cambios realizados en el archivo 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

Los dos archivos XML siguientes se usan 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:

Error de validación: no se declara el atributo 'publisher'.

Comentarios

Note

En lugar de usar XmlNodeReader, se recomienda crear XmlReader instancias mediante la XmlReaderSettings clase y el Create método . Esto le permite aprovechar las ventajas de la comprobación de conformidad y el cumplimiento de la recomendación XML 1.0.

XmlNodeReader tiene la capacidad de leer un subárbol XML DOM. Esta clase no admite la definición de tipo de documento (DTD) ni la validación de esquemas. Sin embargo, puede crear un XmlReader objeto que se ajuste alrededor del XmlNodeReader objeto para validar los datos almacenados en el XmlNodeReader objeto, como se muestra en la sección Ejemplos.

Constructores

Nombre Description
XmlNodeReader(XmlNode)

Crea una instancia de la XmlNodeReader clase utilizando el especificado XmlNode.

Propiedades

Nombre Description
AttributeCount

Obtiene el número de atributos del nodo actual.

BaseURI

Obtiene el URI base del nodo actual.

CanReadBinaryContent

Obtiene un valor que indica si XmlNodeReader implementa los métodos de lectura de contenido binario.

CanReadValueChunk

Obtiene un valor que indica si implementa XmlReader el ReadValueChunk(Char[], Int32, Int32) método .

(Heredado de XmlReader)
CanResolveEntity

Obtiene un valor que indica si este lector puede analizar y resolver entidades.

Depth

Obtiene la profundidad del nodo actual en el documento XML.

EOF

Obtiene un valor que indica si el lector está colocado al final de la secuencia.

HasAttributes

Obtiene un valor que indica si el nodo actual tiene atributos.

HasValue

Obtiene un valor que indica si el nodo actual puede tener .Value

IsDefault

Obtiene un valor que indica si el nodo actual es un atributo que se generó a partir del valor predeterminado definido en la definición de tipo de documento (DTD) o esquema.

IsEmptyElement

Obtiene un valor que indica si el nodo actual es un elemento vacío (por ejemplo, <MyElement/>).

Item[Int32]

Obtiene el valor del atributo con el índice especificado.

Item[Int32]

Cuando se reemplaza en una clase derivada, obtiene el valor del atributo con el índice especificado.

(Heredado de XmlReader)
Item[String, String]

Obtiene el valor del atributo con el nombre local y el URI del espacio de nombres especificados.

Item[String, String]

Cuando se reemplaza en una clase derivada, obtiene el valor del atributo con el especificado LocalName y NamespaceURI.

(Heredado de XmlReader)
Item[String]

Cuando se reemplaza en una clase derivada, obtiene el valor del atributo con el nombre especificado.

Item[String]

Cuando se reemplaza en una clase derivada, obtiene el valor del atributo con el especificado Name.

(Heredado de XmlReader)
LocalName

Obtiene el nombre local del nodo actual.

Name

Obtiene el nombre completo del nodo actual.

NamespaceURI

Obtiene el URI del espacio de nombres (tal como se define en la especificación espacio de nombres W3C) del nodo en el que se coloca el lector.

NameTable

Obtiene el XmlNameTable asociado a esta implementación.

NodeType

Obtiene el tipo del nodo actual.

Prefix

Obtiene el prefijo de espacio de nombres asociado al nodo actual.

QuoteChar

Obtiene el carácter de comillas usado para incluir el valor de un nodo de atributo.

QuoteChar

Cuando se reemplaza en una clase derivada, obtiene el carácter de comillas usado para incluir el valor de un nodo de atributo.

(Heredado de XmlReader)
ReadState

Obtiene el estado del lector.

SchemaInfo

Obtiene la información de esquema que se ha asignado al nodo actual.

Settings

Obtiene el XmlReaderSettings objeto usado para crear esta XmlReader instancia.

(Heredado de XmlReader)
Value

Obtiene el valor de texto del nodo actual.

ValueType

Obtiene el tipo Common Language Runtime (CLR) para el nodo actual.

(Heredado de XmlReader)
XmlLang

Obtiene el ámbito actual xml:lang .

XmlSpace

Obtiene el ámbito actual xml:space .

Métodos

Nombre Description
Close()

Cambia a ReadStateClosed.

Dispose()

Libera todos los recursos usados por la instancia actual de la XmlReader clase .

(Heredado de XmlReader)
Dispose(Boolean)

Libera los recursos no administrados utilizados por XmlReader y, opcionalmente, libera los recursos administrados.

(Heredado de XmlReader)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetAttribute(Int32)

Obtiene el valor del atributo con el índice especificado.

GetAttribute(String, String)

Obtiene el valor del atributo con el nombre local y el URI del espacio de nombres especificados.

GetAttribute(String)

Obtiene el valor del atributo con el nombre especificado.

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetValueAsync()

Obtiene de forma asincrónica el valor del nodo actual.

(Heredado de XmlReader)
IsStartElement()

Llama MoveToContent() a y comprueba si el nodo de contenido actual es una etiqueta de inicio o una etiqueta de elemento vacía.

(Heredado de XmlReader)
IsStartElement(String, String)

Llama MoveToContent() a y comprueba si el nodo de contenido actual es una etiqueta de inicio o una etiqueta de elemento vacía y si las LocalName propiedades y NamespaceURI del elemento encontrado coinciden con las cadenas especificadas.

(Heredado de XmlReader)
IsStartElement(String)

Llama MoveToContent() a y comprueba si el nodo de contenido actual es una etiqueta de inicio o una etiqueta de elemento vacía y si la Name propiedad del elemento encontrado coincide con el argumento especificado.

(Heredado de XmlReader)
LookupNamespace(String)

Resuelve un prefijo de espacio de nombres en el ámbito del elemento actual.

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
MoveToAttribute(Int32)

Se mueve al atributo con el índice especificado.

MoveToAttribute(String, String)

Se mueve al atributo con el nombre local y el URI del espacio de nombres especificados.

MoveToAttribute(String)

Se mueve al atributo con el nombre especificado.

MoveToContent()

Comprueba si el nodo actual es un nodo de contenido (texto que no es de espacio en blanco, CDATA, ElementEndElement, , EntityReferenceo EndEntity). Si el nodo no es un nodo de contenido, el lector se omite al siguiente nodo de contenido o al final del archivo. Omite los nodos del tipo siguiente: ProcessingInstruction, DocumentType, Comment, Whitespaceo SignificantWhitespace.

(Heredado de XmlReader)
MoveToContentAsync()

Comprueba de forma asincrónica si el nodo actual es un nodo de contenido. Si el nodo no es un nodo de contenido, el lector se omite al siguiente nodo de contenido o al final del archivo.

(Heredado de XmlReader)
MoveToElement()

Se mueve al elemento que contiene el nodo de atributo actual.

MoveToFirstAttribute()

Se mueve al primer atributo.

MoveToNextAttribute()

Se mueve al atributo siguiente.

Read()

Lee el siguiente nodo de la secuencia.

ReadAsync()

Lee de forma asincrónica el siguiente nodo de la secuencia.

(Heredado de XmlReader)
ReadAttributeValue()

Analiza el valor del atributo en uno o varios Textnodos , EntityReferenceo EndEntity .

ReadContentAs(Type, IXmlNamespaceResolver)

Lee el contenido como un objeto del tipo especificado.

(Heredado de XmlReader)
ReadContentAsAsync(Type, IXmlNamespaceResolver)

Lee de forma asincrónica el contenido como un objeto del tipo especificado.

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

Lee el contenido y devuelve los bytes binarios descodificados de Base64.

ReadContentAsBase64Async(Byte[], Int32, Int32)

Lee de forma asincrónica el contenido y devuelve los bytes binarios descodificados de Base64.

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

Lee el contenido y devuelve los bytes binarios descodificados de BinHex.

ReadContentAsBinHexAsync(Byte[], Int32, Int32)

Lee de forma asincrónica el contenido y devuelve los BinHex bytes binarios descodificados.

(Heredado de XmlReader)
ReadContentAsBoolean()

Lee el contenido de texto en la posición actual como .Boolean

(Heredado de XmlReader)
ReadContentAsDateTime()

Lee el contenido de texto en la posición actual como un DateTime objeto .

(Heredado de XmlReader)
ReadContentAsDateTimeOffset()

Lee el contenido de texto en la posición actual como un DateTimeOffset objeto .

(Heredado de XmlReader)
ReadContentAsDecimal()

Lee el contenido de texto en la posición actual como un Decimal objeto .

(Heredado de XmlReader)
ReadContentAsDouble()

Lee el contenido de texto en la posición actual como un número de punto flotante de precisión doble.

(Heredado de XmlReader)
ReadContentAsFloat()

Lee el contenido de texto en la posición actual como un número de punto flotante de precisión sencilla.

(Heredado de XmlReader)
ReadContentAsInt()

Lee el contenido de texto en la posición actual como un entero de 32 bits con signo.

(Heredado de XmlReader)
ReadContentAsLong()

Lee el contenido de texto en la posición actual como un entero de 64 bits con signo.

(Heredado de XmlReader)
ReadContentAsObject()

Lee el contenido de texto en la posición actual como .Object

(Heredado de XmlReader)
ReadContentAsObjectAsync()

Lee de forma asincrónica el contenido de texto en la posición actual como .Object

(Heredado de XmlReader)
ReadContentAsString()

Lee el contenido de texto en la posición actual como un String objeto .

(Heredado de XmlReader)
ReadContentAsStringAsync()

Lee de forma asincrónica el contenido de texto en la posición actual como un String objeto .

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

Comprueba que el nombre local especificado y el URI del espacio de nombres coincidan con el del elemento actual y, a continuación, lee el contenido del elemento como el tipo solicitado.

(Heredado de XmlReader)
ReadElementContentAs(Type, IXmlNamespaceResolver)

Lee el contenido del elemento como el tipo solicitado.

(Heredado de XmlReader)
ReadElementContentAsAsync(Type, IXmlNamespaceResolver)

Lee de forma asincrónica el contenido del elemento como el tipo solicitado.

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

Lee el elemento y descodifica el contenido de Base64.

ReadElementContentAsBase64Async(Byte[], Int32, Int32)

Lee de forma asincrónica el elemento y descodifica el Base64 contenido.

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

Lee el elemento y descodifica el contenido binHex.

ReadElementContentAsBinHexAsync(Byte[], Int32, Int32)

Lee de forma asincrónica el elemento y descodifica el BinHex contenido.

(Heredado de XmlReader)
ReadElementContentAsBoolean()

Lee el elemento actual y devuelve el contenido como un Boolean objeto .

(Heredado de XmlReader)
ReadElementContentAsBoolean(String, String)

Comprueba que el nombre local especificado y el URI del espacio de nombres coincidan con el del elemento actual y, a continuación, lee el elemento actual y devuelve el contenido como un Boolean objeto .

(Heredado de XmlReader)
ReadElementContentAsDateTime()

Lee el elemento actual y devuelve el contenido como un DateTime objeto .

(Heredado de XmlReader)
ReadElementContentAsDateTime(String, String)

Comprueba que el nombre local especificado y el URI del espacio de nombres coincidan con el del elemento actual y, a continuación, lee el elemento actual y devuelve el contenido como un DateTime objeto .

(Heredado de XmlReader)
ReadElementContentAsDecimal()

Lee el elemento actual y devuelve el contenido como un Decimal objeto .

(Heredado de XmlReader)
ReadElementContentAsDecimal(String, String)

Comprueba que el nombre local especificado y el URI del espacio de nombres coincidan con el del elemento actual y, a continuación, lee el elemento actual y devuelve el contenido como un Decimal objeto .

(Heredado de XmlReader)
ReadElementContentAsDouble()

Lee el elemento actual y devuelve el contenido como un número de punto flotante de precisión doble.

(Heredado de XmlReader)
ReadElementContentAsDouble(String, String)

Comprueba que el nombre local especificado y el URI del espacio de nombres coincidan con el del elemento actual y, a continuación, lee el elemento actual y devuelve el contenido como un número de punto flotante de precisión doble.

(Heredado de XmlReader)
ReadElementContentAsFloat()

Lee el elemento actual y devuelve el contenido como número de punto flotante de precisión sencilla.

(Heredado de XmlReader)
ReadElementContentAsFloat(String, String)

Comprueba que el nombre local especificado y el URI del espacio de nombres coincidan con el del elemento actual y, a continuación, lee el elemento actual y devuelve el contenido como un número de punto flotante de precisión única.

(Heredado de XmlReader)
ReadElementContentAsInt()

Lee el elemento actual y devuelve el contenido como un entero de 32 bits con signo.

(Heredado de XmlReader)
ReadElementContentAsInt(String, String)

Comprueba que el nombre local especificado y el URI del espacio de nombres coincidan con el del elemento actual y, a continuación, lee el elemento actual y devuelve el contenido como un entero con signo de 32 bits.

(Heredado de XmlReader)
ReadElementContentAsLong()

Lee el elemento actual y devuelve el contenido como un entero de 64 bits con signo.

(Heredado de XmlReader)
ReadElementContentAsLong(String, String)

Comprueba que el nombre local especificado y el URI del espacio de nombres coincidan con el del elemento actual y, a continuación, lee el elemento actual y devuelve el contenido como un entero con signo de 64 bits.

(Heredado de XmlReader)
ReadElementContentAsObject()

Lee el elemento actual y devuelve el contenido como .Object

(Heredado de XmlReader)
ReadElementContentAsObject(String, String)

Comprueba que el nombre local especificado y el URI del espacio de nombres coincidan con el del elemento actual y, a continuación, lee el elemento actual y devuelve el contenido como .Object

(Heredado de XmlReader)
ReadElementContentAsObjectAsync()

Lee de forma asincrónica el elemento actual y devuelve el contenido como .Object

(Heredado de XmlReader)
ReadElementContentAsString()

Lee el elemento actual y devuelve el contenido como un String objeto .

(Heredado de XmlReader)
ReadElementContentAsString(String, String)

Comprueba que el nombre local especificado y el URI del espacio de nombres coincidan con el del elemento actual y, a continuación, lee el elemento actual y devuelve el contenido como un String objeto .

(Heredado de XmlReader)
ReadElementContentAsStringAsync()

Lee de forma asincrónica el elemento actual y devuelve el contenido como un String objeto .

(Heredado de XmlReader)
ReadElementString()

Lee un elemento de solo texto. Sin embargo, se recomienda usar el ReadElementContentAsString() método en su lugar, ya que proporciona una manera más sencilla de controlar esta operación.

(Heredado de XmlReader)
ReadElementString(String, String)

Comprueba que las LocalName propiedades y NamespaceURI del elemento encontrado coinciden con las cadenas especificadas antes de leer un elemento de solo texto. Sin embargo, se recomienda usar el ReadElementContentAsString(String, String) método en su lugar, ya que proporciona una manera más sencilla de controlar esta operación.

(Heredado de XmlReader)
ReadElementString(String)

Comprueba que la Name propiedad del elemento encontrado coincide con la cadena especificada antes de leer un elemento de solo texto. Sin embargo, se recomienda usar el ReadElementContentAsString() método en su lugar, ya que proporciona una manera más sencilla de controlar esta operación.

(Heredado de XmlReader)
ReadEndElement()

Comprueba que el nodo de contenido actual es una etiqueta final y avanza el lector al siguiente nodo.

(Heredado de XmlReader)
ReadInnerXml()

Cuando se invalida en una clase derivada, lee todo el contenido, incluido el marcado, como una cadena.

(Heredado de XmlReader)
ReadInnerXmlAsync()

Lee de forma asincrónica todo el contenido, incluido el marcado, como una cadena.

(Heredado de XmlReader)
ReadOuterXml()

Cuando se reemplaza en una clase derivada, lee el contenido, incluido el marcado, que representa este nodo y todos sus elementos secundarios.

(Heredado de XmlReader)
ReadOuterXmlAsync()

Lee de forma asincrónica el contenido, incluido el marcado, que representa este nodo y todos sus elementos secundarios.

(Heredado de XmlReader)
ReadStartElement()

Comprueba que el nodo actual es un elemento y hace avanzar el lector al siguiente nodo.

(Heredado de XmlReader)
ReadStartElement(String, String)

Comprueba que el nodo de contenido actual es un elemento con el especificado LocalName y avanza NamespaceURI el lector al siguiente nodo.

(Heredado de XmlReader)
ReadStartElement(String)

Comprueba que el nodo de contenido actual es un elemento con el especificado Name y avanza el lector al siguiente nodo.

(Heredado de XmlReader)
ReadString()

Lee el contenido de un elemento o nodo de texto como una cadena.

ReadSubtree()

Devuelve una nueva XmlReader instancia que se puede usar para leer el nodo actual y todos sus descendientes.

(Heredado de XmlReader)
ReadToDescendant(String, String)

Avanza al XmlReader siguiente elemento descendiente con el nombre local y el URI del espacio de nombres especificados.

(Heredado de XmlReader)
ReadToDescendant(String)

Avanza al XmlReader siguiente elemento descendiente con el nombre completo especificado.

(Heredado de XmlReader)
ReadToFollowing(String, String)

Lee hasta que se encuentra un elemento con el nombre local y el URI del espacio de nombres especificados.

(Heredado de XmlReader)
ReadToFollowing(String)

Lee hasta que se encuentra un elemento con el nombre completo especificado.

(Heredado de XmlReader)
ReadToNextSibling(String, String)

Avanza al XmlReader siguiente elemento relacionado con el nombre local y el URI del espacio de nombres especificados.

(Heredado de XmlReader)
ReadToNextSibling(String)

Avanza al XmlReader siguiente elemento relacionado con el nombre completo especificado.

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

Lee grandes secuencias de texto incrustadas en un documento XML.

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

Lee asincrónicamente grandes secuencias de texto incrustadas en un documento XML.

(Heredado de XmlReader)
ResolveEntity()

Resuelve la referencia de entidad para EntityReference los nodos.

Skip()

Omite los elementos secundarios del nodo actual.

SkipAsync()

Omite de forma asincrónica los elementos secundarios del nodo actual.

(Heredado de XmlReader)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IDisposable.Dispose()

Para obtener una descripción de este miembro, vea Dispose().

(Heredado de XmlReader)
IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope)

Para obtener una descripción de este miembro, vea GetNamespacesInScope(XmlNamespaceScope).

IXmlNamespaceResolver.LookupNamespace(String)

Para obtener una descripción de este miembro, vea LookupNamespace(String).

IXmlNamespaceResolver.LookupPrefix(String)

Para obtener una descripción de este miembro, vea LookupPrefix(String).

Se aplica a