XmlReaderSettings 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
public ref class XmlReaderSettings sealed
public sealed class XmlReaderSettings
type XmlReaderSettings = class
Public NotInheritable Class XmlReaderSettings
- 继承
-
XmlReaderSettings
示例
以下示例创建一个XmlReaderXmlUrlResolver具有所需凭据的凭据。
// Create an XmlUrlResolver with the credentials necessary to access the Web server.
var resolver = new XmlUrlResolver();
var myCred = new NetworkCredential(UserName, SecurelyStoredPassword, Domain);
resolver.Credentials = myCred;
var settings = new XmlReaderSettings();
settings.XmlResolver = resolver;
// Create the reader.
XmlReader reader = XmlReader.Create("http://serverName/data/books.xml", settings);
' Create an XmlUrlResolver with the credentials necessary to access the Web server.
Dim resolver As New XmlUrlResolver()
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred
Dim settings As New XmlReaderSettings()
settings.XmlResolver = resolver
' Create the reader.
Dim reader As XmlReader = XmlReader.Create("http://serverName/data/books.xml", settings)
注解
您可以使用 Create 方法来获取 XmlReader 实例。 此方法使用 XmlReaderSettings 类指定要在创建的对象中 XmlReader 实现哪些功能。
有关用于符合性检查、验证和其他常见场景的设置信息,请参阅XmlReader和Create参考页面的“备注”部分。 请参阅构造函数XmlReaderSettings()以获取默认设置列表。
安全注意事项
使用 XmlReaderSettings 类时,请考虑以下事项。
ProcessInlineSchema对象的ProcessSchemaLocation和XmlReaderSettings验证标志在默认情况下未设置。 设置了这些标志后,XmlResolver 对象的 XmlReaderSettings 用于在 XmlReader 中解析实例文档中遇到的架构位置。 如果XmlResolver对象是
null,即使ProcessInlineSchema和ProcessSchemaLocation验证标志已设置,架构位置也不会解析。验证期间添加的架构添加新类型,并可以更改正在验证的文档的验证结果。 因此,只能从受信任的源解析外部架构。
验证错误消息可能会公开敏感内容模型信息。 验证错误和警告消息使用 ValidationEventHandler 委托进行处理,或在未向 XmlSchemaValidationException 对象提供事件处理程序的情况下作为 XmlReaderSettings 公开(验证警告不会引发 XmlSchemaValidationException)。 不应在不受信任的方案中公开此内容模型信息。 默认情况下会禁止验证警告消息,可以通过设置 ReportValidationWarnings 标志来报告。
SourceUri 的 XmlSchemaValidationException 属性会返回导致异常的架构文件的 URI 路径。 SourceUri属性不应在不受信任的方案中公开。
在高可用性场景中,当参照对文档的大部分内容具有标识约束的架构验证不受信任的大型 XML 文档时,建议禁用 ProcessIdentityConstraints 标志(默认情况下会启用)。
XmlReaderSettings 对象可以包含敏感信息,例如用户凭据。 缓存 XmlReaderSettings 对象或将对象从一个组件传递到 XmlReaderSettings 另一个组件时,应小心。
默认情况下,DTD 处理处于禁用状态。 如果启用 DTD 处理,则需要包含来自不受信任的源的 DTD 和可能的拒绝服务攻击。 用于 ThrowingResolver 限制可以访问的资源 XmlReader 。
不接受来自不受信任的源的支持组件,例如 NameTable、 XmlNamespaceManager对象和 XmlResolver 对象。
使用 XmlReader 的应用程序的内存使用情况可能与已分析的 XML 文档的大小相关。 拒绝服务攻击的一种形式是提交过多的 XML 文档进行分析。 可以通过设置 MaxCharactersInDocument 属性来限制可分析的文档的大小,然后通过设置 MaxCharactersFromEntities 属性来限制扩展实体导致的字符数。
构造函数
| 名称 | 说明 |
|---|---|
| XmlReaderSettings() |
初始化 XmlReaderSettings 类的新实例。 |
| XmlReaderSettings(XmlResolver) |
已过时.
初始化 XmlReaderSettings 类的新实例。 |
属性
| 名称 | 说明 |
|---|---|
| Async | |
| CheckCharacters |
获取或设置一个值,该值指示是否执行字符检查。 |
| CloseInput |
获取或设置一个值,该值指示读取器关闭时基础流还是 TextReader 应该关闭。 |
| ConformanceLevel |
获取或设置要遵守的 XmlReader 一致性级别。 |
| DtdProcessing |
获取或设置一个值,该值确定 DTD 的处理。 |
| IgnoreComments |
获取或设置一个值,该值指示是否忽略注释。 |
| IgnoreProcessingInstructions |
获取或设置一个值,该值指示是否忽略处理指令。 |
| IgnoreWhitespace |
获取或设置一个值,该值指示是否忽略无关紧要的空格。 |
| LineNumberOffset |
获取或设置对象的行号偏移量 XmlReader 。 |
| LinePositionOffset |
获取或设置对象的行位置偏移量 XmlReader 。 |
| MaxCharactersFromEntities |
获取或设置一个值,该值指示扩展实体导致文档中允许的最大字符数。 |
| MaxCharactersInDocument |
获取或设置一个值,该值指示 XML 文档中允许的最大字符数。 零(0)值表示对 XML 文档的大小没有限制。 非零值指定最大大小(以字符为单位)。 |
| NameTable |
获取或设置 XmlNameTable 用于原子化的字符串比较。 |
| ProhibitDtd |
已过时.
已过时.
获取或设置一个值,该值指示是否禁止文档类型定义 (DTD) 处理。 此属性已过时。 改用 DtdProcessing。 |
| Schemas |
获取或设置 XmlSchemaSet 在执行架构验证时要使用的值。 |
| ValidationFlags |
获取或设置一个值,该值指示架构验证设置。 此设置适用于 XmlReader 验证架构的对象(ValidationType 属性设置为 |
| ValidationType |
获取或设置一个值,该值 XmlReader 指示读取时将执行验证或类型分配。 |
| XmlResolver |
XmlResolver设置用于访问外部文档的设置。 |
方法
| 名称 | 说明 |
|---|---|
| Clone() |
创建实例的副本 XmlReaderSettings 。 |
| Equals(Object) |
确定指定的对象是否等于当前对象。 (继承自 Object) |
| GetHashCode() |
用作默认哈希函数。 (继承自 Object) |
| GetType() |
获取当前实例的 Type。 (继承自 Object) |
| MemberwiseClone() |
创建当前 Object的浅表副本。 (继承自 Object) |
| Reset() |
将设置类的成员重置为其默认值。 |
| ToString() |
返回一个表示当前对象的字符串。 (继承自 Object) |
活动
| 名称 | 说明 |
|---|---|
| ValidationEventHandler |
读取器遇到验证错误时发生。 |