我的xml标签在下面给出
<ADCNT>
<EM>
<RUID>
</ADCNT>
通过提供EM
(RUID
),我可以将minOccurs = 1
代码设为强制性,也可以与<EM minOccurs=1>
相同。但我想如果它们都不存在则不要对模式验证xml。如果其中任何一个存在,则根据模式验证xml。表示如果不存在EM
标记,则必须存在RUID
标记,反之亦然。
那么,如何解决这个问题?
由于 Sunil kumar Sahoo
答案 0 :(得分:7)
您需要做出选择:
<xs:element name="ADCNT">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element ref="EM" minOccurs="1"/>
<xs:element ref="RUID" maxOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element ref="RUID" minOccurs="1"/>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
答案 1 :(得分:2)
嗨,我解决了问题。就像马丁和马丁一样。刘易斯提到但有点改变
以下是有效的架构:
<xsd:element name="ADCNT">
<xsd:complexType>
<xsd:choice minOccurs="1" maxOccurs="1">
<xsd:sequence>
<xsd:element name="EM" minOccurs = "1"/>
<xsd:element name="RUID" minOccurs = "0"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="RUID" minOccurs = "1"/>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
</xsd:element>