if(e.is(ID.DocumentStart)) {
elementNameStack.push(documentName);
outputStructAsElement = true;
} else if(e.is(ID.Scalar)) {
ScalarEvent es = (ScalarEvent) e;
if(isNextElementName && !lastTypeIsArray(typeStack)) {
String name = nameFormatter.format(es.getValue());
if(logger.isTraceEnabled()) {
logger.trace("Element name: " + name);
}
elementNameStack.push(name);
eventHandler.addNameEvent(es, name);
isNextElementName = false;
} else {
String elementName = typeStack.peek() == Type.SEQUENCE ? arrayElementName : elementNameStack.pop();
eventHandler.addValueEvent(es, elementName, es.getValue());
isNextElementName = true;
}
} else if(e.is(ID.MappingStart) || e.is(ID.SequenceStart)) {
CollectionStartEvent cse = (CollectionStartEvent) e;