XmlReader 类中的新功能

更新:November 2007

Microsoft .NET Framework 2.0 版包括许多对 XmlReader 类的设计和功能方面的更改。

XmlReader 的创建

在此版本中,Create 方法是获取 XmlReader 实例的首选机制。 Create 方法使用 XmlReaderSettings 类指定 XmlReader 实例应支持的功能。

有关更多信息,请参见创建 XML 读取器

数据验证

通过 Create 方法创建的 XmlReader 对象可以使用文档类型定义 (DTD) 或架构定义语言 (XSD) 架构强制进行验证。 XmlReaderSettings.ValidationType 属性确定 XmlReader 实例是否强制进行验证。 XmlReaderSettings.ValidationFlags 属性配置可选的验证设置。 XmlSchemaSet 类用于缓存 XML 架构。

说明:

XmlValidatingReaderXmlSchemaCollection 类在 .NET Framework 2.0 中已过时。

有关更多信息,请参见使用 XmlReader 验证 XML 数据

数据一致性

默认情况下,由 Create 方法创建的 XmlReader 对象比 XmlTextReader 实现一致性更强。默认情况下,通过 Create 方法创建的 XmlReader 对象支持下列功能:

  • 标准化换行符。

  • 扩展实体。

  • 添加默认属性。

通过 XmlReaderSettings.CheckCharactersXmlReaderSettings.ConformanceLevel 属性可以指定要在已创建的 XmlReader 对象上启用的一致性检查类型。 有关更多信息,请参见使用 XmlReader 进行数据一致性检查

类型支持

支持检索 XML 架构定义语言 (XSD) 架构信息并允许调用方以简单类型化的公共语言运行库 (CLR) 值的形式请求值。

ReadContentAs 和 ReadElementContentAs 方法可以将内容作为系统类型读取,而不是作为字符串读取。 这些新方法使用户可以以最适合编码作业的表示形式获取值,而不必手动执行值的转换和分析。

有关更多信息,请参见读取类型化数据

新的帮助器方法

XmlReader 类包括的新方法将使分析 XML 数据更加容易:

安全功能

可以创建一个 XmlReader 对象,禁止进行文档类型定义 (DTD) 处理。 禁用 DTD 处理对避免受到某些拒绝服务攻击非常有用。 如果禁用了 DTD 处理,XmlReader 对象在遇到任何 DTD 内容时将引发 XmlException。 默认情况下禁用 DTD 处理。 要启用 DTD 处理,在创建 XmlReader 之前,将 XmlReaderSettings.ProhibitDtd 属性设置为 false。

说明:

XmlTextReader 类上也可以使用 ProhibitDtd 属性。

实体处理

通过 Create 方法创建的 XmlReader 对象自动展开所有实体。 如果遇到无法解析的实体,将引发异常。

请参见

概念

用 XmlReader 读取 XML