xslt中count属性的范围是多少?

时间:2011-07-06 05:22:50

标签: xml xslt xslt-2.0

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

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

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

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

  

3.3.13整数

     

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

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

例如,Saxon XSLT 2.0处理器实现了“Big Integer”类型(和Big Integer算术)。可以合理地预期任何表示适合可用内存的整数都可以在Saxon中表示和使用。

答案 2 :(得分:3)

请看规范的这一部分:http://www.w3.org/TR/xpath/#numbers

答案 3 :(得分:2)

至少大多数实现都能够处理带符号的32位数字(大约214左右),所以10万就能正常工作。