XSD:验证组中是否只有一个元素存在
XSD: Validate that only a single element in a group is present
给定以下 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>
我要验证的内容,英文:
items 元素包含 item 元素是可以接受的
引用 def2 和另一个引用 def3 的项目元素。他们
在 group1 中不排他。
items 元素可以包含一个引用 def1 的 item 元素和另一个引用 def4 的 item 元素。他们属于不同的群体,因此他们的排他性并不冲突。
不能接受 items 元素包含一个引用 def1 的 item 元素和另一个引用组属性等于的任何其他定义的 item 元素组1。 Def1 是它的组独有的,因此在同一组中不能有任何其他项目引用定义
我会用什么 xsd structures/elements 来执行这样的规范?
这超出了 XSD 1.0 的功能。您将需要使用不同的验证技术,例如 XSD 1.1 或 Schematron。
给定以下 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>
我要验证的内容,英文:
items 元素包含 item 元素是可以接受的 引用 def2 和另一个引用 def3 的项目元素。他们 在 group1 中不排他。
items 元素可以包含一个引用 def1 的 item 元素和另一个引用 def4 的 item 元素。他们属于不同的群体,因此他们的排他性并不冲突。
不能接受 items 元素包含一个引用 def1 的 item 元素和另一个引用组属性等于的任何其他定义的 item 元素组1。 Def1 是它的组独有的,因此在同一组中不能有任何其他项目引用定义
我会用什么 xsd structures/elements 来执行这样的规范?
这超出了 XSD 1.0 的功能。您将需要使用不同的验证技术,例如 XSD 1.1 或 Schematron。