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