我需要检查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>

===============>>#1 票数:0

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

===============>>#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>

  ask by jorge translate from so

未解决问题?本站智能推荐:

1回复

检查同级元素中具有多个属性的重复数据-Schematron

如标题中所述,我想找到一种方法来检查XML同级元素中的重复属性数据。 我已经知道了类似的问题[here] 检查同级元素-Schematron中是否有重复的属性数据 ,而我已经尝试过了,但对我来说不起作用。 我的情况是检查多个属性。 我需要<test>元素在ZDX和
2回复

Schematron验证多个元素

假设我有一个XML文档定义: 我想要一个负责检查每个人是否居住在伦敦的schematron。 我试过了: 但是,只要有一个人居住在伦敦,这将返回true。 有没有办法告诉schematron对与XPathcondition人员/城市匹配的每个元素进行测试?
2回复

Schematron验证元素值的计数

假设我有一个XML文档定义: 我想验证在每个<ELEMENT>的上下文中 ,其每个Equipement / EqID最多由4个Location / Sensor / EqID引用。 在此示例中,因为对EqID'2'引用了3次,而对EqId'1'引用了一次,所以可以。
2回复

Schematron验证和唯一性

我正在尝试编写一些Schematron规则,并且其中一个应该检查,如果元素在父元素的范围内是唯一的。 因此,我有一个示例xml结构: 我的规则应检查每个元素的“ a​​”元素是否唯一。 在此特定示例中,对于id =“ qw1”的 elem ,有两个值为“ 3”的元素“ a”。 这不
1回复

Schematron检查中的意外行为

我有以下检查 文档看起来像这样: 现在的问题是,检查1和2会对每个innerElement进行检查,并产生一个错误,这意味着如果我有3次类型2,我从前3个检查中都会得到3个错误。 我想要的是确保恰好一个innerElement具有type1并确保其至少具有1个dataEleme
1回复

Schematron对可选元素的计算测试

我需要在XML发票中创建一组Schematron规则测试计算。 问题在于某些被测试的元素是可选的,并且当被测试的元素被mjissing时我的规则将失败。 如何指定类似内容:“如果元素存在则测试值”? XML实例摘录: 我的Schematron检查了计算: 如果缺少amo
1回复

Schematron,用于检查另一个节点的内容是否与值匹配的测试节点

我有一组记录,需要检查以确保节点存在,但前提是该记录不是特定类型。 例如: 我想说一条记录如果没有<preview>字段,则无效,除非它是音频或视频文件,在这种情况下,没有<preview>字段是可以的。 但是这样的事情不起作用: 有什么方法可以使
1回复

Schematron-基于其位置的元素验证

我正在使用Schematron进行一些业务规则验证。 我的xml数据如下所示: 当前上下文设置为labtests/test/observation如下所示: 我想在具有code/@code="TT500"为code/@code="TT500"的第一个<observatio
2回复

如何测试Schematron中不存在的元素

它只是我还是不可能通过Schematron寻找不存在的元素。 我似乎也无法找到任何关于此的文档。 采取以下规则: 并将其应用于以下文档: 理论上这应该失败,但我发现它没有。 任何人都知道这是否是正确的行为?
1回复

验证具有多个schematron文件的XML文件

我有一个要使用Schematron验证的XML文件。 该文件是长文件。 因此,为了简化工作,我制作了单独的Schematron规则文件。 每个Schematron文件都会验证XML文件的不同部分。 如果已成功使用所有Schematron文件验证了XML文件,则XML文件有效。 否则,它