Condividi tramite


Caricare dati da un lettore

Se un documento XML viene caricato usando il metodo Load e un parametro di un oggetto XmlReader, ci sono differenze rispetto al comportamento che si verifica nel caricamento dei dati dagli altri formati. Se il lettore è nello stato iniziale, Load utilizza l'intero contenuto del lettore e compila il DOM (Document Object Model) XML da tutti i dati nel lettore.

Se il lettore è già posizionato su un nodo in un punto del documento e viene quindi passato al metodo Load, Load tenta di leggere il nodo corrente e tutti i relativi elementi di pari livello, fino al tag finale che chiude l'attuale livello di profondità in memoria. L'esito positivo del tentativo Load dipende dal nodo su cui si trova il lettore quando viene eseguito il caricamento, in quanto Load verifica che il codice XML dal lettore sia ben formato. Se il formato XML non è corretto, viene generata un'eccezione Load . Ad esempio, il set di nodi seguente contiene due elementi a livello radice, il codice XML non è ben formato e Load genera un'eccezione.

  • Nodo commento, seguito da un nodo Elemento, seguito da un nodo Elemento, seguito da un nodo EndElement.

Il set di nodi seguente crea un DOM incompleto, perché non esiste alcun elemento a livello radice.

  • Nodo Commento seguito da un nodo ProcessingInstruction seguito da un nodo Commento seguito da un nodo EndElement.

Questo non genera un'eccezione e i dati vengono caricati. È possibile aggiungere un elemento radice all'inizio di questi nodi e creare codice XML ben formato che può essere salvato senza errori.

Se il lettore è posizionato su un nodo foglia non valido per il livello radice di un documento (ad esempio, uno spazio vuoto o un nodo attributo), il lettore continua a leggere finché non viene posizionato su un nodo che può essere usato per la radice. Il documento inizia il caricamento a questo punto.

Per impostazione predefinita, Load non verifica se il codice XML è valido tramite la convalida DTD (Document Type Definition) o schema. Verifica solo se il formato XML è corretto. Per poter eseguire la convalida, è necessario creare un XmlReader oggetto usando la XmlReaderSettings classe . La XmlReader classe può applicare la convalida usando uno schema DTD o XSD (Schema Definition Language). La ValidationType proprietà nella XmlReaderSettings classe determina se l'istanza XmlReader applica la convalida. Per altre informazioni sulla convalida dei dati XML, vedere la sezione Osservazioni della XmlReader pagina di riferimento.

Vedere anche