XML Schema快速入门(四)XML 架构元素与总结

XML 架构元素

详细API可以参考https://docs.microsoft.com/zh-cn/previous-versions/dotnet/netframework-2.0/ms256142(v=vs.80)
XML 架构元素按功能分组:顶级元素、粒子、多个 XML 文档和命名空间、标识约束、属性、命名属性、复杂类型定义和简单类型定义。

  • 顶级元素
  • 粒子
  • 多个 XML 文档和命名空间
  • 标识约束
  • 属性
  • 命名的架构对象
  • 复杂类型定义
  • 简单类型定义

顶级元素

下列元素出现在架构文档的顶级。

元素 说明
<xsd:annotation> 元素 定义批注。
<xsd:attribute> 元素 声明一个属性。
<xsd:attributeGroup> 元素 将一组属性声明归为一组,以便为复杂类型定义将它们并为一个组。
<xsd:complexType> 元素 定义一个复杂类型,确定属性集和元素内容。
<xsd:element> 元素 声明一个元素。
<xsd:group> 元素 将若干元素声明归为一组,以便将它们当作一个组并入复杂类型定义。
<xsd:import> 元素 标识其架构组件由包含架构所引用的命名空间。
<xsd:include> 元素 将指定的架构文档包含在包含架构的目标命名空间中。
<xsd:notation> 元素 包含表示法定义,以描述 XML 文档中非 XML 数据的格式。XML 架构表示法声明是 XML 1.0 NOTATION 声明的一种重构形式。
<xsd:redefine> 元素 允许在当前架构中重新定义从外部架构文件中获取的简单和复杂类型、组和属性组。
<xsd:simpleType> 元素 定义一个简单类型,确定与具有纯文本内容的属性或元素的值有关的信息以及对它们的约束。

粒子

下列元素可以具有 minOccurs 和 maxOccurs 属性。此类元素总是作为复杂类型定义的一部分或命名的模型组的一部分出现。

元素 说明
<xsd:all> 元素 允许组中的元素以任意顺序显示(或不显示)在包含元素中。
<xsd:any> 元素 使来自指定命名空间的任何元素可以显示在包含 sequence 或 choice 元素中。
<xsd:choice> 元素 允许且仅允许选定组中包含的一个元素出现在包含元素中。
<xsd:element> 元素 声明一个元素。
<xsd:group> 元素 将若干元素声明归为一组,以便将它们当作一个组并入复杂类型定义。
<xsd:sequence> 元素 要求组中的元素以指定的顺序显示在包含元素中。

多个 XML 文档和命名空间

下列元素引入其他命名空间中的架构元素或重新定义同一命名空间中的架构元素。

元素 说明
<xsd:import> 元素 标识其架构组件由包含架构所引用的命名空间。
<xsd:include> 元素 将指定的架构文档包含在包含架构的目标命名空间中。
<xsd:redefine> 元素 允许在当前架构中重新定义从外部架构文件中获取的简单和复杂类型、组和属性组。

标识约束

下列元素与标识约束有关。

元素 说明
<xsd:field> 元素 指定 XML 路径语言 (XPath) 表达式,该表达式指定用来定义标识约束(unique、key 和 keyref 元素)的值(或其中一个值)。
<xsd:key> 元素 指定属性或元素值(或一组值)必须是指定范围内的键。键的范围为实例文档中的包含 element。键必须是唯一的、不为零的并且始终存在。
<xsd:keyref> 元素 指定属性或元素值(或一组值)与指定的 key 或 unique 元素的值相对应。
<xsd:selector> 元素 指定 XPath 表达式,该表达式选择一组标识约束元素(unique、key 和 keyref 元素)。
<xsd:unique> 元素 指定属性或元素值(或者属性或元素值的组合)在指定范围内必须是唯一的。该值必须唯一或为零。

属性

下列元素定义架构中的属性。

元素 说明
<xsd:anyAttribute> 元素 使来自指定命名空间的任何属性可以显示在包含 complexType 元素或包含 attributeGroup 元素中。
<xsd:attribute> 元素 声明一个属性。
<xsd:attributeGroup> 元素 将一组属性声明归为一组,以便为复杂类型定义将它们并为一个组。

