XmlDocument.XmlResolver Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Establece el objeto XmlResolver para usarlo en la resolución de recursos externos.
public:
virtual property System::Xml::XmlResolver ^ XmlResolver { void set(System::Xml::XmlResolver ^ value); };
public virtual System.Xml.XmlResolver XmlResolver { set; }
public virtual System.Xml.XmlResolver? XmlResolver { set; }
member this.XmlResolver : System.Xml.XmlResolver
Public Overridable Property XmlResolver As XmlResolver
Valor de propiedad
Objeto XmlResolver
que se va a usar.
En la versión 1.1 de .NET Framework, el llamador debe ser de confianza para especificar un XmlResolver
.
Excepciones
Esta propiedad se establece en null
y se encuentra una DTD o entidad externa.
Ejemplos
En el ejemplo siguiente se carga un documento XML que incluye una referencia a un archivo DTD. La XmlResolver
propiedad se usa para establecer las credenciales necesarias para acceder al recurso de red.
#using <System.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Net;
int main()
{
// Supply the credentials necessary to access the DTD file stored on the network.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = CredentialCache::DefaultCredentials;
// Create and load the XmlDocument.
XmlDocument^ doc = gcnew XmlDocument;
doc->XmlResolver = resolver; // Set the resolver.
doc->Load( "book5.xml" );
// Display the entity replacement text which is pulled from the DTD file.
Console::WriteLine( doc->DocumentElement->LastChild->InnerText );
}
using System;
using System.IO;
using System.Xml;
using System.Net;
public class Sample {
public static void Main() {
// Supply the credentials necessary to access the DTD file stored on the network.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;
// Create and load the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.XmlResolver = resolver; // Set the resolver.
doc.Load("book5.xml");
// Display the entity replacement text which is pulled from the DTD file.
Console.WriteLine(doc.DocumentElement.LastChild.InnerText);
}
} // End class
Imports System.IO
Imports System.Xml
Imports System.Net
public class Sample
public shared sub Main()
' Supply the credentials necessary access the DTD file stored on the network.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials
' Create and load the XmlDocument.
Dim doc as XmlDocument = new XmlDocument()
doc.XmlResolver = resolver ' Set the resolver.
doc.Load("book5.xml")
' Display the entity replacement text which is pulled from the DTD file.
Console.WriteLine(doc.DocumentElement.LastChild.InnerText)
end sub
end class
En el ejemplo se usan los siguientes archivos de datos como entrada.
book5.xml
<!DOCTYPE book SYSTEM 'http://myServer/data/books.dtd'>
<book ISBN = '1-861001-57-5'>
<title>Oberon's Legacy</title>
<price>19.95</price>
<misc>&h;</misc>
</book>
books.dtd
<!ELEMENT book (title,price,misc)>
<!ATTLIST book
genre CDATA "novel"
ISBN CDATA #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT misc (#PCDATA)>
<!ENTITY h "hardcover">
<!ENTITY p "paperback">
Comentarios
XmlResolver
se puede usar para cargar DTD o expandir referencias de entidad. Con la XmlResolver.Credentials propiedad , puede establecer credenciales en para XmlResolver
acceder a los recursos almacenados en un recurso de red seguro.
Si el documento no se cargó mediante (XmlReaderes decir, si se cargó mediante una secuencia, un archivo, etc.), siempre se usa en .
XmlDocument
XmlResolver
Si el documento se cargó con , XmlTextReaderla resolución de
XmlTextReader
se usa para resolver las referencias de DTD en el nodo DocumentType. El solucionador deXmlDocument
se usa para expandir cualquier referencia de entidad.Si el documento se cargó con , XmlValidatingReadernunca se usará el solucionador en .
XmlDocument
Si el documento se cargó con una clase que extiende
XmlReader
y noXmlReader
puede resolver entidades (CanResolveEntity devuelvefalse
), se usa enXmlResolver
paraXmlDocument
resolver las referencias en el nodo DocumentType y para expandir las referencias de entidad.
Nota:
XmlDocument
Si se carga mediante un objeto XmlReader que tenía un XmlResolver
conjunto en él, el XmlResolver
elemento de XmlReader
no se almacena en caché después Load de completarseXmlDocument
.
En la versión 1.1 de the.NET Framework, si no se establece esta propiedad, el nivel de confianza de la aplicación determina el comportamiento predeterminado.
Fully trusted code:
El documento usa un valor predeterminado XmlUrlResolver sin credenciales de usuario. Si se requiere autenticación para acceder a un recurso de red, use la XmlResolver
propiedad para especificar una XmlResolver
con las credenciales necesarias.
Semi-trusted code:
La XmlResolver
propiedad se establece en null
. Los recursos externos no se resuelven.
Para obtener más información sobre la seguridad y la XmlResolver
propiedad , vea Resolver recursos externos.
Esta propiedad es una extensión de Microsoft para Document Object Model (DOM).