XmlDocument.XmlResolver Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define o XmlResolver para resolver recursos externos.
public:
virtual property System::Xml::XmlResolver ^ XmlResolver { void set(System::Xml::XmlResolver ^ value); };
public virtual System.Xml.XmlResolver XmlResolver { set; }
member this.XmlResolver : System.Xml.XmlResolver
Public Overridable Property XmlResolver As XmlResolver
Valor de Propriedade
O XmlResolver para usar.
Na versão 1.1 do.NET Framework, o chamador deve ser totalmente confiável para especificar um XmlResolver.
Exceções
Esta propriedade é definida para null e é encontrada uma DTD ou entidade externa.
Exemplos
O exemplo seguinte carrega um documento XML que inclui uma referência a um ficheiro DTD. A XmlResolver propriedade é usada para definir as credenciais necessárias para aceder ao 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 utiliza os seguintes ficheiros 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">
Observações
Podem XmlResolver ser usados para carregar DTDs ou expandir referências de entidades. Usando esta XmlResolver.Credentials propriedade, pode definir credenciais para XmlResolver aceder a recursos armazenados num recurso de rede seguro.
Se o documento não foi carregado usando um XmlReader (isto é, se foi carregado através de um fluxo, ficheiro, etc.) o
XmlResolveron éXmlDocumentsempre usado.Se o documento foi carregado com um XmlTextReader, o resolvedor no
XmlTextReaderé usado para resolver quaisquer referências DTD no nó DocumentType. O resolver em oXmlDocumenté usado para expandir quaisquer 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
XmlReaderestende e nãoXmlReaderpode resolver entidades (CanResolveEntity retornafalse), oXmlResolveronXmlDocumenté usado para resolver quaisquer referências no nó DocumentType e para expandir quaisquer referências de entidade.
Note
Se o XmlDocument for carregado usando um XmlReader que tinha um XmlResolver definido para ele, o XmlResolver on XmlReader não é armazenado em cache pelo XmlDocument after Load completes.
Na versão 1.1 do .NET Framework, se esta propriedade não estiver definida, o nível de confiança da aplicação determina o comportamento padrão.
Fully trusted code: O documento utiliza um padrão XmlUrlResolver sem credenciais de utilizador. Se for necessária autenticação para aceder a um recurso de rede, use a XmlResolver propriedade para especificar um XmlResolver com as credenciais necessárias.
Semi-trusted code: A XmlResolver propriedade está definida como null. Os recursos externos não são resolvidos.
Para mais informações sobre segurança e propriedade XmlResolver , consulte Resolução de Recursos Externos.
Esta propriedade é uma extensão da Microsoft para o Modelo de Objetos do Documento (DOM).