我想让xsd用于以下示例xml:
<Action name="noname">
<choices>
<choice attrib1="hi" attrib2="hello" attrib3="test" />
<choice attrib1="hi1" attrib2="hello1" attrib3="test1" />
<choice attrib1="hi2" attrib2="hello2" attrib3="test3" />
<choice attrib1="hi" />
</choices>
</Action>
如上所示。我希望在没有“attrib2”和“attrib3”的情况下至少有一个“选择”。我怎么能实现呢?
答案 0 :(得分:0)
我不确定我完全理解,但您可以根据需要声明属性attrib1,并使用minOccurs =“1”声明选择元素。像这样:
<xs:element name="choices">
<xs:complexType>
<xs:sequence>
<xs:element name="choice" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="attrib1" type="xs:string" use="required"/>
<xs:attribute name="attrib2" type="xs:string"/>
<xs:attribute name="attrib3" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
但是,这可能会限制您的需求。所有选择元素都需要attrib1吗?