in doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java [111:192]
protected void handleStartTag(XmlPullParser parser, Sink sink)
throws XmlPullParserException, MacroExecutionException {
isEmptyElement = parser.isEmptyElementTag();
SinkEventAttributeSet attribs = getAttributesFromParser(parser);
if (parser.getName().equals(DOCUMENT_TAG.toString())) {
// Do nothing
return;
} else if (parser.getName().equals(HEAD.toString())) {
if (!inHead) // we might be in head from a <properties> already
{
this.inHead = true;
sink.head(attribs);
}
} else if (parser.getName().equals(TITLE.toString())) {
if (hasTitle) {
LOGGER.warn("<title> was already defined in <properties>, ignored <title> in <head>.");
try {
parser.nextText(); // ignore next text event
} catch (IOException ex) {
throw new XmlPullParserException("Failed to parse text", parser, ex);
}
} else {
sink.title(attribs);
}
} else if (parser.getName().equals(AUTHOR_TAG.toString())) {
sink.author(attribs);
} else if (parser.getName().equals(DATE_TAG.toString())) {
sink.date(attribs);
} else if (parser.getName().equals(META.toString())) {
handleMetaStart(parser, sink, attribs);
} else if (parser.getName().equals(BODY.toString())) {
if (inHead) {
sink.head_();
this.inHead = false;
}
sink.body(attribs);
} else if (parser.getName().equals(SECTION_TAG.toString())) {
handleSectionStart(Sink.SECTION_LEVEL_1, sink, attribs, parser);
} else if (parser.getName().equals(SUBSECTION_TAG.toString())) {
handleSectionStart(Sink.SECTION_LEVEL_2, sink, attribs, parser);
} else if (parser.getName().equals(SOURCE_TAG.toString())) {
verbatim();
attribs.addAttributes(SinkEventAttributeSet.SOURCE);
sink.verbatim(attribs);
} else if (parser.getName().equals(PROPERTIES_TAG.toString())) {
if (!inHead) // we might be in head from a <head> already
{
this.inHead = true;
sink.head(attribs);
}
}
// ----------------------------------------------------------------------
// Macro
// ----------------------------------------------------------------------
else if (parser.getName().equals(MACRO_TAG.toString())) {
handleMacroStart(parser);
} else if (parser.getName().equals(PARAM.toString())) {
handleParamStart(parser, sink);
} else if (!baseStartTag(parser, sink)) {
if (isEmptyElement) {
handleUnknown(parser, sink, TAG_TYPE_SIMPLE);
} else {
handleUnknown(parser, sink, TAG_TYPE_START);
}
LOGGER.warn(
"Unrecognized xdoc tag <{}> at [{}:{}]",
parser.getName(),
parser.getLineNumber(),
parser.getColumnNumber());
}
}