in src/main/java/org/apache/maven/xinclude/stax/XIncludeStreamReader.java [99:142]
public int next() throws XMLStreamException {
int event = super.next();
if (event == START_ELEMENT) {
contextStack.peek().depth++;
String xmlLang = this.xmlLangs.peek();
String xmlBase = firstElementInContext ? contextStack.peek().location : this.xmlBases.peek();
firstElementInContext = false;
for (int i = 0; i < getAttributeCount(); i++) {
if ("xml".equals(getAttributePrefix(i))) {
switch (getAttributeLocalName(i)) {
case "lang":
xmlLang = getAttributeValue(i);
break;
case "base":
xmlBase = getAttributeValue(i);
break;
}
}
}
this.xmlLangs.push(xmlLang != null ? xmlLang : "");
this.xmlBases.push(xmlBase != null ? xmlBase : "");
String namespace = getNamespaceURI();
String localName = getLocalName();
if (XINCLUDE_NAMESPACE.equals(namespace) && XINCLUDE_INCLUDE.equals(localName)) {
processInclude();
return next();
}
} else if (event == END_ELEMENT) {
contextStack.peek().depth--;
this.xmlBases.pop();
this.xmlLangs.pop();
} else if (event == END_DOCUMENT) {
while (event == END_DOCUMENT) {
if (contextStack.size() > 1) {
contextStack.pop();
event = next();
} else {
break;
}
}
firstElementInContext = false;
}
return event;
}