为 XmlReader 访问外部资源
更新:November 2007
XmlResolver 类用于定位并访问 XmlReader 对象所需的任何资源。
概述
XmlResolver 可以用于执行下列操作:
定位并打开 XML 实例文档。
定位并打开 XML 实例文档所引用的任何外部资源。 其中可以包括实体、文档类型定义、架构等。
如果资源存储在要求身份验证的系统上,XmlResolver.Credentials 属性可以用于指定必要的凭据。
通过设置 XmlReaderSettings.XmlResolver 属性并将 XmlReaderSettings 对象传递给 Create 方法,可以指定要使用的 XmlResolver。
说明: |
---|
如果未指定 XmlResolver,创建的读取器将使用没有用户凭据的默认 XmlUrlResolver。 |
以下代码创建一个 XmlReader 实例,使用具有默认凭据的 XmlUrlResolver。
' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials
' Set the reader settings object to use the resolver.
settings.XmlResolver = resolver
' Create the XmlReader object.
Dim reader as XmlReader = XmlReader.Create("https://ServerName/data/books.xml", settings)
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Set the reader settings object to use the resolver.
settings.XmlResolver = resolver;
// Create the XmlReader object.
XmlReader reader = XmlReader.Create("https://ServerName/data/books.xml", settings);
// Create a resolver with default credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;
// Set the reader settings object to use the resolver.
settings->XmlResolver = resolver;
// Create the XmlReader object.
XmlReader^ reader = XmlReader::Create( L"https://ServerName/data/books.xml", settings );
System.Xml 命名空间包括 XmlResolver 类的两种具体实现。
XmlUrlResolver – 使用 file:// 和 http:// 协议进行解析。 这是使用的默认解析器。
XmlSecureResolver - 通过包装 XmlResolver 对象并限制基础 XmlResolver 可以访问的资源,可以帮助保证另一个 XmlResolver 实现的安全。
有关其他信息,请参见解析由 URI 命名的外部 XML 资源。