Xsd 模式选择元素条件

Xsd 模式选择元素条件,xsd,schema,Xsd,Schema,如何操纵choice关键字以满足以下条件: (Subject && MessageBody) || (Subject || MessageBody) 我有: <xs:choice> <xs:element ref="Subject"/> <xs:element ref="MessageBody"/> </xs:choice> 但是,Subject和MessageBody不能在complexType中共存,因为

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

(Subject && MessageBody) || (Subject || MessageBody)
我有:

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


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

这是我最后想到的解决方案:

<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>