Carga de datos desde un sistema de lecturaLoad Data from a Reader

Si se carga un documento XML utilizando el método Load y un parámetro de XmlReader, existen diferencias en el comportamiento que se produce cuando se compara con el comportamiento derivado de la carga de datos desde otros formatos.If an XML document is loaded using the Load method and a parameter of an XmlReader, there are differences in the behavior that occurs when compared to the behavior of loading data from the other formats. Si el sistema de lectura está en su estado inicial, Load consume todo el contenido del sistema de lectura y compila el Modelo de objetos de documento (DOM) XML a partir de todos los datos del sistema de lectura.If the reader is in its initial state, Load consumes the entire contents from the reader and builds the XML Document Object Model (DOM) from all the data in the reader.

Si el sistema de lectura ya se encuentra situado en un nodo en algún lugar del documento y, a continuación, se pasa al método Load, Load intenta leer el nodo actual y todos sus nodos relacionados hasta la etiqueta final que cierra el nivel de profundidad actual en la memoria.If the reader is already positioned on a node somewhere in the document, and the reader is then passed to the Load method, Load attempts to read the current node and all of its siblings, up to the end tag that closes the current depth into memory. El resultado correcto del intento de Load depende del nodo en el que se encuentre el sistema de lectura cuando se intente realizar la carga, ya que Load comprueba que el XML del sistema de lectura es correcto.The success of the attempted Load depends on the node that the reader is on when the load is attempted, as Load verifies that the XML from the reader is well-formed. Si el XML no es correcto, Load inicia una excepción.If the XML is not well-formed, the Load throws an exception. Por ejemplo, el siguiente conjunto de nodos contiene dos elementos a nivel raíz, el XML no es correcto y Load inicia una excepción.For example, the following set of nodes contain two root-level elements, the XML is not well-formed, and Load throws an exception.

  • Nodo Comment, seguido de un nodo Element, seguido de otro nodo Element, seguido de un nodo EndElement.Comment node, followed by an Element node, followed by an Element node, followed by an EndElement node.

El siguiente conjunto de nodos crea un DOM incompleto porque no hay ningún elemento a nivel raíz.The following set of nodes creates an incomplete DOM, because there is no root-level element.

  • Nodo Comment seguido de un nodo ProcessingInstruction, seguido de un nodo Comment, seguido de un nodo EndElement.Comment node followed by a ProcessingInstruction node followed by a Comment node followed by an EndElement node.

Esto no inicia una excepción y los datos se cargan.This does not throw an exception, and the data is loaded. Puede agregar un elemento raíz por encima de estos nodos y crear XML correcto que se pueda guardar sin errores.You can add a root element to the top of these nodes and create well-formed XML that can be saved without error.

Si el sistema de lectura se encuentra situado en un nodo hoja que no es válido para el nivel raíz de un documento (por ejemplo, un nodo de atributos o espacios en blanco), el sistema de lectura continúa leyendo hasta estar situado en un nodo que se pueda utilizar para el nivel raíz.If the reader is positioned on a leaf node that is invalid for the root level of a document (for example, a white space or attribute node), the reader continues to read until it is positioned on a node that can be used for the root. El documento comienza a cargarse en este punto.The document begins loading at this point.

De manera predeterminada, Load no comprueba si el XML es válido utilizando la definición de tipo de documento (DTD) o la validación de esquemas.By default, Load does not verify whether the XML is valid using document type definition (DTD) or schema validation. Sólo comprueba si el XML es correcto.It only verifies whether the XML is well-formed. Para que se produzca la validación, tiene que crear un XmlReader utilizando la clase XmlReaderSettings.In order for validation to occur, you need to create an XmlReader using the XmlReaderSettings class. La clase XmlReader puede exigir la validación con una DTD o un esquema del lenguaje de definición de esquemas (XSD).The XmlReader class can enforce validation using a DTD or Schema definition language (XSD) schema. La propiedad ValidationType de la clase XmlReaderSettings determina si la instancia de XmlReader exige la validación.The ValidationType property on the XmlReaderSettings class determines whether the XmlReader instance enforces validation. Para obtener más información acerca de la validación de datos XML, vea la sección Comentarios de la página de referencia de XmlReader.For more information about validating XML data, see the Remarks section of the XmlReader reference page.

Vea tambiénSee also