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 uso 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 the.NET Framework, o chamador deve ser totalmente confiável para especificar um XmlResolver.
Exceções
Essa propriedade é definida null e um DTD externo ou entidade é encontrado.
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;
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 seguintes arquivos de dados 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 tiver sido carregado usando um fluxo, um arquivo e assim por diante) o
XmlResolverbotãoXmlDocumentsempre 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 noXmlDocumenté usado para expandir as referências de entidade.Se o documento foi carregado com um XmlValidatingReader, o resolvedor no
XmlDocumentnunca é usado.Se o documento foi carregado com uma classe que se estende
XmlReadere nãoXmlReaderpode resolver entidades (CanResolveEntity retornafalse), oXmlResolveronXmlDocumenté usado para resolver quaisquer referências no nó DocumentType e expandir as referências de entidade.
Observação
Se for XmlDocument carregado usando um que tinha um XmlResolver conjunto para ele, ele XmlResolver não será armazenado em XmlReader cache pelo após Load a XmlDocument conclusãoXmlReader.
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 é definida como null. Os 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 para o DOM (Document Object Model).