【问题标题】:xml schema - substitutiongroup with one element appear no more than oncexml 模式 - 具有一个元素的替换组出现不超过一次
【发布时间】:2018-06-07 18:45:10
【问题描述】:

我正在尝试创建一个不同类型的元素列表,但我需要限制其中一种类型出现不超过一次。这是一个例子:

<links>
    <linktype1 id="1" />
    <linktype3 id="2" />
    <linktype2 id="3" />
    <linktypespecific id="4" />
    <linktype3 id="5" />
</links>

我想允许任何数量的 linktype1、linktype2、linktype3 以任何顺序出现,但 linktypespecific 可以出现在链接中的任何位置,但不能超过一次。

目前我使用替代组实现了所有类型,但它不允许限制特定链接类型的外观数量。

有没有可能用 XML Schema 来实现?

【问题讨论】:

    标签: xml schema


    【解决方案1】:

    我认为这在 XSD 1.0 中是不可能的。

    您可以在 XSD 1.1 中使用 xs:any 内容模型来执行此操作,该模型列出了允许的元素,并使用 maxOccurs 子句定义每个元素可能出现的频率。

    您不能对替换组执行此操作 - 如果一个元素在替换组中,那么它可以与替换组头完全互换。但是(在 XSD 1.1 中)您可以使用替换组和断言来限制基数。

    【讨论】:

    • 最后决定如果存在 linktypespecific 总是放在最前面也不错,所以使用带有 linktypespecific 的序列和 linktype1、linktype2 和 linktype3 的选择重写 XSD。
    猜你喜欢
    • 2021-06-18
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多