模式选择元素条件

时间:2011-10-13 18:16:54

标签: xsd schema

如何操纵choice关键字以满足以下条件:

(Subject && MessageBody) || (Subject || MessageBody)

我有:

<xs:choice>
    <xs:element ref="Subject"/>
    <xs:element ref="MessageBody"/>
</xs:choice>

但是,由于集合强制执行XOR条件,因此Subject和MessageBody不能在complexType中共存。

1 个答案:

答案 0 :(得分:0)

这是我最终提出的解决方案:

<xs:choice>
    <xs:sequence>
        <xs:element ref="engine"/>
        <xs:element ref="Type" minOccurs="0"/>
    </xs:sequence>
    <xs:sequence>
        <xs:element ref="Type"/>
        <xs:element ref="engine" minOccurs="0"/>
    </xs:sequence>
</xs:choice>