限制/限制xsd:choice

问题描述 投票:0回答:1

在xsd中有什么办法我们可以限制/限制xsd:choice。 我的要求是,如果状态标签的值为“已接受”,那么下一个标签必须为“已接受”或在其他情况下为相同拒绝 - >拒绝和付费 - >付费

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>
xml xsd xsd-validation
1个回答
1
投票

在任何情况下,一个元素的验证规则取决于先前元素的内容,您需要XSD 1.1断言。

Xto 1.1由Altova,Saxon和Xerces支持,但不是(例如)由Microsoft的架构处理器支持。

© www.soinside.com 2019 - 2024. All rights reserved.