XmlDocument.XmlResolver Egenskap

Definition

Anger vilken XmlResolver som ska användas för att matcha externa resurser.

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

Egenskapsvärde

Att XmlResolver använda.

I version 1.1 av.NET Framework måste anroparen vara helt betrodd för att kunna ange en XmlResolver.

Undantag

Den här egenskapen är inställd på null och en extern DTD eller en entitet påträffas.

Exempel

I följande exempel läses ett XML-dokument in som innehåller en referens till en DTD-fil. Egenskapen XmlResolver används för att ange de autentiseringsuppgifter som krävs för att komma åt nätverksresursen.

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

I exemplet används följande datafiler som indata.

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

Kommentarer

XmlResolver Kan användas för att läsa in DTD:er eller expandera entitetsreferenser. Med hjälp av XmlResolver.Credentials egenskapen kan du ange autentiseringsuppgifter för XmlResolver att komma åt resurser som lagras på en säker nätverksresurs.

  • Om dokumentet inte lästes in med hjälp av en XmlReader (dvs. om det lästes in med hjälp av en ström, fil och så vidare) XmlResolver används alltid på XmlDocument .

  • Om dokumentet lästes in med en XmlTextReaderanvänds matcharen på XmlTextReader för att matcha eventuella DTD-referenser i DocumentType-noden. Matcharen på XmlDocument används för att expandera alla entitetsreferenser.

  • Om dokumentet lästes in med en XmlValidatingReaderanvänds aldrig matcharen på XmlDocument .

  • Om dokumentet lästes in med en klass som utökas och XmlReader inte kan matcha entiteter XmlReader (CanResolveEntity returnerar false), XmlResolver används på XmlDocument för att matcha referenser i DocumentType-noden och för att expandera eventuella entitetsreferenser.

Note

XmlDocument Om läses in med en XmlReader som hade en XmlResolver inställd på den cachelagras XmlResolver inte på XmlReader av efter XmlDocumentLoad slutförd.

Om den här egenskapen inte har angetts i version 1.1 av.NET Framework avgör programmets förtroendenivå standardbeteendet.

Fully trusted code: Dokumentet använder ett standardvärde XmlUrlResolver utan användarautentiseringsuppgifter. Om autentisering krävs för att komma åt en nätverksresurs använder du XmlResolver egenskapen för att ange en XmlResolver med nödvändiga autentiseringsuppgifter.

Semi-trusted code: Egenskapen XmlResolver är inställd på null. Externa resurser har inte lösts.

Mer information om säkerhet och egenskapen finns i XmlResolverLösa externa resurser.

Den här egenskapen är ett Microsoft tillägg till dokumentobjektmodellen (DOM).

Gäller för

Se även