考虑具有属性的元素。此属性只能具有来自枚举的值。
是否可以通过 enumeration 的值来限定这些元素的儿子?
有一个例子,因为我的英语不是很好:)
<xs:element minOccurs="0" name="datas">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element maxOccurs="1" name="data">
<xs:complexType>
<xs:attribute name="tag" type="xs:string" use="required"/>
<xs:attribute name="expr" type="xs:string" use="required"/>
<xs:attribute name="format" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="choice1"/>
<xs:enumeration value="choice2"/>
<xs:enumeration value="choice3"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<!-- HERE IS SOME SONS -->
<xs:element name="element1" />
<xs:element name="element2" />
<xs:element name="element3" />
</xs:element>
</xs:sequence>
</xs:complexType>
如果我选择“choice1”,我会要求 element1,禁止 element2 / element3。如果我选择“choice2”,我将需要元素 2,等等......
你知道这是否可能吗?
感谢你的回答