【发布时间】:2012-05-18 12:14:02
【问题描述】:
我使用 xsd 中的 xjc 生成了 java 类,其中根元素是 A 类型为 AType。
jaxb 生成的根元素是AType 并且没有生成类A。
当我尝试解组与该 xsd 对应的 xml 并转换 JaxbElement 时,它会引发转换异常:
片段:
JAXBContext jaxbContext = JAXBContext.newInstance(Class.forName("AType"));
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
AType aType = (AType) unmarshaller.unmarshal(new ByteArrayInputStream(xmlString.getBytes()));
例外:
java.lang.ClassCastException: javax.xml.bind.JAXBElement
其他情况的相同代码执行正确并成功反序列化。
我怎样才能找到unmarshal() 给我什么类型的对象?我不知道在这种情况下出了什么问题,我尝试打印出 jaxbElement 中的字段,但它不是很有用!
【问题讨论】:
-
你有没有在调试中逐步完成它?
标签: java xml xsd jaxb unmarshalling