没有任何配置的JAXB编组/解组

时间:2010-12-22 08:42:26

标签: xml jaxb marshalling unmarshalling

我正在尝试通过JAXB编组/解组Java ValueObject类。

为此,我发现它需要XML Schema文件和ObjectFactory类 这可以由ant自动创建。

如果是这样,它似乎能够在没有XML Schema的情况下进行封送/解组 file和ObjectFactory,因为它们可以自动创建。

但是只要我研究过,JAXB就不会提供方法了。

你知道怎么办?

3 个答案:

答案 0 :(得分:2)

JAXB不需要架构,它旨在从Java对象开始。然后添加注释以自定义到XML的映射。以下是一些有用的示例:

查看我的博客,了解更多以Java对象开头的JAXB示例:

答案 1 :(得分:0)

我认为您的理解部分正确。如果您从Java ValueObject类开始,则不需要架构......您可以参考Blaise指出的示例。 但有时,ValueObject类不会给你。而是给出了一个xml架构定义。因此,正如您所说的那样使用ANT ......您可以从xml架构生成ValueObject类。

所以要迭代,在你的情况下,因为你已经有了ValueObject,所以不需要架构

答案 2 :(得分:0)

我不是JAXB的专家,但您可以使用此构造函数创建unmarshaller:

编辑 - 抱歉错误代码xD

JAXBContext jaxbContext = JAXBContext.newInstance(Class1.class, Class2.class, ...);
Marshaller marshaller = jaxbContext.createMarshaller();

在这个问题中

Use JAXB unmarshalling in Weblogic Server

您可以看到我在XML的unmarshall中使用了一个weblogic JAX-RPC自动生成的类。没有ObjectFactory,这对我有用......没有属性。我认为JAXB使用反射来做到这一点。尝试使用此构造函数取消编组。如果它不是解决方案,请使用注释(请遵循Blaise链接)如果无法修改ValueObject类,请在组合中思考。