XmlResolver 类

解析由统一资源标识符 (URI) 命名的外部 XML 资源。

**命名空间:**System.Xml
**程序集:**System.Xml(在 system.xml.dll 中)

语法

声明
Public MustInherit Class XmlResolver
用法
Dim instance As XmlResolver
public abstract class XmlResolver
public ref class XmlResolver abstract
public abstract class XmlResolver
public abstract class XmlResolver

备注

XmlResolver 用于解析外部 XML 资源,如实体、文档类型定义 (DTD) 或架构。它还用于处理在可扩展样式表语言 (XSL) 样式表或 XML 架构定义语言 (XSD) 架构中可以找到的包含元素和导入元素。

XmlUrlResolverXmlResolver 的具体实现,是 System.Xml 命名空间中所有类的默认冲突解决程序。您还可以创建自己的冲突解决程序。

安全注意事项

使用 XmlResolver 类时,应考虑以下几项内容。

  • XmlResolver 对象可能包含敏感信息,如用户凭据等。缓存 XmlResolver 对象时应该小心,不应该将 XmlResolver 对象传递给不受信任的组件。

  • 如果要设计使用 XmlResolver 类的类属性,则应将该属性定义为只写属性。该属性可用于指定要使用的 XmlResolver,但不能用于返回 XmlResolver 对象。

  • 如果应用程序接受了来自不受信任的代码的 XmlResolver 对象,则不能假设传递到 GetEntity 方法中的 URI 将与 ResolveUri 方法返回的 URI 相同。从 XmlResolver 类派生的类可以重写 GetEntity 方法,并返回与原始 URI 中所含数据不同的数据。

  • 通过实现包装实现的 IStream(限制读取的字节数),应用程序可以减轻对 GetEntity 方法的内存“拒绝服务”威胁。这有助于防止恶意代码试图将无数字节流传递给 GetEntity 方法的情况发生。

示例

下面的示例创建一个 XmlReader,该读取器使用一个具有默认凭据的 XmlUrlResolver

' Create an XmlUrlResolver with default credentials.
Dim resolver As New XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials

' Create the reader.
Dim settings As New XmlReaderSettings()
settings.XmlResolver = resolver
Dim reader As XmlReader = XmlReader.Create("https://serverName/data/books.xml")
// Create an XmlUrlResolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;

// Create the reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = resolver;
XmlReader reader = XmlReader.Create("https://serverName/data/books.xml");
   

继承层次结构

System.Object
  System.Xml.XmlResolver
     System.Xml.XmlSecureResolver
     System.Xml.XmlUrlResolver

线程安全

此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

XmlResolver 成员
System.Xml 命名空间

其他资源

XML 文档和数据
安全性和 System.Xml 应用程序