Improved StAX<->SAX bridge
Improved the SAX to StAX (and vice-versa) bridge exposed via StaxUtils. The old integration had some issues with namespace declaration attributes, brought to light in a XMLUnit upgrade. Issue: SPR-11549
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2013 the original author or authors.
|
||||
* Copyright 2002-2014 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -509,12 +509,22 @@ public class CastorMarshaller extends AbstractMarshaller implements Initializing
|
||||
|
||||
@Override
|
||||
protected void marshalXmlEventWriter(Object graph, XMLEventWriter eventWriter) throws XmlMappingException {
|
||||
marshalSaxHandlers(graph, StaxUtils.createContentHandler(eventWriter), null);
|
||||
ContentHandler contentHandler = StaxUtils.createContentHandler(eventWriter);
|
||||
LexicalHandler lexicalHandler = null;
|
||||
if (contentHandler instanceof LexicalHandler) {
|
||||
lexicalHandler = (LexicalHandler) contentHandler;
|
||||
}
|
||||
marshalSaxHandlers(graph, contentHandler, lexicalHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException {
|
||||
marshalSaxHandlers(graph, StaxUtils.createContentHandler(streamWriter), null);
|
||||
ContentHandler contentHandler = StaxUtils.createContentHandler(streamWriter);
|
||||
LexicalHandler lexicalHandler = null;
|
||||
if (contentHandler instanceof LexicalHandler) {
|
||||
lexicalHandler = (LexicalHandler) contentHandler;
|
||||
}
|
||||
marshalSaxHandlers(graph, StaxUtils.createContentHandler(streamWriter), lexicalHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -21,10 +21,10 @@ import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.Reader;
|
||||
import java.io.Writer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.nio.CharBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.xml.stream.XMLEventReader;
|
||||
import javax.xml.stream.XMLEventWriter;
|
||||
import javax.xml.stream.XMLStreamReader;
|
||||
@@ -142,13 +142,21 @@ public class XmlBeansMarshaller extends AbstractMarshaller {
|
||||
@Override
|
||||
protected void marshalXmlEventWriter(Object graph, XMLEventWriter eventWriter) {
|
||||
ContentHandler contentHandler = StaxUtils.createContentHandler(eventWriter);
|
||||
marshalSaxHandlers(graph, contentHandler, null);
|
||||
LexicalHandler lexicalHandler = null;
|
||||
if (contentHandler instanceof LexicalHandler) {
|
||||
lexicalHandler = (LexicalHandler) contentHandler;
|
||||
}
|
||||
marshalSaxHandlers(graph, contentHandler, lexicalHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void marshalXmlStreamWriter(Object graph, XMLStreamWriter streamWriter) throws XmlMappingException {
|
||||
ContentHandler contentHandler = StaxUtils.createContentHandler(streamWriter);
|
||||
marshalSaxHandlers(graph, contentHandler, null);
|
||||
LexicalHandler lexicalHandler = null;
|
||||
if (contentHandler instanceof LexicalHandler) {
|
||||
lexicalHandler = (LexicalHandler) contentHandler;
|
||||
}
|
||||
marshalSaxHandlers(graph, contentHandler, lexicalHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,8 +27,11 @@ import java.lang.reflect.Constructor;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.xml.stream.*;
|
||||
import javax.xml.stream.XMLEventReader;
|
||||
import javax.xml.stream.XMLEventWriter;
|
||||
import javax.xml.stream.XMLStreamException;
|
||||
import javax.xml.stream.XMLStreamReader;
|
||||
import javax.xml.stream.XMLStreamWriter;
|
||||
import javax.xml.transform.stream.StreamSource;
|
||||
|
||||
import com.thoughtworks.xstream.MarshallingStrategy;
|
||||
@@ -59,11 +62,9 @@ import com.thoughtworks.xstream.io.xml.XppDriver;
|
||||
import com.thoughtworks.xstream.mapper.CannotResolveClassException;
|
||||
import com.thoughtworks.xstream.mapper.Mapper;
|
||||
import com.thoughtworks.xstream.mapper.MapperWrapper;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import org.xml.sax.ContentHandler;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.XMLReader;
|
||||
@@ -627,7 +628,11 @@ public class XStreamMarshaller extends AbstractMarshaller implements Initializin
|
||||
@Override
|
||||
protected void marshalXmlEventWriter(Object graph, XMLEventWriter eventWriter) throws XmlMappingException {
|
||||
ContentHandler contentHandler = StaxUtils.createContentHandler(eventWriter);
|
||||
marshalSaxHandlers(graph, contentHandler, null);
|
||||
LexicalHandler lexicalHandler = null;
|
||||
if (contentHandler instanceof LexicalHandler) {
|
||||
lexicalHandler = (LexicalHandler) contentHandler;
|
||||
}
|
||||
marshalSaxHandlers(graph, contentHandler, lexicalHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user