2017-02-17 73 views
0

这是我的XML文件的草图:XPath对元素进行计数并将计数与整数(XSD 1.1)进行比较?

<file recordCount="n"> 
<record/> 
<record/> 
<record/> <!-- ...etc... --> 
</file> 

我所做的XML模式(版本1.1)断言的file元素上的@recordCount(正整数)必须等于包含record元素数的计算在file

这是我能想出的最好的:

test="count(record) eq @recordCount" 

这是目前失败无论我把@recordCount测试XML文件(给予nonZeroInteger)和然而,许多(有效)record元素我有...

我假设我错过了一些真正基本的东西,比如节点路径或者要比较的2个变量的类型是test

可能相关:XSD 1.1 Assert to Count and Compare Elements

+1

我怀疑你犯了一些非常简单的错误,比如(a)把断言放在错误的元素上,或者(b)忘记在XPath表达式中使用命名空间前缀。我建议也做一个显式的recordCount转换为xs:integer,但我不确定这是必不可少的(它取决于如何声明recordCount)。如果你将它简化为一个简单但可执行的例子,我们可以告诉你什么是错的。 –

+0

谢谢 - 我以某种方式修复它。我正在结束这个问题。 – Michael

回答

0

此XPath是正确的。它现在在IDE中按照预期运行。如果我了解它为什么没有正确验证,我会更新问题。

相关问题