<xsd:schema> 元素

包含架构的定义。

<schema
  attributeFormDefault = (qualified | unqualified): unqualified
  blockDefault = (#all | List of (extension | restriction | substitution) : ''
  elementFormDefault = (qualified | unqualified): unqualified
  finalDefault = (#all | List of (extension | restriction | list |
union): ''
  id = ID
  targetNamespace = anyURI
  version = token
  xml:lang = language
  {any attributes with non-schema Namespace}...>
Content: ((include | import | redefine | annotation)*, (((simpleType |
complexType | group | attributeGroup) | element | attribute | notation),
annotation*)*)
</schema>

特性

  • attributeFormDefault
    在该架构的目标命名空间中声明的属性的形式。 该值必须是下列字符串之一:qualifiedunqualified。 默认值为 unqualified

    如果该值是 unqualified,则无须通过命名空间前缀限定目标命名空间的属性。

    如果该值是 qualified,则必须通过命名空间前缀限定目标命名空间的属性。

    对于在目标命名空间中声明的所有属性,该值是全局默认值。 单独的属性可以使用 form 属性为其本地范围重写该设置。

    可选。

  • blockDefault
    派生的类型。 blockDefault 属性在该架构的目标命名空间中设置 elementcomplexType 元素上的 block 属性的默认值。 block 属性防止具有指定派生类型的复杂类型(或元素)被用来代替继承的复杂类型(或元素)。 该值可以包含 #all 或者一个列表,该列表是 extensionrestrictionsubstitution 的子集。

    extension

    防止通过扩展派生的复杂类型被用来替代该复杂类型。

    restriction

    防止通过限制派生的复杂类型被用来替代该复杂类型。

    substitution

    防止元素的替换。 (一个元素可以通过在其 substitutionGroup 属性中指定其他元素的名称,将自身声明为其他元素的替换。)

    #all

    防止所有派生的复杂类型被用来替代该复杂类型。

    可选。

  • elementFormDefault
    在该架构的目标命名空间中声明的元素的形式。 该值必须是下列字符串之一:qualifiedunqualified。 默认值为 unqualified

    如果该值是 unqualified,则无须通过命名空间前缀限定目标命名空间的元素。

    如果该值是 qualified,则必须通过命名空间前缀限定目标命名空间的元素。

    对于在目标命名空间中声明的所有元素,该值是全局默认值。 单独元素可以使用 form 属性为其局部范围重写该设置。

    可选。

  • finalDefault
    派生的类型。 finalDefault 属性在该架构的目标命名空间中设置 elementsimpleTypecomplexType 元素的 final 属性的默认值。 final 属性防止 elementsimpleTypecomplexType 元素的指定的派生类型。 对于 elementcomplexType 元素,该值可以包含 #all 或一个列表,该列表是 extensionrestriction 的子集。 对于 simpleType 元素,该值还可以包含 listunion

    extension

    默认情况下,该架构中的元素不能通过扩展派生。 仅适用于 elementcomplexType 元素。

    restriction

    防止通过限制派生。

    list

    防止通过列表派生。 仅适用于 simpleType 元素。

    union

    防止通过联合派生。 仅适用于 simpleType 元素。

    #all

    #all. 默认情况下,该架构中的元素不能通过任何方法派生。

    可选。

  • id
    该元素的 ID。 id 值必须属于类型 ID 并且在包含该元素的文档中是唯一的。

    可选。

  • targetNamespace
    该架构的命名空间的 URI 引用。 还可以分配该命名空间的前缀。 如果没有分配任何前缀,则该命名空间的架构组件可以和非限定的引用一起使用。

    可选。

  • version
    架构的版本。

    可选。

  • xml:lang
    在内容中使用的语言的指示符。

    可选。

元素信息

出现次数

一次

父元素

(无父元素)

Content

includeimportannotationredefine

attributeattributeGroupelementgroupnotationsimpleTypecomplexType

其他

includeimportredefine 元素必须出现在除 annotation 元素以外的其他元素之前;annotation 元素可以出现在任何地方。

备注

schema 元素是架构定义中的文档元素(顶级元素)。

使用 xmlns 属性指定的命名空间必须为架构定义元素和属性(schemaelement 等)包括命名空间。 可以使用任何前缀,但使 schema 命名空间成为默认命名空间会很方便,这样可以避免不得不在每一 XML 架构元素上使用前缀。

targetNamespace 是该架构以及使用 include 元素包括的任何架构中的所有架构组件的命名空间。 (包括的架构必须具有与包含架构相同的目标命名空间,或者根本不具有任何目标命名空间。)在以下示例中,http://www.w3.org/2001/XMLSchema 命名空间中的架构组件(元素名称、类型)是非限定的,而 http://tempuri.org/myschema (mydecimal) 中的架构组件是通过 msc 前缀限定的。

对于 XML 架构,命名空间如下所示:

http://www.w3.org/2001/XMLSchema

此外,schema 元素还应为其使用的任何其他架构包含命名空间声明。

示例

以下架构使用 XML 架构命名空间作为默认命名空间,并且将该架构的目标命名空间定义为 http://mynamespace/myschema

其他资源

有关更多信息,请参见“W3C XML Schema Part 1: Structures Recommendation”(W3C XML 架构第 1 部分:结构建议),网址为:www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-all。

另请参见

参考

XML 架构 (XSD) 参考
XML 架构元素
<xsd:include> 元素