[
https://issues.apache.org/jira/browse/XERCESJ-1702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17526787#comment-17526787
]
Mukul Gandhi commented on XERCESJ-1702:
---------------------------------------
Apologies for delayed response.
For your original question, I think, you can write the DOM parsing code with
XercesJ as following,
System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
"org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
org.apache.xerces.util.SecurityManager sm = new
org.apache.xerces.util.SecurityManager();
sm.setEntityExpansionLimit(10000);
factory.setAttribute("http://apache.org/xml/properties/security-manager", sm);
DocumentBuilder builder = factory.newDocumentBuilder();
builder.parse(new File("file.xml"));
This code when executed, fails elegantly like following,
[Fatal Error] file.xml:36:29: The parser has encountered more than "10,000"
entity expansions in this document; this is the limit imposed by the
application.
> Parsing XML
> ------------
>
> Key: XERCESJ-1702
> URL: https://issues.apache.org/jira/browse/XERCESJ-1702
> Project: Xerces2-J
> Issue Type: Improvement
> Affects Versions: 2.12.0
> Reporter: Slava G
> Priority: Major
> Attachments: 1_e3e13f0e-7085-4000-a558-5d255ed7a944.xml,
> image-2018-09-16-15-42-10-121.png
>
>
> Hi,
> When I'm trying to parse XML document using :
> _DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();_
> _DocumentBuilder builder = factory.newDocumentBuilder();_
> _builder.parse(File)_
>
> The parsing is stuck in infinite loop:
> {{XMLDocumentScannerImpl(XMLScanner).scanAttributeValue(XMLString, XMLString,
> String, boolean, String) line: not available }}
> {{
> XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanAttribute(XMLAttributes)
> line: not available }}
> {{ XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanStartElement()
> line: not available }}
> {{ XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook() line: not
> available }}
> {{
> XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean)
> line: not available }}
> {{
> XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean)
> line: not available }}
> {{ XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line:
> not available }}
> {{ XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource)
> line: not available }}
> {{ DOMParser(XMLParser).parse(XMLInputSource) line: not available }}
> {{ DOMParser.parse(InputSource) line: not available }}
> {{ DocumentBuilderImpl.parse(InputSource) line: not available }}
> {{ DocumentBuilderImpl(DocumentBuilder).parse(File) line: 205}}
>
> Please see attached XML file that cause this issue.
> Thanks
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]