我正在尝试编写一些 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, 有两个元素 "a" 的值为 "3"。这不应该被允许。
到目前为止,我已经得出了这种规则:
<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的直接子代。