Classe XmlReaderSettings (System.Xml)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Classe XmlReaderSettings

Nota: questa classe è stata introdotta con .NET Framework versione 2.0.

Specifica un insieme di funzioni da supportare nell'oggetto XmlReader creato dal metodo Create.

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

Sintassi

Visual Basic - (Dichiarazione)
Public NotInheritable Class XmlReaderSettings
Visual Basic (Utilizzo)
Dim instance As XmlReaderSettings

C#
public sealed class XmlReaderSettings
C++
public ref class XmlReaderSettings sealed
J#
public final class XmlReaderSettings
JScript
public final class XmlReaderSettings
Note

Nella versione Microsoft .NET Framework versione 2.0, il metodo Create è il meccanismo più efficiente per ottenere istanze di XmlReader. Il metodo Create utilizza la classe XmlReaderSettings per specificare le funzioni da implementare nell'oggetto XmlReader creato.

Per ulteriori informazioni, vedere Creazione di lettori XML.

Considerazioni sulla protezione

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

  • I flag di convalida ProcessInlineSchema e ProcessSchemaLocation di un oggetto XmlReaderSettings non vengono impostati per impostazione predefinita. Quando questi flag sono impostati, la proprietà XmlResolver dell'oggetto XmlReaderSettings viene utilizzata per risolvere le posizioni degli schemi incontrate nel documento di istanza dell'oggetto XmlReader. Se l'oggetto XmlResolver è riferimento null (Nothing in Visual Basic), le posizioni degli schemi non vengono risolte anche se sono impostati i flag di convalida ProcessInlineSchema e ProcessSchemaLocation.

  • Gli schemi aggiunti durante la convalida aggiungono nuovi tipi e possono alterare l'esito della convalida del documento in esame. Per questo motivo, è consigliabile che gli schemi esterni siano risolti solo da origini attendibili.

  • I messaggi di errore relativi alla convalida possono esporre informazioni riservate sul modello di contenuto. I messaggi di errore e di avviso relativi alla convalida vengono gestiti tramite il delegato ValidationEventHandler oppure vengono esposti come XmlSchemaValidationException se non viene specificato alcun gestore eventi per l'oggetto XmlReaderSettings (gli avvisi sulla convalida non determinano la generazione di un' eccezione XmlSchemaValidationException). Le informazioni sul modello di contenuto non devono essere esposte in scenari non attendibili. I messaggi di avviso relativi alla convalida vengono eliminati per impostazione predefinita e possono essere segnalati impostando il flag ReportValidationWarnings.

  • La proprietà SourceUri di un'eccezione XmlSchemaValidationException restituisce il percorso dell'URI al file di schema che ha causato l'eccezione. La proprietà SourceUri non deve essere esposta in scenari non attendibili.

  • La disattivazione del flag ProcessIdentityConstraints (attivato per impostazione predefinita) è consigliata per la convalida di documenti XML non attendibili di grandi dimensioni, in scenari a elevata disponibilità, basata su uno schema con vincoli di identità in un'ampia porzione del documento.

  • Gli oggetti XmlReaderSettings possono contenere informazioni riservate, ad esempio le credenziali dell'utente. Prestare attenzione quando si inseriscono nella cache oggetti XmlReaderSettings o quando si passa l'oggetto XmlReaderSettings da un componente a un altro.

  • L'elaborazione DTD è disattivata per impostazione predefinita. Se si consente l'elaborazione DTD, tenere presente che esiste la possibilità di includere DTD provenienti da origini non attendibili rischiando di subire attacchi di tipo Denial of Service. Utilizzare l'oggetto XmlSecureResolver per limitare le risorse a cui l'oggetto XmlReader può accedere.

  • Non accettare componenti di supporto, ad esempio oggetti NameTable, XmlNamespaceManager, e XmlResolver, provenienti da un'origine non attendibile.

Esempio

Nell'esempio riportato di seguito viene creato un oggetto XmlReader che utilizza un oggetto XmlUrlResolver con le credenziali richieste.

Visual Basic
' Create an XmlUrlResolver with the credentials necessary to access the Web server.
Dim resolver As New XmlUrlResolver()
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred

Dim settings As New XmlReaderSettings()
settings.XmlResolver = resolver

' Create the reader.
Dim reader As XmlReader = XmlReader.Create("http://serverName/data/books.xml", settings)

C#
// Create an XmlUrlResolver with the credentials necessary to access the Web server.
XmlUrlResolver resolver = new XmlUrlResolver();
System.Net.NetworkCredential myCred;
myCred  = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);  
resolver.Credentials = myCred;

XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = resolver;

// Create the reader.
XmlReader reader = XmlReader.Create("http://serverName/data/books.xml", settings);

Gerarchia di ereditarietà

System.Object
  System.Xml.XmlReaderSettings
Codice thread safe

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.
Piattaforme

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.

Informazioni sulla versione

.NET Framework

Supportato in: 2.0

.NET Compact Framework

Supportato in: 2.0
Vedere anche