我目前正在尝试通过 JAXB 解组 XML 文档。我已经在我的项目中生成了 JAXB 类,并且有一个用 @XmlRootElement 注释的根类。
不幸的是,当我尝试解组时,我收到以下异常:
java.lang.ClassCastException: javax.xml.bind.JAXBElement cannot be cast to a.b.Foo
我的 Foo 类具有正确的注释,据我所知,这应该能够将我的 XML 解组到 Foo 类中。
关于可能导致这种情况的任何想法?
编辑(澄清):我试图对 unmarshal 进行的调用是这样的:
Foo foo = (Foo)unmarshaller.unmarshal(input);
第二次更新 我不允许更新我们的模式,但下面是 'Foo' 元素的 XML 模式结构......
<xsd:element name="Foo" type="Foo_Type"/>
<xsd:complexType name="Foo_Type">
<!-- more schema definition here -->
</xsd:complexType>
然后,我通过 JAXB 绑定将 @XmlRootElement annotatino 添加到 Foo 类。我发现如果我将架构更改为这样:
<xsd:element name="Foo">
<xsd:complexType>
<!-- more schema definition here -->
</xsd:complexType>
</xsd:element>
一切正常,但再一次——我们不应该更新架构。