On 29/01/2025 12:45, Roger L Costello costello@xxxxxxxxx wrote:
Hi Folks,
My input XML document is 5GB. I need to transform the document; the
resulting output XML document will be at least that size.
Have you transformed huge XML documents? How did you do it?
XSLT requires the entire input XML document be loaded into memory; my
experience is the XSLT processor fails --regardless of how much heap space is
provided--with a Java out-of-memory error when given a 5GB sized input
document.
Assertion: XSLT is unsuitable for transforming huge XML documents. <-- I
hope you will tell me this assertion is false and will then explain how to use
XSLT to process huge XML documents.
Roger,
XSLT 3.0 has been around since 2017, it supports streamed XSLT with a
subset of XSLT 3, the only implementation is Saxon EE, see
https://www.saxonica.com/html/documentation12/streaming/index.html.
Then there still is STX/Joost https://stx.sourceforge.net/, no longer
maintained these days I think but not under a commercial license and
quite capable to perform some streamed processing, even if the language
is only surface related to XSLT.
|