Accesso a risorse esterne per XmlReader

La classe XmlResolver consente di individuare e accedere alle risorse richieste dall'oggetto XmlReader.

Cenni preliminari

Il tipo XmlResolver può essere utilizzato per eseguire le seguenti operazioni:

  • Individuare e aprire il documento dell'istanza XML.

  • Individuare e aprire eventuali risorse esterne a cui viene fatto riferimento nel documento dell'istanza XML. Sono incluse entità, una definizione del tipo di documento (DTD), schemi e così via.

  • Se la risorsa è archiviata in un sistema che richiede l'autenticazione, è possibile utilizzare la proprietà XmlResolver.Credentials per specificare le credenziali necessarie.

È possibile specificare il tipo XmlResolver da utilizzare impostando la proprietà XmlReaderSettings.XmlResolver e passando l'oggetto XmlReaderSettings al metodo Create.

NotaNota

Se non viene specificato alcun tipo XmlResolver, il lettore creato utilizzerà un tipo predefinito XmlUrlResolver senza credenziali.

Il codice seguente crea un'istanza del tipo XmlReader che utilizza un tipo XmlUrlResolver con credenziali predefinite.

' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials

' Set the reader settings object to use the resolver.
settings.XmlResolver = resolver

' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("https://ServerName/data/books.xml", settings)
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;

// Set the reader settings object to use the resolver.
settings.XmlResolver = resolver;

// Create the XmlReader object.
XmlReader reader = XmlReader.Create("https://ServerName/data/books.xml", settings);
// Create a resolver with default credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;

 // Set the reader settings object to use the resolver.
 settings->XmlResolver = resolver;

// Create the XmlReader object.
XmlReader^ reader = XmlReader::Create( L"https://ServerName/data/books.xml", settings );

Nello spazio dei nomi System.Xml sono incluse due implementazioni concrete della classe XmlResolver.

  • XmlUrlResolver: effettua la risoluzione utilizzando i protocolli file:// e http://. Questa è l'impostazione predefinita.

  • XmlSecureResolver: consente di proteggere un'altra implementazione di XmlResolver includendo l'oggetto XmlResolver e imponendo limitazioni sulle risorse accessibili al tipo XmlResolver sottostante.

Per ulteriori informazioni, vedere Risoluzione di risorse XML esterne specificate da un URI.

Vedere anche

Concetti

Lettura di XML con XmlReader

Altre risorse

Utilizzo della classe XmlReader

Sicurezza e applicazioni System.Xml