一组值的限制:定义可由许多元素使用的类型XML模式

问题描述

我发现here的以下示例说明了对一组值的限制,但是我没有获得如何在其他元素中使用carType类型的方法

<xs:element name="car" type="carType"/>

<xs:simpleType name="carType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  </xs:restriction>
</xs:simpleType>

也许以这种方式?我是否要重写有关carType的所有行?

<xs:element name="car2" type="carType"/>

<xs:simpleType name="carType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  </xs:restriction>
</xs:simpleType>

解决方法

您只需定义一次类型:

<xs:simpleType name="carType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  </xs:restriction>
</xs:simpleType>

并根据需要将其重新用于许多元素:

<xs:element name="car" type="carType"/>
<xs:element name="car2" type="carType"/>