JAXB 2.x:如何在不了解目标类的情况下解组XML?

basZero:

如果有一种方法,该怎么做,我想知道最优雅的方法。问题是:-假设您有一个抽象类Z-您有两个从Z继承的类:名为A和B。

您可以像这样封送任何实例(A或B):

JAXBContext context = JAXBContext.newInstance(Z.class);
Marshaller m = context.createMarshaller();
m.marshal(jaxbObject, ...an outputstream...);

在生成的XML中,您将看到它是哪种实例(A或B)。

现在,您如何解组像

JAXBContext jc = JAXBContext.newInstance(Z.class);
Unmarshaller u = jc.createUnmarshaller();
u.unmarshal(...an inputstream...)

我收到一个UnmarshalException的说法

"Exception Description: A descriptor with default root element {<my namespace>}<the root tag, e.g. A or B> was not found in the project]

javax.xml.bind.UnmarshalException”

那么如何进行解组,以便获得Z的实例,然后可以测试解组后的状态,它是什么?例如z instanceof A然后... z z instanceof B然后其他...等等。

感谢您的任何想法或解决方案。

我正在将JRE1.6与MOXy一起用作JAXB Impl。

basZero:

我的问题没有解决方案!

在任何情况下,您都必须准确告知解组员应解组的对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章