【问题标题】:What is the range of count attribute in xslt?xslt中count属性的范围是多少?
【发布时间】:2011-09-29 07:56:31
【问题描述】:

我正在使用一个 xslt 文件来计算 XML 文件中具有特定值(以验证唯一性)并存储在 xsl 变量名中的元素的数量。此 xml 文件是以编程方式创建的,元素数量的值有时可能会超过 100 万。

由于这个高级别范围,我有点担心 xsl:variable 或 count 属性的范围限制。

不知道 xsl:variable 或 count 属性是否有限制范围(起始范围和结束范围)?

【问题讨论】:

  • 好问题,+1。请参阅我的回答,了解详尽回答您问题的确切事实信息。

标签: xml xslt xslt-2.0


【解决方案1】:

对于大多数 XSLT 处理器,您很可能在超过 count() 函数的限制之前很久就用完了存储 XML 文档的内存。大约 1Gb 大约是您可能能够处理的最大值,并且不太可能超过大约 1000 万个节点。

【讨论】:

    【解决方案2】:

    XPath 2.0 使用 XML Schema 规范中定义的类型 xs:integer

    3.3.13 整数

    [定义:]整数是·派生· 通过固定的值从十进制 ·fractionDigits·为0和 不允许尾随小数 观点。这导致标准 整数的数学概念 数字。 整数的·值空间·无限集 {...,-2,-1,0,1,2,...}。 ·基础型· 整数是十进制的。

    因此,只有 XSLT 处理器的特定实现才能潜在地为其实现的 xs:integer 类型的值空间定义任何上限。

    例如,Saxon XSLT 2.0 处理器实现了“大整数”类型(和大整数算法)。可以合理地期望任何整数,只要其表示适合可用内存,就可以在 Saxon 中表示和使用。

    【讨论】:

      【解决方案3】:

      【讨论】:

        【解决方案4】:

        至少大多数实现都能够处理带符号的 32 位数字(大约 214 千万),所以 100 万就可以了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多