0

我需要检查siteId整个文档中是否包含唯一记录 ID。例如:站点 11111 提交 id 为 1 和 2 和 3 和 4 的记录。站点 2222 提交记录 3 和 4。

好的:

<submission>
<site>
<siteId>11111</siteId>
<record><id>1</id></record>
<record><id>2</id></record>
</site>
<site>
<siteId>2222</siteId>
<record><id>3</id></record>
<record><id>4</id></record>
</site>
<site>
<siteId>1111</siteId>
<record><id>3</id></record>
<record><id>4</id></record>
</site>
</submission>

坏的:

<submission>
<site>
<siteId>11111</siteId>
<record><id>1</id></record>
<record><id>2</id></record>
</site>
<site>
<siteId>2222</siteId>
<record><id>3</id></record>
<record><id>4</id></record>
</site>
<site>
<siteId>1111</siteId>
<record><id>3</id></record>
<record><id>4</id></record>
<record><id>4</id></record>
</site>
</submission>
4

2 回答 2

0

您的问题可以通过以下代码解决:-

 <iso:pattern id="site">
   <iso:rule context="id">
       <iso:assert test="count(id) != count(distinct-values(ancestor::site/record/id))">BAD</iso:assert>
   </iso:rule>
</iso:pattern>
于 2014-11-25T09:26:33.123 回答
0

使用 count() 和 disting-values() 的测试模式取自这里:http://xml-buddy.com/xmltribune/?p=274应该是您正在寻找的。

于 2013-04-20T09:52:41.100 回答