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.XmlResolver
Public 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 扩展。