【问题标题】:Looking for XML validation language that can handle duplicate element names寻找可以处理重复元素名称的 XML 验证语言
【发布时间】:2018-05-02 04:34:28
【问题描述】:

XML Schema 不允许同一级别的重复元素名称。我正在寻找一种可以处理这种情况的 XML 验证语言。我不拥有因此无法更改的 XML 看起来像

<items>
    <item type="single">
        <name>Some single item</name>
    </item>

    <item type="group">
        <name>Some group item</name>
        <groups>
            …
        </groups>
    </item>

    <item ref="../item[0]"></item>
</items>

您可以选择三种不同类型的物品。

  • 它是一个单独的项目(由属性类型标识)并且有一个名称。
  • 它是一个组项(由属性类型标识),具有名称和组元素。
  • 是一个引用(由属性ref标识)

这只是一个简单的例子,XML 元素要复杂得多。 我想我正在寻找一种从多个元素定义中进行选择的 XML 验证语言。 例如如果单个类型的项目定义不适合,请尝试 group,如果不适合,请尝试 ref,如果仍然不适合,则无效。

因为我想验证不同版本的 XML 以发现它们之间的变化,所以规范非常严格非常重要。意思是,我只会使用像 optional 这样的数量规范,前提是它在 XML 中是可选的,而不是为了取悦验证器。

【问题讨论】:

标签: xml validation schema


【解决方案1】:

您可以使用 XML Schema (XSD) 1.1 通过使用“条件类型分配”功能(也称为 xs:alternative)来实现此目的。这允许您为 item 元素定义多种替代类型,根据元素属性的值进行选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-24
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多