XmlDocument.XmlResolver Właściwość

Definicja

Ustawia wartość XmlResolver , która ma być używana do rozpoznawania zasobów zewnętrznych.

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

Wartość właściwości

XmlResolver

Do XmlResolver użycia.

W wersji 1.1 programu the.NET Framework obiekt wywołujący musi być w pełni zaufany, aby określić XmlResolverelement .

Wyjątki

Ta właściwość jest ustawiona na null i napotkano zewnętrzną jednostkę LUB DTD.

Przykłady

Poniższy przykład ładuje dokument XML zawierający odwołanie do pliku DTD. Właściwość XmlResolver służy do ustawiania poświadczeń niezbędnych do uzyskania dostępu do zasobu sieciowego.

#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

W przykładzie użyto następujących plików danych jako danych wejściowych.

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

Uwagi

Można XmlResolver go użyć do załadowania identyfikatorów DTD lub rozwinięcia odwołań do jednostek. XmlResolver.Credentials Za pomocą właściwości można ustawić poświadczenia na obiekcie XmlResolver , aby uzyskać dostęp do zasobów przechowywanych w bezpiecznym zasobie sieciowym.

  • Jeśli dokument nie został załadowany przy użyciu elementu XmlReader (czyli jeśli został załadowany przy użyciu strumienia, pliku itd.), XmlResolver XmlDocument jest zawsze używany.

  • Jeśli dokument został załadowany z elementem XmlTextReader, narzędzie rozpoznawania elementu XmlTextReader jest używane do rozpoznawania odwołań DTD w węźle DocumentType. Rozpoznawanie w obiekcie XmlDocument służy do rozwijania odwołań do dowolnej jednostki.

  • Jeśli dokument został załadowany z elementem XmlValidatingReader, program rozpoznawania XmlDocument nie jest nigdy używany.

  • Jeśli dokument został załadowany z klasą rozszerzającą XmlReader się i XmlReader nie można rozpoznać jednostek (CanResolveEntity zwraca false), XmlResolver element w elemencie XmlDocument jest używany do rozpoznawania odwołań w węźle DocumentType i rozwijania wszelkich odwołań do jednostki.

Uwaga

Jeśli element XmlDocument jest ładowany przy użyciu elementu z ustawionym XmlReader zestawemXmlResolver, XmlResolver element na obiekcie XmlReader nie jest buforowany przez po Load zakończeniuXmlDocument.

W wersji 1.1 programu the.NET Framework, jeśli ta właściwość nie jest ustawiona, poziom zaufania aplikacji określa domyślne zachowanie.

Fully trusted code: Dokument używa wartości domyślnej XmlUrlResolver bez poświadczeń użytkownika. Jeśli uwierzytelnianie jest wymagane do uzyskania dostępu do zasobu sieciowego, użyj XmlResolver właściwości , aby określić element XmlResolver z wymaganymi poświadczeniami.

Semi-trusted code: Właściwość jest ustawiona XmlResolver na null. Zasoby zewnętrzne nie są rozwiązywane.

Aby uzyskać więcej informacji na temat zabezpieczeń i XmlResolver właściwości, zobacz Rozwiązywanie zasobów zewnętrznych.

Ta właściwość jest rozszerzeniem firmy Microsoft do modelu obiektów dokumentów (DOM).

Dotyczy

Zobacz też