Caricamento di dati da un lettoreLoad Data from a Reader

Se un documento XML viene caricato usando il metodo Load e un parametro di un lettore XmlReader, si otterrà un comportamento diverso rispetto alla situazione in cui i dati vengono caricati dagli altri formati.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. Se il lettore è nel suo stato iniziale, il metodo Load utilizzerà l'intero contenuto del lettore e compilerà il modello DOM XML usando tutti i dati nel lettore.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.

Se il lettore è già posizionato su un nodo in un punto del documento e quindi viene passato al metodo Load, Load tenta di leggere il nodo corrente e tutti i nodi di pari livello fino al tag di fine che chiude il livello corrente nella 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. La riuscita del metodo Load dipende dal nodo sul quale si trova il lettore al momento del caricamento, in quanto con il metodo Load viene verificato che l'XML del lettore sia nel formato corretto.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. In caso contrario, il metodo Load genererà un’eccezione.If the XML is not well-formed, the Load throws an exception. Il set di nodi seguente, ad esempio, contiene due elementi di livello radice e poiché l'XML non ha un formato corretto, Load genera un'eccezione.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, seguito da un nodo Element, seguito da un nodo Element, seguito da un nodo EndElement.Comment node, followed by an Element node, followed by an Element node, followed by an EndElement node.

Dal seguente set di nodi viene creato un DOM incompleto, in quanto non vi è alcun elemento di livello radice.The following set of nodes creates an incomplete DOM, because there is no root-level element.

  • Nodo Comment, seguito da un nodo ProcessingInstruction, seguito da un nodo Comment, seguito da un nodo EndElement.Comment node followed by a ProcessingInstruction node followed by a Comment node followed by an EndElement node.

In questo caso non viene generata un'eccezione e i dati vengono caricati.This does not throw an exception, and the data is loaded. È possibile aggiungere un elemento radice sopra questi nodi e creare un XML in formato corretto che potrà essere salvato senza errori.You can add a root element to the top of these nodes and create well-formed XML that can be saved without error.

Se il lettore è posizionato su un nodo foglia non valido per il livello radice di un documento, quale un nodo spazio vuoto o attributo, il lettore continuerà a leggere finché non si posizionerà su un nodo che può essere usato per il livello radice.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. Il caricamento del documento avverrà a partire da questo punto.The document begins loading at this point.

Per impostazione predefinita, il metodo Load non verifica se l'XML è valido usando la DTD o la convalida dello schema.By default, Load does not verify whether the XML is valid using document type definition (DTD) or schema validation. Verifica solo che l'XML sia in formato corretto.It only verifies whether the XML is well-formed. Affinché avvenga la convalida, è necessario creare un tipo XmlReader usando la classe XmlReaderSettings.In order for validation to occur, you need to create an XmlReader using the XmlReaderSettings class. La classe XmlReader consente di applicare la convalida usando una DTD o uno schema XSD (Schema definition language).The XmlReader class can enforce validation using a DTD or Schema definition language (XSD) schema. La proprietà ValidationType della classe XmlReaderSettings consente di determinare se l'istanza XmlReader applica la convalida.The ValidationType property on the XmlReaderSettings class determines whether the XmlReader instance enforces validation. Per altre informazioni sulla convalida dei dati XML, vedere la sezione Note della pagina di riferimento XmlReader.For more information about validating XML data, see the Remarks section of the XmlReader reference page.

Vedere ancheSee Also

Modello DOM (Document Object Mode) XMLXML Document Object Model (DOM)