Ограничения на набор значений: определение типа, используемого многими элементами (XML-схема)

#xml #xsd #restriction

#xml #xsd #ограничение

Вопрос:

Я нашел здесь следующий пример об ограничениях на набор значений, но я не понял, как использовать тип 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>
  

Ответ №1:

Вам нужно определить тип только один раз:

 <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"/>