【问题标题】:XPath to count elements and compare the count to an integer (XSD 1.1)?XPath 对元素进行计数并将计数与整数进行比较(XSD 1.1)?
【发布时间】: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 个变量的类型?

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

【问题讨论】:

  • 我怀疑您犯了一些非常简单的错误,例如 (a) 将断言放在错误的元素上,或者 (b) 在 XPath 表达式中忘记使用命名空间前缀。我建议还将 recordCount 显式转换为 xs:integer,尽管我不确定这是否必要(这取决于 recordCount 的声明方式)。如果您将其简化为一个简单但可执行的示例,我们可以告诉您出了什么问题。
  • 谢谢 - 我以某种方式修复了它。我要结束这个问题了。

标签: xml validation xpath assert xsd-1.1


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 2022-11-11
    • 1970-01-01
    • 2017-06-21
    相关资源
    最近更新 更多