XSD 属性のオプションを定義することは可能ですか? 要素「where」が属性「logic」を持ち、値「OR」または「AND」のみを持つことができるようにしたかったのです。
例:
<where logic="OR"> <!-- valid -->
...
</where>
<where logic="XPTO"> <!-- invalid -->
...
</where>
これは可能ですか?
はい、可能です。
まず、単純な型を定義する必要があります。
<xs:simpleType name="boolString">
<xs:restriction base="xs:string">
<xs:enumeration value="AND"/>
<xs:enumeration value="OR"/>
</xs:restriction>
</xs:simpleType>
次に、 typeの属性where
を含む要素を定義する必要があります。logic
boolString
<xs:element name="where">
<xs:complexType>
<xs:attribute name="logic" type="boolString" />
</xs:complexType>
</xs:element>