2017-02-07 6 views
1

Допустим, у меня есть перечисление:Как ограничить значения элемента xsd из другого перечисления?

<xs:simpleType name="wheelerType"> 
    <xs:restriction base="xs:string"> 
    <xs:enumeration value="2-wheeler"/> 
    <xs:enumeration value="4-wheeler"/> 
    </xs:restriction> 
</xs:simpleType> 

Теперь я определяю еще два элемента, как показано ниже.

<xs:element name="Bike" type="wheelerType"/> 
<xs:element name="Car" type="wheelerType"/> 

Теперь, как я могу ограничить байк только 2-wheeler и Car только 4-wheeler?

ответ

0

XML-схема позволяет дополнительно ограничить типы с аналогичной конструкцией: The Bike и Car элементы могут быть связаны с анонимными простыми типами, которые уточняют перечисление, введенное в wheelerType только 2-Wheeler или 4-Wheeler.

<xs:element name="Bike"> 
    <xs:simpleType> 
     <xs:restriction base="wheelerType"> 
      <xs:enumeration value="2-wheeler"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:element> 
<xs:element name="Car"> 
    <xs:simpleType> 
     <xs:restriction base="wheelerType"> 
      <xs:enumeration value="2-wheeler"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:element> 
+0

Но в этом случае у нас будет 2 перечисления в сгенерированных источниках с одним значением? – napster

+0

Когда вы говорите о «сгенерированных источниках» (что я всегда чувствую, это противоречие в терминах), это, по-видимому, означает, что вы используете какой-то инструмент, возможно, инструмент привязки данных для создания чего-то из вашей схемы. Вы должны сказать нам, какой инструмент есть. –