![](/img/trans.png)
[英]Make an element optional/mandatory based on another element using xsd:assert
[英]How to make a tag Mandatory or optional based on value of another tag in XSD1.0
我目前有以下XSD。
<xsd:element name="ProcessingCode" minOccurs="0" maxOccurs="1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="000000" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="CardExpirationDate" minOccurs="0" maxOccurs="1">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<xsd:pattern value="\d{4}" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
現在,僅當ProcessingCode值為999999時,才需要將CardExpirationDate設置為強制,否則將其保留為可選。 好心提醒。
斷言是一種XSD 1.1機制,因此,您的文章的原始標題談論在XSD 1.0中使用斷言沒有多大意義。
如果要在XSD 1.1中進行這樣的聲明,那么該聲明將繼續存在於ProcessingCode和CardExpirationDate的共同祖先元素上。 如果我們假設這些是同級元素,則公共父元素將有一個斷言,例如
<xs:assert test="ProcessingCode != '999999' or exists(CardExpirationDate)"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.