xml - 如何确保 XML Schema 序列至少包含一个元素

标签 xml schema xsd

我的 xml 标签如下

<ADCNT>
      <EM>
      <RUID>
</ADCNT>

我可以通过提供 EM ( RUID ) 将 minOccurs = 1 标记设为强制标记,这与我可以对 <EM minOccurs=1> 做的事情相同。但是我想要如果它们都不存在,则不要根据架构验证 xml。如果存在其中任何一个,则根据架构验证 xml。意味着如果 EM 标签不存在,那么 RUID 标签必须存在,反之亦然。

那么,如何解决这个问题呢?

谢谢
苏尼尔·库马尔·萨胡

最佳答案

你需要做出选择:

<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> 

关于xml - 如何确保 XML Schema 序列至少包含一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1483197/

相关文章:

xml - 有没有办法让 Visual Studio 2010 支持 XML Schema 1.1

.net - 完整的 XML 架构验证

MySQL 数据库设计建议 - 使用连接

c# - 针对 xsd 和 CRLF 字符的 Xml 验证

java - Maven 构建在 xsd 模式验证中失败

python - BeautifulSoup get_text 不会去除所有标签和 JavaScript

c# - XmlConvert.ToSingle 内的奇怪 -0f

xml - 聚合似乎与 VersionOne RESTful API 中的数据不匹配

solr - apache solr 删除复制字段

c# - 如何删除 xmlns :xsd attribute but keep xmlns:xsi