Re: [xsl] How to transform a 5GB input XML document?

Subject: Re: [xsl] How to transform a 5GB input XML document?
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 29 Jan 2025 11:51:48 -0000
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.

Current Thread