我不明白我应该如何定义我的复杂类型。
今天我有这个:
<xsd:element name="batch_requests_callbacks">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="document_id" minOccurs="1" maxOccurs="1"/>
<xsd:choice minOccurs="0" maxOccurs="1">
<xsd:element ref="filename"/>
<xsd:element ref="error"/>
</xsd:choice>
<xsd:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="version" default="1.0"/>
</xsd:complexType>
</xsd:element>
但是,标签在 xsd:sequence
中的顺序很重要,我不希望出现这种行为。
如果我使用 xsd:all
我没有标签顺序,但我不能将 maxOccurs
设置为无限制,我不能使用 xsd:choice
在 xsd:all
我有什么选择?
最佳答案
您可以使用 <xsd:choice minOccurs="0" maxOccurs="unbounded">
而不是你的 xsd:sequence
为了模拟无序元素验证。这绕过了 xsd:all
的限制.
关于xml - xsd :sequence behavior inside a xsd:all? 的替代方案是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14361550/