我使用一個xslt文件來計算XML文件中具有特定值(以驗證唯一性)並存儲在xsl變量名稱中的元素數。這個XML文件是以編程方式創建的,元素數量的值有時可能超過100萬。xslt中count屬性的範圍是什麼?
由於這個高級別的範圍,我有點擔心xsl:variable或count屬性的範圍限制。
我不知道xsl:variable或count屬性的範圍是否有限(起始範圍和結束範圍)?
我使用一個xslt文件來計算XML文件中具有特定值(以驗證唯一性)並存儲在xsl變量名稱中的元素數。這個XML文件是以編程方式創建的,元素數量的值有時可能超過100萬。xslt中count屬性的範圍是什麼?
由於這個高級別的範圍,我有點擔心xsl:variable或count屬性的範圍限制。
我不知道xsl:variable或count屬性的範圍是否有限(起始範圍和結束範圍)?
看說明書的這一部分:http://www.w3.org/TR/xpath/#numbers
對於大多數XSLT處理器,那麼很可能會出現內存不足的長期存儲的XML文檔,你超過count()函數的極限了。大約1Gb是您可能能夠處理的最大值,並且不可能超過大約1000萬個節點。
的XPath 2.0使用XML Schema規範中定義的類型xs:integer
:
3.3.13整數
[定義:]通過固定的值整數·衍生· 從十進制 ·fractionDigits·爲0, 不允許小數點後 點。這導致標準的 數學概念的整數 數字。 整數 的·值空間·是無限集 {...,-2,-1,0,1,2,...}。整數的基本類型爲 爲十進制。
因此,只有XSLT處理器的特定實現可能會爲其實現的xs:integer
類型的值空間定義任何上限。例如,Saxon XSLT 2.0處理器實現了「大整數」類型(和大整數運算)。期望在撒克遜可以表示和使用任何整數,其表示符合可用內存是合理的。
好問題,+1。查看我的答案,瞭解詳盡的事實信息,以徹底回答您的問題。 –