Я прочитал несколько статей о преимуществах использования синтаксического анализа SAX для анализа XML-файлов в Java с помощью DOM. Тот, который обращается больше всего меня (как обсуждалось here) является то, чтоИсключение без памяти при синтаксическом анализе большого XML-файла в синтаксическом анализаторе SAX
Sax подходит для больших XML-файлов и SAX-парсер не загружает файл XML в целом в памяти.
Но теперь, как я уже писал парсер с использованием SAX для вывода объектов из файла XML для большого файла почти 1,4 Гб он генерирует следующее исключение.
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; The parser has encountered more than "64,000" entity expansions in this document; this is the limit imposed by the application.
В чем проблема с памятью, если файл в целом не загружен в память.
Как я могу решить проблему?
Это не обязательно фактическое ограничение памяти, но защитная мера против DOS-атак, таких как [этот] (https://en.wikipedia.org/wiki/Billion_laughs). Если ваш входной XML юридически содержит много объектов, вы можете увеличить этот предел в своем парсере. Посмотрите на его документацию. – Tomalak
Что вы предлагаете мне сделать с этой защитной мерой? –
Я думал, что так сказал. – Tomalak