XSD属性的选项

时间:2012-05-16 14:23:00

标签: xml xsd schema

是否可以定义XSD属性的选项?我希望元素“where”具有属性“logic”并且只能具有值“OR”或“AND”。

示例:

<where logic="OR"> <!-- valid -->
    ...
</where>

<where logic="XPTO"> <!-- invalid -->
    ...
</where>

这可能吗?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。

首先,你必须定义一个简单的类型:

<xs:simpleType name="boolString">
   <xs:restriction base="xs:string">
      <xs:enumeration value="AND"/>
      <xs:enumeration value="OR"/>
   </xs:restriction>
</xs:simpleType>

然后,您必须定义一个where元素,其中包含logic类型为boolString的属性:

<xs:element name="where">
   <xs:complexType>
      <xs:attribute name="logic" type="boolString" />
   </xs:complexType>
</xs:element>