ограничить / ограничить выбор xsd: - PullRequest
0 голосов
/ 19 февраля 2019

Есть ли какой-либо способ в xsd, который мы можем ограничить / ограничить выбором xsd:
Мое требование - если у тега состояния есть значение «Принят», то следующий тег должен быть «Принят» или такой же в случае других.> Отклонить и оплатить-> Платный

XSD составляет

<xsd:element name="Status"  minOccurs="1">
    <xsd:simpleType>
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Reject" />
            <xsd:enumeration value="Accepted" />
            <xsd:enumeration value="Paid" />
        </xsd:restriction>
    </xsd:simpleType>
</xsd:element>  

<xsd:choice>
    <xsd:element name="Reject" type="CommentsOnly" minOccurs="0"/>
    <xsd:element name="Accepted" type="AcceptanceOrPaid" minOccurs="0"/>
    <xsd:element name="Paid" type="AcceptanceOrPaid" minOccurs="0"/>
</xsd:choice>

1 Ответ

0 голосов
/ 19 февраля 2019

В любой ситуации, когда правила проверки для одного элемента зависят от содержимого предыдущих элементов, вам необходимы утверждения XSD 1.1.

XSD 1.1 поддерживается Altova, Saxon и Xerces, но не поддерживается (например,) процессором схемы Microsoft.

...