XmlDocument.XmlResolver Propriedade

Definição

Define o XmlResolver que será usado para resolver recursos externos.Sets the XmlResolver to use for resolving external resources.

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 da propriedade

XmlResolver

O XmlResolver a ser usado.The XmlResolver to use.

Na versão 1.1 do .NET Framework, o chamador deve ser totalmente confiável para especificar um XmlResolver.In version 1.1 of the.NET Framework, the caller must be fully trusted in order to specify an XmlResolver.

Exceções

Essa propriedade é definida como null e uma DTD ou entidade externa é encontrada.This property is set to null and an external DTD or entity is encountered.

Exemplos

O exemplo a seguir carrega um documento XML que inclui uma referência a um arquivo DTD.The following example loads an XML document which includes a reference to a DTD file. A XmlResolver propriedade é usada para definir as credenciais necessárias para acessar o recurso de rede.The XmlResolver property is used to set the credentials necessary to access the network resource.

#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 seguintes arquivos de dados como entrada.The example uses the following data files as input.

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

O XmlResolver pode ser usado para carregar DTDs ou expandir referências de entidade.The XmlResolver can be used to load DTDs or expand entity references. Usando a XmlResolver.Credentials propriedade, você pode definir credenciais no XmlResolver para acessar recursos armazenados em um recurso de rede segura.Using the XmlResolver.Credentials property, you can set credentials on the XmlResolver to access resources stored on a secure network resource.

  • Se o documento não tiver sido carregado usando um XmlReader (ou seja, se ele tiver sido carregado usando um fluxo, arquivo e assim por diante), o XmlResolver no XmlDocument será sempre usado.If the document was not loaded using an XmlReader (that is, if it was loaded using a stream, file, and so on) the XmlResolver on the XmlDocument is always used.

  • Se o documento foi carregado com um XmlTextReader , o resolvedor no XmlTextReader é usado para resolver quaisquer referências de DTD no nó DocumentType.If the document was loaded with an XmlTextReader, the resolver on the XmlTextReader is used to resolve any DTD references in the DocumentType node. O resolvedor no XmlDocument é usado para expandir qualquer referência de entidade.The resolver on the XmlDocument is used to expand any entity references.

  • Se o documento foi carregado com um XmlValidatingReader , o resolvedor no XmlDocument nunca será usado.If the document was loaded with an XmlValidatingReader, the resolver on the XmlDocument is never used.

  • Se o documento foi carregado com uma classe que se estende XmlReader e o XmlReader não pode resolver entidades ( CanResolveEntity retorna false ), o XmlResolver no XmlDocument é usado para resolver quaisquer referências no nó DocumentType e expandir quaisquer referências de entidade.If the document was loaded with a class that extends XmlReader and the XmlReader cannot resolve entities (CanResolveEntity returns false), the XmlResolver on the XmlDocument is used to resolve any references in the DocumentType node and to expand any entity references.

Observação

Se o XmlDocument for carregado usando um XmlReader que tinha um XmlResolver definido para ele, o XmlResolver no XmlReader não será armazenado em cache pelo XmlDocument após a Load conclusão.If the XmlDocument is loaded using an XmlReader which had an XmlResolver set to it, the XmlResolver on the XmlReader is not cached by the XmlDocument after Load completes.

Na versão 1,1 do the.NET Framework, se essa propriedade não for definida, o nível de confiança do aplicativo determinará o comportamento padrão.In version 1.1 of the.NET Framework, if this property is not set, the trust level of the application determines the default behavior.

Fully trusted code: O documento usa um padrão sem XmlUrlResolver credenciais de usuário.Fully trusted code: The document uses a default XmlUrlResolver with no user credentials. Se a autenticação for necessária para acessar um recurso de rede, use a XmlResolver propriedade para especificar um XmlResolver com as credenciais necessárias.If authentication is required to access a network resource, use the XmlResolver property to specify an XmlResolver with the necessary credentials.

Semi-trusted code: A XmlResolver propriedade é definida como null .Semi-trusted code: The XmlResolver property is set to null. Os recursos externos não são resolvidos.External resources are not resolved.

Para obter mais informações sobre segurança e a XmlResolver propriedade, consulte resolvendo recursos externos.For more information on security and the XmlResolver property, see Resolving External Resources.

Essa propriedade é uma extensão da Microsoft do DOM (Modelo de Objeto do Documento).This property is a Microsoft extension to the Document Object Model (DOM).

Aplica-se a

Confira também