XmlDocument.XmlResolver Özellik

Tanım

XmlResolver dış kaynakları çözümlemek için kullanılacak öğesini ayarlar.

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

Özellik Değeri

XmlResolver Kullanılacak.

the.NET Framework'ün 1.1 sürümünde, çağıranın belirtebilmesi XmlResolveriçin tam olarak güvenilir olması gerekir.

Özel durumlar

Bu özellik olarak null ayarlanır ve bir dış DTD veya varlıkla karşılaşılır.

Örnekler

Aşağıdaki örnek, DTD dosyasına başvuru içeren bir XML belgesini yükler. XmlResolver özelliği, ağ kaynağına erişmek için gereken kimlik bilgilerini ayarlamak için kullanılır.

#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

Örnekte giriş olarak aşağıdaki veri dosyaları kullanılır.

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

Açıklamalar

XmlResolver, DTD'leri yüklemek veya varlık başvurularını genişletmek için kullanılabilir. XmlResolver.Credentials özelliğini kullanarak, güvenli bir ağ kaynağında XmlResolver depolanan kaynaklara erişmek için üzerinde kimlik bilgilerini ayarlayabilirsiniz.

  • Belge bir kullanılarak yüklenmediyse (başka bir XmlReader ifadeyle, bir akış, dosya vb. kullanılarak yüklendiyse) XmlResolver üzerinde XmlDocument her zaman kullanılır.

  • Belge bir XmlTextReaderile yüklendiyse, üzerindeki çözümleyici XmlTextReader DocumentType düğümündeki DTD başvurularını çözümlemek için kullanılır. üzerindeki XmlDocument çözümleyici, varlık başvurularını genişletmek için kullanılır.

  • Belge bir XmlValidatingReaderile yüklendiyse üzerindeki çözümleyici XmlDocument hiçbir zaman kullanılmaz.

  • Belge genişleten XmlReader bir sınıfla yüklendiyse ve XmlReader varlıkları çözümleyemiyorsa (CanResolveEntity döndürür false), XmlResolver üzerindeki XmlDocument öğesi DocumentType düğümündeki başvuruları çözümlemek ve varlık başvurularını genişletmek için kullanılır.

Not

XmlDocument, üzerinde ayarlanmış olan bir XmlReaderXmlResolver kullanılarak yüklenirse, XmlResolver üzerindeki XmlReader tamamlandıktan sonra Load tarafından XmlDocument önbelleğe alınmaz.

the.NET Framework'ün 1.1 sürümünde, bu özellik ayarlanmadıysa, uygulamanın güven düzeyi varsayılan davranışı belirler.

Fully trusted code: Belge, kullanıcı kimlik bilgileri olmayan bir varsayılan XmlUrlResolver kullanır. Bir ağ kaynağına erişmek için kimlik doğrulaması gerekiyorsa, gerekli kimlik bilgileriyle belirtmek XmlResolver için özelliğini kullanınXmlResolver.

Semi-trusted code: XmlResolver özelliği olarak nullayarlanır. Dış kaynaklar çözümlenmedi.

Güvenlik ve XmlResolver özellik hakkında daha fazla bilgi için bkz. Dış Kaynakları Çözümleme.

Bu özellik, Belge Nesne Modeli'nin (DOM) Microsoft bir uzantısıdır.

Şunlara uygulanır

Ayrıca bkz.