Hi Keith,
Wire, Keith C wrote:
> Hi All,
>
> I'm using the StaxDriver to gain support of namespaces in Xstream.
Do you have an idea, which StaX implementation is selected? The StaXDriver
itself will only use the default implementation of your environment and that
might change with the Java libraries on your classpath.
> Really, I care that it ignores them when unmarshalling xml. Anyhow, when
> unmarshalling XML using the StaxDriver / StaxReader I discovered it
> ignored CDATA tags.
This is strange in so far as XStream contains unit tests with CDATA and
there all directly supported StAX implementations (BEA RI, Woodstox, Java 6
Runtime) run these tests successfully.
> Upon investigation I tracked down the issue to the
> following method on the StaxReader:
>
> protected int pullNextEvent() {
> try {
> switch(in.next()) {
> case XMLStreamConstants.START_DOCUMENT:
> case XMLStreamConstants.START_ELEMENT:
> return START_NODE;
> case XMLStreamConstants.END_DOCUMENT:
> case XMLStreamConstants.END_ELEMENT:
> return END_NODE;
> case XMLStreamConstants.CHARACTERS:
> return TEXT;
> case XMLStreamConstants.COMMENT:
> return COMMENT;
> default:
> return OTHER;
> }
> } catch (XMLStreamException e) {
> throw new StreamException(e);
> }
> }
>
> The easy fix is to add "case XMLStreamConstants.CDATA" to also return
> "TEXT". Due to the constructor of the StaxReader calling moveDown() I am
> unable to Override the "pullNextEvent()" method to solve this on my own.
There's no need. See Javadoc to javax.xml.stream.events.Characters. It
handles also CDATA.
> I attempted to create a JIRA ticket for this issue but was unable to
> request an account.
Alas, you're right, the description to create an account no longer works :-/
You'll have to create now an account at xircles.codehaus.org.
> Please let me know if there is an alternative Driver to use that will
> allow me to ignore/drop namespaces while unmarshalling that also supports
> unmarshalling and marshaling CDATA.
Maybe you can create a little unit test that describes your behavior. A
short xstream.fromXML("<string><![CDATA[ ... ]]>") should be enough to
reveal a problem.
Regards,
Jörg
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email