XmlDocument.XmlResolver 属性   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
设置 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.XmlResolverPublic Overridable Property XmlResolver As 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">
注解
XmlResolver可用于加载 DTD 或扩展实体引用。 使用此属性 XmlResolver.Credentials ,可以设置凭据 XmlResolver 以访问存储在安全网络资源上的资源。
- 如果未使用 XmlReader (加载文档,则如果使用流、文件等加载文档, - XmlResolver则始终使用该文档- XmlDocument) 。
- 如果文档已加载有一个 XmlTextReader,则使用该解析程序 - XmlTextReader解析 DocumentType 节点中的任何 DTD 引用。 解析程序- XmlDocument用于扩展任何实体引用。
- 如果文档已加载有一个 XmlValidatingReader,则永远不会使用该解析程序 - XmlDocument。
- 如果文档加载了扩展的类 - XmlReader,并且- XmlReader无法解析实体 (CanResolveEntity返回- false) ,则- XmlResolver``XmlDocument用于解析 DocumentType 节点中的任何引用并展开任何实体引用。
在 the.NET Framework 版本 1.1 中,如果未设置此属性,则应用程序的信任级别决定了默认行为。
Fully trusted code: 文档使用没有用户凭据的默认值 XmlUrlResolver 。 如果需要身份验证才能访问网络资源,请使用 XmlResolver 该属性指定 XmlResolver 必要的凭据。
Semi-trusted code: 属性 XmlResolver 设置为 null. 未解析外部资源。
有关安全性和 XmlResolver 属性的详细信息,请参阅 解析外部资源。
此属性是文档对象模型 (DOM) 的 Microsoft 扩展。