【发布时间】:2017-07-06 18:09:58
【问题描述】:
这是我的 XML 文件的草图:
<file recordCount="n">
<record/>
<record/>
<record/> <!-- ...etc... -->
</file>
我创建了 XML Schema(1.1 版)断言file 元素@recordCount(一个正整数)必须等于@987654326 中包含的record 元素的计算数量@。
这是我能想到的最好的:
test="count(record) eq @recordCount"
无论我在@recordCount(给定nonZeroInteger)中放入多少(有效)record 元素,这目前失败测试 XML 文件...
我假设我在这里缺少一些非常基本的东西,例如节点路径或要在 test 中比较的 2 个变量的类型?
【问题讨论】:
-
我怀疑您犯了一些非常简单的错误,例如 (a) 将断言放在错误的元素上,或者 (b) 在 XPath 表达式中忘记使用命名空间前缀。我建议还将 recordCount 显式转换为 xs:integer,尽管我不确定这是否必要(这取决于 recordCount 的声明方式)。如果您将其简化为一个简单但可执行的示例,我们可以告诉您出了什么问题。
-
谢谢 - 我以某种方式修复了它。我要结束这个问题了。
标签: xml validation xpath assert xsd-1.1