考虑具有属性的元素。此属性只能包含枚举值。
是否可以通过枚举值来调节这些元素的子?
有一个例子,因为我的英语不是很好:)。
<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,在禁止的元素/元素3中使用。如果我选择“choice2”,我将需要元素2等等....
你知道是否可能吗?
感谢您的回答
答案 0 :(得分:1)
这是XSD 1.1中的一项新功能(目前最近发布的Saxon和Xerces版本支持)。这是众所周知的XSD 1.0限制,它无法做到这一点。