Jython и SAX Parser: разрешено не более 64000 объектов?
Я сделал простой тест xml.sax
синтаксический анализатор в Jython для большого файла XML (800 МБ) и обнаружил следующую ошибку:
Traceback (most recent call last):
File "src/project/xmltools.py", line 92, in <module>
sys.exit(main())
File "src/project/xmltools.py", line 87, in main
parser.parse(open(argv[1], "r"))
File "/amd.home/home/user/workspace/jython-2.5.2/Lib/xml/sax/drivers2/drv_javasax.py", line 146, in parse
self._parser.parse(JyInputSourceWrapper(source))
File "/amd.home/home/user/workspace/jython-2.5.2/Lib/xml/sax/drivers2/drv_javasax.py", line 59, in fatalError
self._err_handler.fatalError(_wrap_sax_exception(exc))
File "/amd.home/home/user/workspace/jython-2.5.2/Lib/xml/sax/handler.py", line 38, in fatalError
raise exception
xml.sax._exceptions.SAXParseException: <unknown>:1:1: The parser has encountered more than "64,000" entity expansions in this document; this is the limit imposed by the application.
Что случилось с этим "пределом, наложенным приложением", и как я могу его переопределить?
Я пытался использовать библиотеку Java XML nu.xom
и столкнулся с той же ошибкой.
1 ответ
Решение
Попробуйте установить entityExpansionLimit
значение свойства выше 64000. См. http://download.oracle.com/javase/1.5.0/docs/guide/xml/jaxp/JAXP-Compatibility_150.html.