XmlDocument.XmlResolver Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define o XmlResolver que será usado para resolver 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 da propriedade
O XmlResolver
a ser usado.
Na versão 1.1 do .NET Framework, o chamador deve ser totalmente confiável para especificar um XmlResolver
.
Exceções
Essa propriedade é definida como null
e uma DTD ou entidade externa é encontrada.
Exemplos
O exemplo a seguir carrega um documento XML que inclui uma referência a um arquivo DTD. A XmlResolver
propriedade é usada para definir as credenciais necessárias para acessar o recurso de rede.
#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
O exemplo usa os arquivos de dados a seguir 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">
Comentários
Pode XmlResolver
ser usado para carregar DTDs ou expandir referências de entidade. Usando a XmlResolver.Credentials propriedade, você pode definir credenciais para acessar recursos XmlResolver
armazenados em um recurso de rede seguro.
Se o documento não tiver sido carregado usando um XmlReader (ou seja, se ele foi carregado usando um fluxo, um arquivo e assim por diante) o
XmlResolver
on sempreXmlDocument
será usado.Se o documento foi carregado com um XmlTextReader, o resolvedor no
XmlTextReader
é usado para resolver quaisquer referências DTD no nó DocumentType. O resolvedor no é usado para expandir todas asXmlDocument
referências de entidade.Se o documento foi carregado com um XmlValidatingReader, o resolvedor no
XmlDocument
nunca é usado.Se o documento foi carregado com uma classe que se estende
XmlReader
e nãoXmlReader
pode resolver entidades (CanResolveEntity retornafalse
), oXmlResolver
on éXmlDocument
usado para resolver quaisquer referências no nó DocumentType e para expandir quaisquer referências de entidade.
Observação
Se a opção XmlDocument
for carregada usando uma XmlReader que tinha um XmlResolver
conjunto para ele, ela XmlResolver
não será armazenada em XmlReader
cache pelo após Load a XmlDocument
conclusão.
Na versão 1.1 do the.NET Framework, se essa propriedade não estiver definida, o nível de confiança do aplicativo determinará o comportamento padrão.
Fully trusted code:
O documento usa um padrão XmlUrlResolver sem credenciais de usuário. Se a autenticação for necessária para acessar um recurso de rede, use a XmlResolver
propriedade para especificar uma XmlResolver
com as credenciais necessárias.
Semi-trusted code:
A XmlResolver
propriedade está definida como null
. Recursos externos não são resolvidos.
Para obter mais informações sobre segurança e a XmlResolver
propriedade, consulte Resolvendo recursos externos.
Essa propriedade é uma extensão da Microsoft do DOM (Modelo de Objeto do Documento).