我理解并单独使用xs:choice
和xs:sequence
,但我不明白xs:choice
内的xs:sequence
是什么意思?
<xs:element name="sports-content">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="sports-metadata" />
<xs:element name="sports-event" />
<xs:element name="tournament" />
<xs:element name="schedule" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
确定。这个XML是有效的。
<sports-content>
<sports-metadata />
<tournament />
</sports-content>
此XML是否有效?
<sports-content>
<sports-metadata />
<tournament />
<sports-metadata />
</sports-content>
答案 0 :(得分:1)
XSD中的xs:sequence
元素是多余的;可以删除它而不影响任何XML文档的有效性。 xs:sequence
周围的xs:choice
会很有用,例如,如果您希望选择始终在序列之前或后跟一个或多个元素。
是的,您问题中的两个XML文档都对您的XSD有效(如果您删除xs:sequence
周围的xs:choice
包装,则会继续存在。