寻找可以处理重复元素名称的XML验证语言

时间:2018-05-01 18:29:03

标签: xml validation schema

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验证语言。 例如如果单个类型的项目定义不合适,请尝试分组,如果不合适,请尝试参考,如果仍然不合适,则无效。

由于我想验证XML的不同版本以找到它们之间的变化,因此规范非常严格,这一点非常重要。这意味着,只有在XML中可选的可选时,我才会使用数量规格,而不是取悦验证者。

1 个答案:

答案 0 :(得分:0)

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