in doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java [103:143]
public void parse(Reader source, Sink sink, String reference) throws ParseException {
init();
Reader src = source;
// 1 first parsing if validation is required
if (isValidate()) {
String content;
try {
content = IOUtils.toString(new BufferedReader(src));
} catch (IOException e) {
throw new ParseException("Error reading the model", e);
}
new XmlValidator().validate(content);
src = new StringReader(content);
}
// 2 second parsing to process
try {
XmlPullParser parser = addDefaultEntities
? new MXParser(EntityReplacementMap.defaultEntityReplacementMap)
: new MXParser();
parser.setInput(src);
// allow parser initialization, e.g. for additional entities in XHTML
// Note: do it after input is set, otherwise values are reset
initXmlParser(parser);
parseXml(parser, sink);
} catch (XmlPullParserException ex) {
throw new ParseException("Error parsing the model", ex, ex.getLineNumber(), ex.getColumnNumber());
} catch (MacroExecutionException ex) {
throw new ParseException("Macro execution failed", ex);
}
setSecondParsing(false);
init();
}