다음을 통해 공유


XmlDocument.XmlResolver 속성

정의

외부 리소스 확인을 위해 사용할 XmlResolver를 설정합니다.

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

속성 값

XmlResolver

사용할 XmlResolver입니다.

.NET Framework 버전 1.1에서는 완전히 신뢰할 수 있는 호출자만 XmlResolver를 지정할 수 있습니다.

예외

이 속성이 null로 설정되어 있고 외부 DTD 또는 엔터티가 발생했습니다.

예제

다음 예제에서는 DTD 파일에 대한 참조를 포함하는 XML 문서를 로드합니다. 이 XmlResolver 속성은 네트워크 리소스에 액세스하는 데 필요한 자격 증명을 설정하는 데 사용됩니다.

#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

이 예제에서는 다음 데이터 파일을 입력으로 사용합니다.

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

설명

DTD XmlResolver 를 로드하거나 엔터티 참조를 확장하는 데 사용할 수 있습니다. 이 XmlResolver.Credentials 속성을 사용하면 보안 네트워크 리소스에 저장된 리소스에 XmlResolver 액세스하기 위해 자격 증명을 설정할 수 있습니다.

  • 문서를 사용하여 XmlReader 로드되지 않은 경우(즉, 스트림, 파일 등을 사용하여 로드된 경우) XmlResolver 항상 on XmlDocument 이 사용됩니다.

  • 문서가 로드 XmlTextReader된 경우 문서의 확인자가 DocumentType 노드에서 XmlTextReader DTD 참조를 확인하는 데 사용됩니다. 확인자가 XmlDocument 엔터티 참조를 확장하는 데 사용됩니다.

  • 문서가 로드된 XmlValidatingReader경우 해당 문서의 확인자가 XmlDocument 사용되지 않습니다.

  • 문서가 확장 XmlReader XmlReader 되는 클래스와 함께 로드되었고 엔터티(반환false)XmlDocumentCanResolveEntity XmlResolver 를 확인할 수 없는 경우 해당 항목은 DocumentType 노드에서 참조를 확인하고 엔터티 참조를 확장하는 데 사용됩니다.

참고

집합 XmlResolver XmlReaderXmlDocument 있는 XmlResolver 항목을 사용하여 XmlReader 로드되는 경우 on은 완료된 후에 Load 캐시 XmlDocument 되지 않습니다.

.NET Framework의 버전 1.1에서는이 속성을 설정 하지 않으면 애플리케이션의 신뢰 수준을 기본 동작을 결정 합니다.

Fully trusted code: 문서에서는 사용자 자격 증명이 없는 기본값 XmlUrlResolver 을 사용합니다. 네트워크 리소스에 액세스하는 데 인증이 필요한 경우 속성을 사용하여 XmlResolver 필요한 자격 증명을 XmlResolver 사용하여 지정합니다.

Semi-trusted code: 속성이 XmlResolver .로 설정됩니다 null. 외부 리소스는 확인되지 않습니다.

보안 및 XmlResolver 속성에 대한 자세한 내용은 외부 리소스 해결을 참조하세요.

이 속성은 DOM(문서 개체 모델)에 대한 Microsoft 확장입니다.

적용 대상

추가 정보