Общеизвестно, что если процессор XSLT не реализует потоковую передачу (функция, которая не является частью спецификаций W3C XSLT 1.0 или XSLT 2.0), весь проанализированный XML-документ, как правило, хранится в доступной оперативной памяти.
Существуют различные рекомендации для расчета необходимой доступной оперативной памяти для заданного размера строки XML-документа. Я знаю одно:
RAM ~= 5 * string-size
На основе этой формулы для документа XML с размером строки 50 ГБ необходимая оперативная память составляет около 250 ГБ, что в 15 раз превышает объем доступной ОЗУ (16 ГБ).
Вы можете попробовать использовать Saxon 9.4, который предлагает несколько потоковых расширений.
Примечание : Даже указанная в настоящее время функция потоковой передачи в W3C XSLT 3.0 WD не гарантирует, что каждое возможное преобразование может быть выполнено в потоковом режиме - - на самом деле, существуют существенные ограничения на то, какие выражения XPath может использовать преобразование XSLT, для того чтобы это преобразование гарантировало успешное выполнение в потоковом режиме.