Freigeben über


XmlDocument.XmlResolver-Eigenschaft

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

Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
Public Overridable WriteOnly Property XmlResolver As XmlResolver
'Usage
Dim instance As XmlDocument
Dim value As XmlResolver

instance.XmlResolver = value
public virtual XmlResolver XmlResolver { set; }
public:
virtual property XmlResolver^ XmlResolver {
    void set (XmlResolver^ value);
}
/** @property */
public void set_XmlResolver (XmlResolver value)
public function set XmlResolver (value : XmlResolver)

Eigenschaftenwert

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

Ausnahmen

Ausnahmetyp Bedingung

XmlException

Diese Eigenschaft ist auf NULL (Nothing in Visual Basic) festgelegt, und es liegt eine externe DTD oder Entität vor.

Hinweise

Der XmlResolver kann zum Laden von DTDs oder zum Erweitern von Entitätsverweisen verwendet werden. Mithilfe der XmlResolver.Credentials-Eigenschaft können Sie Anmeldeinformationen für den XmlResolver festlegen, um auf Ressourcen zuzugreifen, die in einer sicheren Netzwerkressource gespeichert sind.

  • Wenn das Dokument nicht mit einem XmlReader geladen wurde (d. h, wenn es mit einem Stream, einer Datei usw. geladen wurde), wird immer der XmlResolver für das XmlDocument verwendet.

  • Wenn das Dokument mit einem XmlTextReader geladen wurde, werden DTD-Verweise im DocumentType-Knoten mit dem Resolver für den XmlTextReader aufgelöst. Der Resolver für das XmlDocument wird zum Erweitern sämtlicher Entitätsverweise verwendet.

  • Wenn das Dokument mit einem XmlValidatingReader geladen wurde, wird der Resolver für das XmlDocument niemals verwendet.

  • Wenn das Dokument mit einer Klasse geladen wurde, die den XmlReader erweitert, und der XmlReader keine Entitäten auflösen kann (CanResolveEntity gibt false zurück), wird der XmlResolver für das XmlDocument verwendet, um Verweise im DocumentType-Knoten aufzulösen und Entitätsverweise zu erweitern.

Hinweis

Wenn das XmlDocument mit einem XmlReader geladen wird, für das ein XmlResolver festgelegt wurde, wird der XmlResolver für den XmlReader nach dem Abschluss von Load nicht vom XmlDocument zwischengespeichert.

In .NET Framework, Version 1.1, bestimmt die Vertrauensebene der Anwendung das Standardverhalten, wenn diese Eigenschaft nicht festgelegt wurde.

Fully trusted code: Das Dokument verwendet einen Standard-XmlUrlResolver ohne Benutzeranmeldeinformationen. Wenn für den Zugriff auf eine Netzwerkressource eine Authentifizierung notwendig ist, können Sie in der XmlResolver-Eigenschaft einen XmlResolver mit den notwendigen Anmeldeinformationen angeben.

Semi-trusted code: Die XmlResolver-Eigenschaft ist auf NULL (Nothing in Visual Basic) festgelegt. Externe Ressourcen werden nicht aufgelöst.

Weitere Informationen zur Sicherheit im Zusammenhang mit der XmlResolver-Eigenschaft finden Sie unter Auflösen von externen Ressourcen.

Diese Eigenschaft ist eine Microsoft-Erweiterung des Dokumentobjektmodells (Document Object Model, DOM).

Beispiel

Im folgenden Beispiel wird ein XML-Dokument geladen, das einen Verweis auf eine DTD-Datei enthält. Die XmlResolver-Eigenschaft wird zum Festlegen der für den Zugriff auf die Netzwerkressourcen erforderlichen Anmeldeinformationen verwendet.

Imports System
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
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
#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 );
}

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

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

XmlDocument-Klasse
XmlDocument-Member
System.Xml-Namespace
Credentials
System.Net.CredentialCache
System.Net.NetworkCredential
XmlSecureResolver