我想寫一些Schematron規則,其中一個應該檢查,如果元素在父元素的範圍內是唯一的。所以我有一個xml結構的例子:Schematron驗證和唯一性
<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」元素是否是唯一的。在此具體示例中,對於elem與id =「qw1」有兩個元素「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的直接孩子。