【发布时间】:2010-09-24 08:08:07
【问题描述】:
我正在尝试编写一些 Schematron 规则,其中一个应该检查元素是否在父元素的范围内是唯一的。所以我有一个示例 xml 结构:
<abc>
<elem id="qw0">
<a>1</a>
<a>2</a>
<a>3</a>
</elem>
<elem id="qw1">
<a>1</a>
<a>2</a>
<a>3</a>
<a>3</a>
</elem>
</abc>
我的规则应该检查每个元素的“a”元素是否是唯一的。在此特定示例中,对于具有 id="qw1" 的 elem,有两个值为“3”的元素“a”。这是不允许的。
到目前为止,我已经得出了这种规则:
<iso:pattern id="doc.abc">
<iso:title>checking ABC</iso:title>
<iso:rule context="elem">
<iso:assert test="count(a[. = current()]) = 1">TACs should be unique.</iso:assert>
</iso:rule>
</iso:pattern>
但这不起作用,因为它会查看整个文档,而不仅仅是 elem 的直接子代。
【问题讨论】:
标签: xml xml-validation schematron