Acceso a recursos externos para XmlReader
La clase XmlResolver se utiliza para localizar y tener acceso a cualquier recurso que necesite el objeto XmlReader.
Información general
XmlResolver se puede utilizar para lo siguiente:
Localizar y abrir el documento de instancia XML.
Localizar y abrir cualquier recurso externo al que haga referencia el documento de instancia XML. Esto puede incluir entidades, una definición de tipo de documentos, esquemas, etc.
Si el recurso se almacena en un sistema que requiere autenticación, se puede utilizar la propiedad XmlResolver.Credentials para especificar las credenciales necesarias.
Para especificar el XmlResolver que se va a utilizar, establezca la propiedad XmlReaderSettings.XmlResolver y pase el objeto XmlReaderSettings al método Create.
Nota
Si no se especifica un XmlResolver, el sistema de lectura creado utiliza un XmlUrlResolver predeterminado sin ninguna credencial de usuario.
El siguiente código crea una instancia de XmlReader que utiliza un XmlUrlResolver con credenciales predeterminadas.
' 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 );
El espacio de nombres System.Xml incluye dos implementaciones concretas de la clase XmlResolver.
XmlUrlResolver: Se resuelve utilizando los protocolos file:// y http://. Esta es la resolución predeterminada utilizada.
XmlSecureResolver: Ayuda a proteger otra implementación de XmlResolver conteniendo el objeto XmlResolver y restringiendo los recursos a los que tiene acceso el XmlResolver subyacente.
Para obtener información adicional, vea Resolver recursos XML externos nombrados por un identificador URI.
Vea también
Conceptos
Leer fragmentos de XML con XmlReader