Disable logging in Java Xerces (“[Fatal Error] :1:1: Content is not allowed in prolog.”)

StackOverflow https://stackoverflow.com/questions/1575925

  •  21-09-2019
  •  | 
  •  

Question

My application expects that it will sometimes try to parse invalid XML documents. I currently catch the "SAXParseException: Content is not allowed in prolog." exception, which works fine. However, Xerces still feels the need to print it's own message to the console:

[Fatal Error] :1:1: Content is not allowed in prolog.

Is there any way to disable this?

Was it helpful?

Solution

I believe it is printing to System.out or System.err by default. There is an ErrorHandler interface you can set on the Parser if you're interacting with the Xerces classes directly.

Otherwise, you can try setting the property org.apache.xerces.impl.Constants.ERROR_REPORTER_PROPERTY on the SAXParser with an instance of XMLErrorReporter

OTHER TIPS

I just recently came across the same need. Setting the ErrorHandler to null suppresses the Fatal Error print line.

parser.setErrorHandler(null);

The equivalent when using org.w3c.dom.ls.LSParser is

parser.getDomConfig().setParameter("error-handler", null);

I had this problem today and it turned out to be a standard configuration parameter that I found only after reading your answers here. Thanks.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top