xsd限制值的显式组合

xsd限制值的显式组合,xsd,Xsd,我想限制不同的值组合。我遇到的问题类似于: <xs:simpleType name="CarTypes"> <xs:restriction base="xs:string" <xs:enumeration value="VW" /> <xs:enumeration value="BMW" /> <xs:enumeration value="HONDA" /> <xs:enum

我想限制不同的值组合。我遇到的问题类似于:

<xs:simpleType name="CarTypes">
   <xs:restriction base="xs:string"
       <xs:enumeration value="VW" />
       <xs:enumeration value="BMW" />
       <xs:enumeration value="HONDA" />
       <xs:enumeration value="MECREDES" />
       <xs:enumeration value="ALL" />
       <xs:enumeration value="DEFAULT" />
   </xs:restriction>
</xs:simpleType>
但不是

"ALL" and "DEFAULT" -> ALLOWED
我不太熟悉xsd语法,所以我希望有一种方法可以做到这一点,否则我必须限制每个组合。
感谢您的帮助。

首先,简单类型定义的名称应该是“CarType”而不是“CarTypes”(基于该类型的元素或属性可以仅表示一种类型的汽车)

如果您想表示多种类型的汽车(例如“大众-宝马-奔驰”),则需要一个简单的类型列表()。该列表类型可以称为“CarTypes”,因为它可以表示多个空间分隔的汽车类型

您将发现,按照您描述的方式限制车型组合并不容易。更改数据模型(“ALL”和“default”不是真正的car类型)或在代码中实现这些规则可能更容易。不过,比我更了解XMLSchema1.1的人可能会有一个解决方案

"ALL" and "DEFAULT" -> ALLOWED