2011-07-06 29 views
4

我使用一個xslt文件來計算XML文件中具有特定值(以驗證唯一性)並存儲在xsl變量名稱中的元素數。這個XML文件是以編程方式創建的,元素數量的值有時可能超過100萬。xslt中count屬性的範圍是什麼?

由於這個高級別的範圍,我有點擔心xsl:variable或count屬性的範圍限制。

我不知道xsl:variable或count屬性的範圍是否有限(起始範圍和結束範圍)?

+1

好問題,+1。查看我的答案,瞭解詳盡的事實信息,以徹底回答您的問題。 –

回答

2

至少大多數實現將能夠處理帶符號的32位數字(約214左右),所以10萬將工作得很好。

+0

:非常感謝... – Saravanan

4

對於大多數XSLT處理器,那麼很可能會出現內存不足的長期存儲的XML文檔,你超過count()函數的極限了。大約1Gb是您可能能夠處理的最大值,並且不可能超過大約1000萬個節點。

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處理器實現了「大整數」類型(和大整數運算)。期望在撒克遜可以表示和使用任何整數,其表示符合可用內存是合理的。