XmlDocument.XmlResolver Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 estXmlDocument
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 estXmlDocument
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 lesXmlReader
entités (CanResolveEntity retournefalse
), leXmlResolver
surXmlDocument
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).