Lettura dei dati XML con XmlTextReader

La classe XmlTextReader è un'implementazione di XmlReader e fornisce un parser efficace e veloce. Con questa classe vengono applicate le regole che determinano che l'XML deve essere in formato corretto. Non si tratta di un parser di convalida o di non convalida in quanto non possiede informazioni relative al DTD o allo schema. È in grado di leggere il testo in blocchi o i caratteri da un flusso.

In XmlTextReader è inclusa la funzionalità descritta di seguito.

  • Applica le regole che determinano che l'XML debba essere in formato corretto.
  • Verifica che il DTD sia in formato corretto. Il DTD non viene tuttavia utilizzato per la convalida, l'espansione dei riferimenti a entità o l'aggiunta di attributi predefiniti.
  • La convalida non viene eseguita in base a DTD o schemi.
  • Verifica che i nodi DOCTYPE siano in formato corretto.
  • Verifica che le entità siano in formato corretto. Per i tipi di nodo di EntityReference, viene restituito un singolo nodo EntityReference vuoto. Un nodo EntityReference vuoto indica che la proprietà Value del nodo è string.Empty. Non esistono infatti DTD o schemi con i quali espandere il riferimento all'entità. XmlTextReader assicura che l'intero DTD sia in formato corretto, compresi i nodi EntityReference.
  • Fornisce un parser XML con buone prestazioni, in quanto l'overhead di XmlTextReader non prende parte alla verifica della convalida.

Con XmlTextReader è possibile leggere dati da diversi input, come un oggetto di flusso, un oggetto TextReader e un URL per l'identificazione della posizione di un file locale o di un sito Web.

XmlTextReader utilizza una proprietà XmlResolver per individuare le risorse esterne, quali i DTD, in modo da controllarne il formato. Per ulteriori informazioni sulla proprietà 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. XmlTextReader possiede una proprietà Encoding che restituisce la codifica dei caratteri presente nell'attributo di codifica nella dichiarazione XML. Se non viene rilevato alcun attributo di codifica, l'impostazione predefinita del documento sarà UTF-8.

Se viene letta una risorsa esterna, come un DTD utilizzato per l'espansione di un riferimento a un'entità o a un file di schema, la codifica viene impostata sul valore della codifica presente nel riferimento esterno. Se non viene rilevata alcuna codifica nel riferimento esterno, l'impostazione predefinita sarà UTF-8. XmlTextReader consente di supportare molte codifiche, in quanto utilizza la classe System.Text.Encoding Class!ALink("frlrfSystemTextEncodingClassTopic"). Per questo motivo, tutte le codifiche supportate da tale classe sono supportate anche da 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.

Vedere anche

Lettura del contenuto completo utilizzando i flussi di caratteri | Informazioni sulla dichiarazione del tipo di dati | Gestione dello spazio con XmlTextReader | Normalizzazione del valore degli attributi | Gestione delle eccezioni utilizzando XmlException in XmlTextReader | Classe XmlReader | Membri XmlReader | Classe XmlNodeReader | Membri XmlNodeReader | Classe XmlTextReader | Membri XmlTextReader | Classe XmlValidatingReader | XmlValidatingReader