users@jaxb.java.net

ClassCastException in StAXEventConnector.handleCharacters

From: Vyacheslav Zholudev <vyacheslav.zholudev_at_gmail.com>
Date: Thu, 13 Oct 2011 07:13:06 -0700 (PDT)

Hi,

I want to unmarshal second level XML elements using JAXB 2, and I'm using
Stax API to parse an XML document.
My code is:
        XMLInputFactory factory = XMLInputFactory.newInstance();
        FileReader fr = new FileReader(fileName);
        XMLEventReader xmler = factory.createXMLEventReader(fr);
        EventFilter filter = new EventFilter() {
            public boolean accept(XMLEvent event) {
                return event.isStartElement();
            }
        };
        
        XMLEventReader reader = factory.createFilteredReader(xmler, filter);
        reader.nextEvent(); //skipping the root element

        JAXBContext ctx = JAXBContext.newInstance(Foo.class);
        Unmarshaller um = ctx.createUnmarshaller();
        while (reader.peek() != null) {
            Object o = um.unmarshal(xmler);
            if (o instance of Foo) {...}
        }
        fr.close();

I'm getting the following exception:

Exception in thread "main" java.lang.ClassCastException:
com.sun.xml.internal.stream.events.EntityReferenceEvent cannot be cast to
javax.xml.stream.events.Characters
        at
com.sun.xml.internal.stream.events.DummyEvent.asCharacters(DummyEvent.java:117)
        at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.StAXEventConnector.handleCharacters(StAXEventConnector.java:196)
        at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.StAXEventConnector.bridge(StAXEventConnector.java:127)
        at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:392)
        at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:368)
.....

And a problematic XML element contains an entity in one of text nodes that
is defined in the included DTD.

How can I solve the problem? (Unmarshaling using SAX API works just fine)

Thanks in advance!
-- 
View this message in context: http://old.nabble.com/ClassCastException-in-StAXEventConnector.handleCharacters-tp32645643p32645643.html
Sent from the java.net - jaxb users mailing list archive at Nabble.com.