我正在尝试通过JAXB编组/解组Java ValueObject类。
为此,我发现它需要XML Schema文件和ObjectFactory类 这可以由ant自动创建。
如果是这样,它似乎能够在没有XML Schema的情况下进行封送/解组 file和ObjectFactory,因为它们可以自动创建。
但是只要我研究过,JAXB就不会提供方法了。
你知道怎么办?
答案 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类,请在组合中思考。