命名的架构对象

下列元素定义架构中的命名构造。其他架构元素通过 QName 引用命名构造。

元素 说明
<xsd:attribute> 元素 声明一个属性。
<xsd:attributeGroup> 元素 将一组属性声明归为一组,以便为复杂类型定义将它们并为一个组。
<xsd:complexType> 元素 定义一个复杂类型,确定属性集和元素内容。
<xsd:element> 元素 声明一个元素。
<xsd:group> 元素 将若干元素声明归为一组,以便将它们当作一个组并入复杂类型定义。
<xsd:key> 元素 指定属性或元素值(或一组值)必须是指定范围内的键。键的范围为实例文档中的包含 element。键必须是唯一的、不为零的并且始终存在。
<xsd:keyref> 元素 指定属性或元素值(或一组值)与指定的 key 或 unique 元素的值相对应。
<xsd:notation> 元素 包含表示法定义,以描述 XML 文档中非 XML 数据的格式。XML 架构表示法声明是 XML 1.0 NOTATION 声明的一种重构形式。
<xsd:simpleType> 元素 定义一个简单类型,确定与具有纯文本内容的属性或元素的值有关的信息以及对它们的约束。
<xsd:unique> 元素 指定属性或元素值(或者属性或元素值的组合)在指定范围内必须是唯一的。该值必须唯一或为零。

复杂类型定义

下列元素创建复杂类型定义。

元素 说明
<xsd:all> 元素 允许组中的元素以任意顺序显示(或不显示)在包含元素中。
<xsd:annotation> 元素 定义批注。
<xsd:any> 元素 使来自指定命名空间的任何元素可以显示在包含 sequence 或 choice 元素中。
<xsd:anyAttribute> 元素 使来自指定命名空间的任何属性可以显示在包含 complexType 元素或包含 attributeGroup 元素中。
<xsd:appinfo> 元素 指定 annotation 元素中应用程序要使用的信息。
<xsd:attribute> 元素 声明一个属性。
<xsd:attributeGroup> 元素 将一组属性声明归为一组,以便为复杂类型定义将它们并为一个组。
<xsd:choice> 元素 允许且仅允许选定组中包含的一个元素出现在包含元素中。
<xsd:complexContent> 元素 包含对复杂类型(包含混合内容或仅包含元素)的扩展或限制。
<xsd:documentation> 元素 指定 annotation 元素中用户要读取或使用的信息。
<xsd:element> 元素 声明一个元素。
<xsd:extension> 元素 (simpleContent) 包含对 simpleContent 的扩展。通过添加指定属性、属性组或 anyAttribute,扩展了简单类型或具有简单内容的复杂类型。
<xsd:extension> 元素 (complexContent) 包含对 complexContent 的扩展。
<xsd:group> 元素 将若干元素声明归为一组,以便将它们当作一个组并入复杂类型定义。
<xsd:restriction> 元素 (simpleContent) 定义对 simpleContent 定义的约束。
<xsd:restriction> 元素 (complexContent) 定义对 complexContent 定义的约束。
<xsd:sequence> 元素 要求组中的元素以指定的顺序显示在包含元素中。
<xsd:simpleContent> 元素 包含对 complexType 元素(它以字符数据或 simpleType 元素为内容)的扩展或限制并且不包含任何元素。

简单类型定义

下列元素创建简单类型定义。

元素 说明
<xsd:annotation> 元素 定义批注。
<xsd:appinfo> 元素 指定 annotation 元素中应用程序要使用的信息。
<xsd:documentation> 元素 指定 annotation 元素中用户要读取或使用的信息。
<xsd:element> 元素 声明一个元素。
<xsd:list> 元素 定义单个 simpleType 定义的集合。
<xsd:restriction> 元素 (simpleType) 定义对 simpleType 定义的约束。
<xsd:union> 元素 定义多个 simpleType 定义的集合。

总结

在这里插入图片描述

思维导图分享链接: https://pan.baidu.com/s/17nl2A3xFH_QZivuVii28kQ 提取码: j52c

猜你喜欢

转载自blog.csdn.net/weixin_41947378/article/details/104144055