Lettura dei dati XML con XmlTextReader
La classe XmlTextReader è un'implementazione del tipo XmlReader e fornisce un parser sul testo XML. Con questa classe vengono applicate le regole in base alle quali l'XML deve essere in formato corretto. Non si tratta di un parser di convalida o di non convalida, in quanto non dispone di una DTD (Document Type Definition) o di informazioni sullo schema. È in grado di leggere il testo in blocchi o i caratteri da un flusso.
Nota |
---|
In .NET Framework versione 2.0 è consigliabile creare istanze del tipo XmlReader tramite la classe XmlReaderSettings e il metodo Create.In questo modo è possibile sfruttare completamente tutte le nuove funzionalità introdotte in .NET Framework 2.0.Per ulteriori informazioni, vedere Creazione di lettori XML. |
Cenni preliminari
Il tipo XmlTextReader fornisce le seguenti funzionalità:
Applica le regole in base alle quali l'XML deve essere in formato corretto.
Verifica che la DTD sia in formato corretto. Tuttavia, la DTD non viene utilizzata per la convalida o l'aggiunta di attributi predefiniti. La DTD è utilizzata per l'espansione delle entità se la proprietà EntityHandling è impostata su ExpandEntities o se il metodo ResolveEntity viene chiamato su un nodo EntityReference.
Restituisce i riferimenti alle entità non espansi come nodi EntityReference quando la proprietà EntityHandling è impostata su ExpandCharEntities secondo l'impostazione predefinita. Se il riferimento all'entità non è definito in una DTD, non verrà generato un errore a meno che non venga chiamato il metodo ResolveEntity sul nodo.
Fornisce un'opzione per disattivare la normalizzazione XML di nuove righe e valori degli attributi. Per impostazione predefinita, la normalizzazione è disattivata.
La convalida non viene eseguita in base a DTD o schemi.
Fornisce un parser XML rapido, in quanto il tipo XmlTextReader non comporta l'overhead della convalida.
Con il tipo XmlTextReader è possibile leggere dati da diversi input, come un oggetto di flusso, un oggetto TextReader e un URL per l'identificazione del percorso di un file locale o di un sito Web.
Il tipo XmlTextReader utilizza una proprietà XmlResolver per individuare le risorse esterne, ad esempio le DTD, in modo da verificarne il formato corretto. Per ulteriori informazioni su XmlResolver, vedere Risoluzione delle risorse mediante XmlResolver.
La dichiarazione di codifica, <?xml version="1.0" encoding="ISO-8859-5"?>, contiene un attributo di codifica che imposta la codifica del documento. Il tipo XmlTextReader presenta una proprietà Encoding che restituisce la codifica dei caratteri rilevata nell'attributo di codifica nella dichiarazione XML. Se non viene rilevato alcun attributo di codifica, l'impostazione predefinita per il documento sarà UTF-8 o UTF-16, in base ai primi due byte del flusso.
Se viene letta una risorsa esterna, come una DTD utilizzata per l'espansione di un riferimento a un'entità o a un file di schema, la codifica viene impostata sul valore della codifica rilevato nel riferimento esterno. Se non viene rilevata alcuna codifica nel riferimento esterno, l'impostazione predefinita sarà UTF-8 o UTF-16. L'oggetto XmlTextReader supporta diversi tipi di codifica, in quanto utilizza la classe Encoding. Pertanto, tutte le codifiche supportate da tale classe sono supportate anche dal tipo XmlTextReader. Le uniche codifiche non supportate sono quelle in cui il mapping della sequenza <?xml corrisponde a valori di byte diversi da UTF-8, come UTF-7 e EBCDIC.