XmlDocument.XmlResolver Eigenschaft

Definition

Legt den für die Auflösung externer Ressourcen zu verwendenden XmlResolver fest.

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

Eigenschaftswert

XmlResolver

Der zu verwendende XmlResolver.

In .NET Framework, Version 1.1, kann nur ein vollständig vertrauenswürdiger Aufrufer einen XmlResolver festlegen.

Ausnahmen

Diese Eigenschaft ist auf null festgelegt, und es wird eine externe DTD oder Entität gefunden.

Beispiele

Im folgenden Beispiel wird ein XML-Dokument geladen, das einen Verweis auf eine DTD-Datei enthält. Die XmlResolver Eigenschaft wird verwendet, um die Anmeldeinformationen festzulegen, die für den Zugriff auf die Netzwerkressource erforderlich sind.

#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

Im Beispiel werden die folgenden Datendateien als Eingabe verwendet.

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

Hinweise

Dies XmlResolver kann verwendet werden, um DTDs zu laden oder Entitätsverweise zu erweitern. Mithilfe der XmlResolver.Credentials Eigenschaft können Sie Anmeldeinformationen für den Zugriff auf Ressourcen festlegen, die XmlResolver in einer sicheren Netzwerkressource gespeichert sind.

  • Wenn das Dokument nicht mit einem XmlReader (also, wenn es mit einem Datenstrom, einer Datei usw.) geladen wurde, wird das XmlResolver Dokument XmlDocument immer verwendet.

  • Wenn das Dokument mit einem XmlTextReadergeladen wurde, wird der Resolver auf dem XmlTextReader Objekt verwendet, um alle DTD-Verweise im DocumentType-Knoten aufzulösen. Der Resolver auf der XmlDocument Seite wird verwendet, um alle Entitätsverweise zu erweitern.

  • Wenn das Dokument mit einem XmlValidatingReadergeladen wurde, wird der Resolver auf dem XmlDocument Dokument nie verwendet.

  • Wenn das Dokument mit einer Klasse geladen wurde, die erweitert XmlReader wird und die XmlReader Entitäten nicht aufgelöst werden können (CanResolveEntity gibt zurück false), wird das XmlResolver On der XmlDocument Datei verwendet, um Verweise im DocumentType-Knoten aufzulösen und alle Entitätsverweise zu erweitern.

Hinweis

Wenn die XmlDocument Datei mit einer XmlReader XmlResolver festgelegten Einstellung geladen wird, wird das XmlResolver On der XmlReader Datei nach Abschluss nicht zwischengespeichert XmlDocument Load .

Wenn diese Eigenschaft in Version 1.1 von the.NET Framework nicht festgelegt ist, bestimmt die Vertrauensstufe der Anwendung das Standardverhalten.

Fully trusted code: Das Dokument verwendet einen Standardwert XmlUrlResolver ohne Benutzeranmeldeinformationen. Wenn die Authentifizierung erforderlich ist, um auf eine Netzwerkressource zuzugreifen, verwenden Sie die XmlResolver Eigenschaft, um eine XmlResolver mit den erforderlichen Anmeldeinformationen anzugeben.

Semi-trusted code: Die XmlResolver Eigenschaft ist auf null. Externe Ressourcen werden nicht aufgelöst.

Weitere Informationen zu Sicherheit und XmlResolver Eigenschaft finden Sie unter Auflösen externer Ressourcen.

Diese Eigenschaft ist eine Microsoft-Erweiterung des Dokumentobjektmodells (DOM).

Gilt für:

Siehe auch