我在使用XSLT转换的java应用程序下工作.我有很多document()调用,所以有可能有java.lang.OutOfMemory异常(我实际上有),因为在每次调用document()函数之后,文档都会被缓存.
在http://xml.apache.org/xalan-j/faq.html#faq-N102F9我读到有可能
增加堆内存大小,这不是我的解决方案.我也尝试使用似乎不支持的增量变换.
来自撒克逊文件:
saxon:discard-document()
saxon:discard-document($doc as document-node()) ==> document-node()
This function removes a document from Saxon’s internal document pool.
The document remains in memory for the time being,but will be
released from memory by the Java garbage collector when all references
to nodes in the document tree have gone out of scope. This has the
benefit of releasing memory,but the drawback is that if the same
document is loaded again during the same transformation,it will be
reparsed from the source text,and different node identifiers will be
allocated. The function returns the document node that was supplied as
an argument,allowing it to be used in a call such as
select=”saxon:discard-document(document(‘a.xml’))”.
如果您需要一个如何使用saxon的示例:discard-document,请告诉我,我可以发布一个.