XSD:验证组中只有一个元素存在

时间:2016-04-04 22:38:58

标签: xml xpath xsd xsd-validation

给出以下xml结构:

<root>
  <definitions>
    <definition key="def1" group="group1" isExclusiveInGroup="true" />
    <definition key="def2" group="group1" isExclusiveInGroup="false" />
    <definition key="def3" group="group1" isExclusiveInGroup="false" />
    <definition key="def4" group="group2" isExclusiveInGroup="true" />
  </definitions>
  <items>
    <item key="item1" definitionKey="def1" />
    <item key="item2" definitionKey="def4" />
  </items>
</root>

我想用英语验证:

  1. 可以接受item元素包含item元素 引用def2和引用def3的另一个item元素。他们 在group1中不是唯一的。

  2. 可以接受items元素包含引用def1的item元素和引用def4的另一个item元素。他们是不同群体的一部分,因此他们的排他性不会发生冲突。

  3. Def1是它的专属组,因此不能有任何其他项引用同一组中的定义

  4. 我将使用哪些xsd结构/元素来强制执行此类规范?

1 个答案:

答案 0 :(得分:1)

这超出了XSD 1.0的功能。您将需要使用不同的验证技术,例如XSD 1.1或Schematron。