“任何一个或多个这些元素但必须至少为一个”的XML模式构造

我试图设置一个模式的一部分,就像一个“序列”,其中所有的子元素都是可选的,但至少有一个元素必须存在,并且可能有多个元素。

我尝试执行以下操作,但XMLSpy抱怨“内容模型包含元素< element name =”DateConstant“>和< element name =”DateConstant“>不能被唯一确定。

<xs:choice>
        <xs:sequence>
            <xs:element name="DateConstant"/>
            <xs:element name="TimeConstant"/>
        </xs:sequence>
        <xs:element name="DateConstant"/>
        <xs:element name="TimeConstant"/>
    </xs:choice>

这可以做到吗(如果是这样,怎么办)?

一些澄清:
我只想允许同一个名称的每个元素之一。可以有一个“DateConstant”和/或一个“TimeConstant”,但不能有两个。
Gizmo的答案符合我的要求,但对于更多的元素来说是不切实际的。
赫斯特的答案允许两个或多个同名的元素,我不想要的。

尝试这个:
<xs:choice>
  <xs:sequence>
    <xs:element name="Elem1" />
    <xs:element name="Elem2" minOccurs="0" />
    <xs:element name="Elem3" minOccurs="0" />
  </xs:sequence>
  <xs:sequence>
    <xs:element name="Elem2" />
    <xs:element name="Elem3" minOccurs="0" />
  </xs:sequence>
  <xs:element name="Elem3" />
</xs:choice>

这样做,您强制选择第一个元素,然后其余的是可选的,第二个元素和其余元素是可选的,第三个元素。

这应该做你想要的,我希望。

当然,您可以将子序列分组,以避免在每个序列中复制一个元素,如果你意识到你错过了一个

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