Valuta il contenuto e lascia un commento
MSDN
MSDN Library
System.Xml

  Attiva vista per larghezza di banda ridotta
Questa pagina è specifica di
Microsoft Visual Studio 2005/.NET Framework 2.0

Sono disponibili anche altre versioni per quanto indicato di seguito:
Riferimento a .NET Framework
Classe XmlTextReader

Rappresenta un visualizzatore che fornisce accesso veloce, non in cache e di tipo forward-only ai dati XML.

Spazio dei nomi: System.Xml
Assembly: System.Xml (in system.xml.dll)

Visual Basic - (Dichiarazione)
Public Class XmlTextReader
    Inherits XmlReader
    Implements IXmlLineInfo, IXmlNamespaceResolver
Visual Basic (Utilizzo)
Dim instance As XmlTextReader
C#
public class XmlTextReader : XmlReader, IXmlLineInfo, IXmlNamespaceResolver
C++
public ref class XmlTextReader : public XmlReader, IXmlLineInfo, IXmlNamespaceResolver
J#
public class XmlTextReader extends XmlReader implements IXmlLineInfo, IXmlNamespaceResolver
JScript
public class XmlTextReader extends XmlReader implements IXmlLineInfo, IXmlNamespaceResolver
NotaNota

Nella versione Microsoft .NET Framework versione 2.0 è consigliabile creare istanze di XmlReader utilizzando il metodo System.Xml.XmlReader.Create. In questo modo è possibile sfruttare completamente le nuove funzionalità introdotte in questa versione. Per ulteriori informazioni, vedere Creazione di lettori XML.

La classe XmlTextReader fornisce accesso in sola lettura di tipo forward-only a un flusso di dati XML. Il nodo corrente corrisponde al nodo sul quale è posizionato il visualizzatore. Il visualizzatore viene spostato in avanti utilizzando uno dei metodi di lettura disponibili, mentre le proprietà riflettono il valore del nodo corrente.

Questa classe implementa XmlReader ed è conforme alle Raccomandazioni W3C Extensible Markup Language (XML) 1.0 e Namespaces in XML. XmlTextReader fornisce le seguenti funzionalità:

  • Applica le regole di codice XML in formato corretto.

  • XmlTextReader non fornisce la convalida dei dati.

  • Verifica che il formato dei nodi DocumentType sia corretto. XmlTextReader verifica che il formato della DTD sia corretto, ma non effettua la convalida utilizzando la DTD.

  • Per i nodi in cui proprietà NodeType è XmlNodeType.EntityReference, verrà restituito un unico nodo vuoto EntityReference, ovvero il valore della proprietà Value è String.Empty.

NotaNota

Le dichiarazioni effettive delle entità della DTD sono chiamate nodi Entity. Quando si fa riferimento ai nodi nei dati, vengono chiamati nodi EntityReference.

  • Non espande gli attributi predefiniti.

Poiché XmlTextReader non esegue i controlli aggiuntivi richiesti dalla convalida dei dati, rappresenta un analizzatore rapido per verificare la correttezza del formato.

Per eseguire la convalida dei dati, utilizzare un oggetto XmlReader di convalida. Per ulteriori informazioni, vedere Convalida di dati XML con XmlReader.

Per leggere i dati XML da un oggetto XmlDocument, utilizzare la classe XmlNodeReader.

La classe XmlTextReader genera un oggetto XmlException in caso di errori di analisi XML. Lo stato di un visualizzatore in seguito alla generazione di un errore non è prevedibile. Il tipo di nodo indicato può ad esempio essere diverso rispetto al tipo di nodo effettivo del nodo corrente. Utilizzare la proprietà ReadState per controllare se un visualizzatore si trova in stato di errore.

Per ulteriori informazioni sulle classi XmlReader, vedere Lettura di XML con XmlReader.

Considerazioni sulla protezione

Di seguito sono riportati alcuni elementi da tenere in considerazione quando si utilizza la classe XmlTextReader.

  • Le eccezioni generate dalla classe XmlTextReader possono rivelare informazioni sui percorsi che è preferibile non propagare all'applicazione. Le applicazioni devono intercettare le eccezioni ed elaborarle in modo appropriato.

  • L'elaborazione DTD è attivata per impostazione predefinita. Disattivare l'elaborazione DTD se si desidera evitare problemi di "Denial of Service" oppure se si utilizzano fonti non attendibili. Impostare la proprietà ProhibitDtd su true per disattivare l'elaborazione DTD.

    Se è attivata l'elaborazione DTD, è possibile utilizzare il metodo XmlSecureResolver per limitare il numero delle risorse a cui la classe XmlTextReader può accedere. È anche possibile progettare l'applicazione in modo da specificare vincoli di memoria e di tempo per l'elaborazione XML. Configurare, ad esempio, limiti di timeout nell'applicazione ASP.NET.

  • I dati XML possono includere riferimenti a risorse esterne come file DTD. Per impostazione predefinita, le risorse esterne vengono risolte utilizzando un oggetto XmlUrlResolver senza credenziali utente. È possibile migliorare i livelli di protezione mediante una delle seguenti operazioni:

    • Limitando le risorse a cui la classe XmlTextReader può accedere impostando la proprietà XmlResolver su un oggetto XmlSecureResolver.

    • Non consentendo alla classe XmlReader di aprire risorse esterne impostando la proprietà XmlResolver su riferimento null (Nothing in Visual Basic).

  • I dati XML possono contenere un grande numero di attributi, dichiarazioni di spazi dei nomi, elementi nidificati e altri elementi la cui elaborazione richiede una notevole quantità di tempo. Per limitare le dimensioni dell'input inviato alla classe XmlTextReader, creare un'implementazione personalizzata di IStream e fornirla alla classe XmlTextReader.

  • Il metodo ReadValueChunk può essere utilizzato per gestire flussi di dati di grandi dimensioni. Questo metodo legge un numero limitato di caratteri alla volta invece di allocare una singola stringa per l'intero valore.

  • Per impostazione predefinita, le entità generali non vengono espanse. Tali entità vengono espanse quando si chiama il metodo ResolveEntity.

Note sull'ereditarietà: Questa classe ha una richiesta di ereditarietà. Per ereditare da XmlTextReader è necessario un livello di attendibilità totale. Per ulteriori informazioni, vedere Pretese di ereditarietà.

System.Object
   System.Xml.XmlReader
    System.Xml.XmlTextReader
I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1 1.0

.NET Compact Framework

Supportato in: 2.0 1.0
Contenuti della community   Che cos'è Contenuti della community?
Aggiungi nuovo contenuto RSS  Annotazioni
Processing
© 2009 Microsoft Corporation. Tutti i diritti riservati. Condizioni per l'utilizzo  |  Marchi  |  Informativa sulla privacy
Page view tracker