Compartir a través de


Cargar datos desde un lector

Si se carga un documento XML mediante el método Load y con un parámetro de XmlReader, hay diferencias en el comportamiento que se produce en comparación con el comportamiento al cargar datos desde otros formatos. Si el lector está en su estado inicial, Load consume todo el contenido del lector y compila el Modelo de objetos de documento XML (DOM) a partir de todos los datos del lector.

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. El éxito del intento Load depende del nodo en el que se encuentre el lector en el momento de intentar la carga, ya que Load verifica que el XML del lector esté bien formado. Si el XML no tiene el formato correcto, Load produce una excepción. Por ejemplo, el siguiente conjunto de nodos contiene dos elementos de nivel raíz, el XML no tiene un formato correcto y Load produce una excepción.

  • Nodo Comment, seguido de un nodo Element, seguido de otro nodo Element, seguido de un nodo EndElement.

El siguiente conjunto de nodos crea un DOM incompleto, ya que no hay ningún elemento de nivel raíz.

  • Nodo Comment seguido de un nodo ProcessingInstruction, seguido de un nodo Comment, seguido de un nodo EndElement.

Esto no produce una excepción y se cargan los datos. Puede agregar un elemento raíz a la parte superior de estos nodos y crear XML con formato correcto que se puede guardar sin errores.

Si el lector se coloca en un nodo de hoja que no es válido para el nivel raíz de un documento (por ejemplo, un espacio en blanco o un nodo de atributo), el lector continúa leyendo hasta que quede en un nodo que pueda usarse como raíz. El documento comienza a cargarse en este momento.

De forma predeterminada, Load no comprueba si el XML es válido mediante la definición de tipo de documento (DTD) o la validación del esquema. Solo comprueba si el XML tiene un formato correcto. Para que se produzca la validación, debe crear un XmlReader mediante la XmlReaderSettings clase . La XmlReader clase puede aplicar la validación mediante un esquema DTD o un esquema de lenguaje de definición de esquemas (XSD). La ValidationType propiedad de la XmlReaderSettings clase determina si la instancia aplica la XmlReader validación. Para obtener más información sobre la validación de datos XML, vea la sección Comentarios de la XmlReader página de referencia.

Consulte también