<ADCNT>
<EM>
<RUID>
</ADCNT>
我的XML标签被我可以让EM
标签的强制性也同样的事情,我可以通过提供minOccurs = 1
与RUID
做(<EM minOccurs=1>
)。但是我希望如果他们两个都不存在,那么不要根据模式验证xml。如果其中任何一个存在,则根据模式验证xml。意思是如果EM
标签不存在,则RUID
标签必须存在,反之亦然。
那么,如何解决这个问题呢?
感谢 苏尼尔·库马尔Sahoo
<ADCNT>
<EM>
<RUID>
</ADCNT>
我的XML标签被我可以让EM
标签的强制性也同样的事情,我可以通过提供minOccurs = 1
与RUID
做(<EM minOccurs=1>
)。但是我希望如果他们两个都不存在,那么不要根据模式验证xml。如果其中任何一个存在,则根据模式验证xml。意思是如果EM
标签不存在,则RUID
标签必须存在,反之亦然。
那么,如何解决这个问题呢?
感谢 苏尼尔·库马尔Sahoo
您好我得到了这个问题解决了。 。它喜欢的方式马丁v Lowis提及,但
下面一点点的变化是有效的架构:
<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>
你需要做出选择:
<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>
哈哈,你几乎贴完全相同的架构(我嵌入'EM'和'RUID '元素直接代替使用类型引用)几秒钟之前,我做了。删除我的帖子。 你会期待有一种更优雅的方式来说出“这些中的任何一个元素”,但我从来没有听说过。 – Joren 2009-09-27 09:56:53
感谢您的帮助。我解决了问题。