public void openStartElement(XPathFragment xPathFragment, NamespaceResolver namespaceResolver) {
super.openStartElement(xPathFragment, namespaceResolver);
try {
String namespaceURI = xPathFragment.getNamespaceURI();
if(namespaceURI == null) {
NamespaceContext namespaceContext = xmlStreamWriter.getNamespaceContext();
if(null == namespaceContext) {
xmlStreamWriter.writeStartElement(xPathFragment.getLocalName());
} else {
String defaultNamespace = namespaceContext.getNamespaceURI(Constants.EMPTY_STRING);
xmlStreamWriter.writeStartElement(Constants.EMPTY_STRING, xPathFragment.getLocalName(), Constants.EMPTY_STRING);
if(defaultNamespace != null && defaultNamespace.length() > 0 ) {
xmlStreamWriter.writeDefaultNamespace(Constants.EMPTY_STRING);
}
}
} else {
String prefix = getPrefixForFragment(xPathFragment);
if(prefix == null) {
prefix = Constants.EMPTY_STRING;
}
xmlStreamWriter.writeStartElement(prefix, xPathFragment.getLocalName(), namespaceURI);
if(xPathFragment.isGeneratedPrefix()){
namespaceDeclaration(xPathFragment.getPrefix(), xPathFragment.getNamespaceURI());
}
}
writePrefixMappings();
} catch(XMLStreamException e) {
throw XMLMarshalException.marshalException(e);
}
}