XmlDocument.XmlResolver Propriété

Définition

Définit l'élément XmlResolver à utiliser pour résoudre les ressources externes.

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

Valeur de propriété

XmlResolver à utiliser.

Dans la version 1.1 du .NET Framework, l'appelant doit être entièrement fiable pour pouvoir spécifier un élément XmlResolver.

Exceptions

Cette propriété a la valeur null et une entité ou DTD externe est rencontrée.

Exemples

L’exemple suivant charge un document XML qui inclut une référence à un fichier DTD. La XmlResolver propriété est utilisée pour définir les informations d’identification nécessaires pour accéder à la ressource réseau.

#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

L’exemple utilise les fichiers de données suivants comme entrée.

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">

Remarques

Peut XmlResolver être utilisé pour charger des DTD ou développer des références d’entité. À l’aide de la XmlResolver.Credentials propriété, vous pouvez définir des informations d’identification sur le XmlResolver pour accéder aux ressources stockées sur une ressource réseau sécurisée.

  • Si le document n’a pas été chargé à l’aide d’un XmlReader (autrement dit, s’il a été chargé à l’aide d’un flux, d’un fichier, etc.), le XmlResolver sur est XmlDocument toujours utilisé.

  • Si le document a été chargé avec un XmlTextReader, le programme de résolution sur est XmlTextReader utilisé pour résoudre toutes les références DTD dans le nœud DocumentType. Le programme de résolution sur est XmlDocument utilisé pour développer toutes les références d’entité.

  • Si le document a été chargé avec un XmlValidatingReader, le programme de résolution sur le XmlDocument n’est jamais utilisé.

  • Si le document a été chargé avec une classe qui s’étend et que ne XmlReader peut pas résoudre les XmlReader entités (CanResolveEntity retourne false), le XmlResolver sur XmlDocument est utilisé pour résoudre toutes les références dans le nœud DocumentType et pour développer les références d’entité.

Notes

Si le XmlDocument est chargé à l’aide d’un XmlReader qui avait un XmlResolver défini sur lui, le XmlResolver sur XmlReader n’est pas mis en cache par le XmlDocument une fois Load terminé.

Dans la version 1.1 de the.NET Framework, si cette propriété n’est pas définie, le niveau d’approbation de l’application détermine le comportement par défaut.

Fully trusted code: Le document utilise une valeur par défaut XmlUrlResolver sans informations d’identification utilisateur. Si l’authentification est requise pour accéder à une ressource réseau, utilisez la XmlResolver propriété pour spécifier un avec les informations d’identification XmlResolver nécessaires.

Semi-trusted code: La XmlResolver propriété a la valeur null. Les ressources externes ne sont pas résolues.

Pour plus d’informations sur la sécurité et la XmlResolver propriété, consultez Résolution des ressources externes.

Cette propriété est une extension Microsoft du modèle DOM (Document Object Model).

S’applique à

Voir aussi