包含架构的定义。
<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
在该架构的目标命名空间中声明的属性的形式。 该值必须是下列字符串之一:qualified 或 unqualified。 默认值为 unqualified。如果该值是 unqualified,则无须通过命名空间前缀限定目标命名空间的属性。
如果该值是 qualified,则必须通过命名空间前缀限定目标命名空间的属性。
对于在目标命名空间中声明的所有属性,该值是全局默认值。 单独的属性可以使用 form 属性为其本地范围重写该设置。
可选。
blockDefault
派生的类型。 blockDefault 属性在该架构的目标命名空间中设置 element 和 complexType 元素上的 block 属性的默认值。 block 属性防止具有指定派生类型的复杂类型(或元素)被用来代替继承的复杂类型(或元素)。 该值可以包含 #all 或者一个列表,该列表是 extension、restriction 或 substitution 的子集。extension
防止通过扩展派生的复杂类型被用来替代该复杂类型。
restriction
防止通过限制派生的复杂类型被用来替代该复杂类型。
substitution
防止元素的替换。 (一个元素可以通过在其 substitutionGroup 属性中指定其他元素的名称,将自身声明为其他元素的替换。)
#all
防止所有派生的复杂类型被用来替代该复杂类型。
可选。
elementFormDefault
在该架构的目标命名空间中声明的元素的形式。 该值必须是下列字符串之一:qualified 或 unqualified。 默认值为 unqualified。如果该值是 unqualified,则无须通过命名空间前缀限定目标命名空间的元素。
如果该值是 qualified,则必须通过命名空间前缀限定目标命名空间的元素。
对于在目标命名空间中声明的所有元素,该值是全局默认值。 单独元素可以使用 form 属性为其局部范围重写该设置。
可选。
finalDefault
派生的类型。 finalDefault 属性在该架构的目标命名空间中设置 element、simpleType 和 complexType 元素的 final 属性的默认值。 final 属性防止 element、simpleType 或 complexType 元素的指定的派生类型。 对于 element 和 complexType 元素,该值可以包含 #all 或一个列表,该列表是 extension 或 restriction 的子集。 对于 simpleType 元素,该值还可以包含 list 和 union。extension
默认情况下,该架构中的元素不能通过扩展派生。 仅适用于 element 和 complexType 元素。
restriction
防止通过限制派生。
list
防止通过列表派生。 仅适用于 simpleType 元素。
union
防止通过联合派生。 仅适用于 simpleType 元素。
#all
#all. 默认情况下,该架构中的元素不能通过任何方法派生。
可选。
id
该元素的 ID。 id 值必须属于类型 ID 并且在包含该元素的文档中是唯一的。可选。
targetNamespace
该架构的命名空间的 URI 引用。 还可以分配该命名空间的前缀。 如果没有分配任何前缀,则该命名空间的架构组件可以和非限定的引用一起使用。可选。
version
架构的版本。可选。
xml:lang
在内容中使用的语言的指示符。可选。
元素信息
出现次数 |
一次 |
父元素 |
(无父元素) |
Content |
include、import、annotation、redefine attribute、attributeGroup、element、group、notation、simpleType、complexType |
其他 |
include、import 和 redefine 元素必须出现在除 annotation 元素以外的其他元素之前;annotation 元素可以出现在任何地方。 |
备注
schema 元素是架构定义中的文档元素(顶级元素)。
使用 xmlns 属性指定的命名空间必须为架构定义元素和属性(schema、element 等)包括命名空间。 可以使用任何前缀,但使 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。