在xsd中,有没有什么方法可以限制/限制xsd:choice。
我的要求是,如果状态标签的值为“已接受”,则下一个标签必须为“已接受”,或者在其他标签为“Reject”->“Reject”和“Paid”->“Paid”的情况下相同
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>发布于 2019-02-19 20:33:31
如果一个元素的验证规则依赖于前面元素的内容,则需要XSD1.1断言。
Altova、Saxon和Xerces支持XSD 1.1,但(例如)Microsoft的模式处理器不支持XSD 1.1。
https://stackoverflow.com/questions/54765001
复制相似问题