XmlSchemaValidationFlags 枚举

定义

指定由 XmlSchemaValidatorXmlReader 类使用的架构验证选项。

此枚举支持其成员值的按位组合。

public enum class XmlSchemaValidationFlags
[System.Flags]
public enum XmlSchemaValidationFlags
[<System.Flags>]
type XmlSchemaValidationFlags = 
Public Enum XmlSchemaValidationFlags
继承
XmlSchemaValidationFlags
属性

字段

AllowXmlAttributes 16

即使架构中未定义 xml:* 特性,也允许这些特性。 将根据这些特性的数据类型对它们进行验证。

None 0

不要处理标识约束、内联架构、架构位置提示或报告架构验证警告。

ProcessIdentityConstraints 8

处理验证过程中遇到的标识约束(xs:IDxs:IDREFxs:keyxs:keyrefxs:unique)。

ProcessInlineSchema 1

处理在验证过程中遇到的内联架构。

ProcessSchemaLocation 2

处理验证过程中遇到的架构位置提示(xsi:schemaLocationxsi:noNamespaceSchemaLocation)。

ReportValidationWarnings 4

报告在验证过程中遇到的架构验证警告。

示例

有关使用 XmlSchemaValidationFlags 枚举的示例,请参阅 XmlSchemaValidator 该类。

注解

When used with the XmlReader, XmlSchemaValidationFlags values define validation options used by a schema validating XmlReader to perform XML validation against a schema. XmlSchemaValidationFlags使用XmlReaderSettings.ValidationFlags属性指定验证XmlReader的值。

使用 AllowXmlAttributes 值时:

  1. 当架构不导入 Xml 命名空间时。

    1. 如果 AllowXmlAttributes 设置为 true (默认) 且实例文档包含 Xml 属性,则验证引擎将加载默认 Xml 命名空间架构的快照并将其用于验证。 如果在默认架构中找不到实例文档中使用的 Xml 属性,则文档将不会验证。

    2. 如果 AllowXmlAttributes 设置为 false 实例文档包含 Xml 属性,则验证引擎将报告错误。

  2. 架构在没有位置的情况下导入 Xml 命名空间时。

    1. 如果 AllowXmlAttributes 设置为 true (默认) 且实例文档包含 Xml 属性,则验证引擎将使用默认的 Xml 命名空间架构进行验证。 如果在默认架构中找不到实例文档中使用的 Xml 属性,则文档将不会验证。

    2. 如果 AllowXmlAttributes 设置为 false 且实例文档包含架构未显式允许的 Xml 属性,则验证引擎将报告错误。

    3. 如果 AllowXmlAttributes 设置为 false 实例文档并且实例文档包含架构显式允许的 Xml 属性,则验证引擎将使用默认 Xml 命名空间架构验证其他属性的方式验证这些属性。

  3. 当架构使用自定义 schemaLocation 导入自定义 Xml 命名空间架构时。

    1. 如果 AllowXmlAttributes 设置为 true (默认) 且实例文档包含 Xml 属性,则验证引擎将使用自定义 Xml 命名空间架构进行验证。 如果在指定架构中找不到实例文档中使用的 Xml 属性,则文档将不会验证。

    2. 如果 AllowXmlAttributes 设置为 false 且实例文档包含架构未显式允许的 Xml 属性,则验证引擎将报告错误。

    3. 如果 AllowXmlAttributes 设置为 false 实例文档并且实例文档包含架构显式允许的 Xml 属性,则验证引擎将使用指定的 Xml 命名空间架构验证其他属性的方式验证这些属性。

  4. 当架构使用 use=“required”定义 xml:* 属性时。

    1. 以下情况适用于 AllowXmlAttributes 设置为 truefalse。 必需的 xml:* 属性应被视为其他属性,并使用指定的 Xml 命名空间架构进行验证。
  5. 当架构使用 use=“prohibited”定义 xml:* 属性时。

    1. 以下情况适用于 AllowXmlAttributes 设置为 truefalse。 如果实例文档包含架构显式禁止的 xml:* 属性,验证引擎将报告错误。
  6. 架构指定属性通配符时。

    1. 如果实例文档包含 Xml 属性,并且架构指定了 processContents 的属性通配符,或设置为“strict”,则验证引擎将使用该架构中 XmlSchemaSet存在的 Xml 命名空间架构。 如果未指定 Xml 命名空间架构,验证引擎的行为将如下所示。

    2. 如果 AllowXmlAttributes 设置为 true,验证引擎将使用默认的 Xml 命名空间架构来执行验证。

    3. 如果 AllowXmlAttributes 设置为 false,验证引擎将报告错误。

    4. 如果实例文档包含 Xml 属性,并且架构指定了一个将 processContents 设置为“skip”的属性通配符,则验证引擎将跳过属性验证。

    5. 如果实例文档包含 Xml 属性,并且架构指定了一个将 processContents 设置为“lax”的属性通配符,则验证引擎将使用 Xml 命名空间架构。XmlSchemaSet 如果未指定 Xml 命名空间架构,验证引擎的行为将如下所示。

    6. 如果 AllowXmlAttributes 设置为 true,验证引擎将使用默认的 Xml 命名空间架构来执行验证。

    7. 如果 AllowXmlAttributes 设置为 false,则不会执行属性验证。

  7. 验证简单类型时。

    1. 当设置为true (默认) 时AllowXmlAttributes,简单类型的元素上将允许 Xml 属性。

适用于

另请参阅