2.5.3. 按扩展定义类型

与大多数主要的编码语言一样,XML Schema 也允许您创建数据类型来继承其某些元素的数据类型。这称为按照扩展来定义类型。例如,您可以创建一个名为 alienInfo 的新类型,它通过添加一个名为 planet 的新元素来扩展 例 2.4 “复杂类型” 中定义的 个人Info 结构。

由 扩展定义的类型有四个部分:

  1. 类型的名称由 complexType 元素的 name 属性定义。
  2. 复杂的Content 元素指定新类型将具有多个元素。

    注意

    如果您只向复杂类型添加新属性,您可以使用 simpleContent 元素。

  3. 从派生新类型的类型(称为 基础 类型)在 extension 元素的 base 属性中指定。
  4. 新类型的元素和属性在 extension 元素中定义,它们与用于常规复杂的类型相同。

例如: alienInfo 定义,如 例 2.13 “由扩展定义的类型” 所示。

例 2.13. 由扩展定义的类型

<complexType name="alienInfo">
  <complexContent>
    <extension base="xsd1:personalInfo">
      <sequence>
        <element name="planet" type="xsd:string"/>
      </sequence>
    </extension>
  </complexContent>
</complexType>