Условие выбора элемента схемы - PullRequest
0 голосов
/ 13 октября 2011

Как можно манипулировать ключевым словом выбора для выполнения следующего условия:

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

У меня есть:

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

Однако Subject и MessageBody не могут сосуществовать в complexType, так как набор принудительно выполняет условие XOR.

1 Ответ

0 голосов
/ 14 октября 2011

Вот решение, которое я наконец-то придумал:

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