Repect StaxDriver in XStreamMarshaller::marshalXmlStreamWriter

This commit makes sure that namespaces configured via the streamDriver
property are respected.
This commit is contained in:
qxo 2017-11-29 17:44:05 +08:00 committed by Arjen Poutsma
parent 974d326bf5
commit 247d2bb0ae
1 changed files with 7 additions and 1 deletions

View File

@ -694,7 +694,13 @@ public class XStreamMarshaller extends AbstractMarshaller implements BeanClassLo
@Override @Override
protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException { protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException {
try { try {
doMarshal(graph, new StaxWriter(new QNameMap(), streamWriter, this.nameCoder), null); final StaxWriter writer;
if( streamDriver instanceof StaxDriver){
writer = ((StaxDriver)streamDriver).createStaxWriter(streamWriter);
}else{
writer = new StaxWriter( new QNameMap(),streamWriter, this.nameCoder);
}
doMarshal(graph,writer, null);
} }
catch (XMLStreamException ex) { catch (XMLStreamException ex) {
throw convertXStreamException(ex, true); throw convertXStreamException(ex, true);