我正在尝试通过JAXB编组/解组Java ValueObject类 .
为此,我发现它需要可以由ant自动创建的XML Schema文件和ObjectFactory类 .
如果是这样,它似乎能够在没有XML Schema文件和ObjectFactory的情况下进行编组/解组,因为它们可以自动创建 .
但只要我研究过,JAXB就不会提供方法了 .
你知道怎么办?
我不是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类,请在组合中思考 .
JAXB不需要架构,它旨在从Java对象开始 . 然后添加注释以自定义到XML的映射 . 以下是一些有用的入门示例:
查看我的博客,了解更多以Java对象开头的JAXB示例:
在我看来,你的理解是部分正确的 . 如果您从Java ValueObject类开始,那么就不需要架构......您可以参考Blaise指出的示例 . 但有时,ValueObject类不会给你 . 而是给出了一个xml架构定义 . 所以使用ANT就像你说的那样....你可以从xml架构生成ValueObject类 .
所以要迭代,在你的情况下,因为你已经有了ValueObject,所以不需要架构
3 回答
我不是JAXB的专家,但你可以创建这个构造函数的unmarshaller:
编辑 - 抱歉错误代码xD
在这个问题
Use JAXB unmarshalling in Weblogic Server
您可以看到我在XML的unmarshall中使用weblogic JAX-RPC自动生成的类 . 没有ObjectFactory,这对我有用......没有属性 . 我认为JAXB使用反射来做到这一点 . 尝试使用此构造函数取消编组 . 如果它不是解决方案,请使用注释(请遵循Blaise链接)如果无法修改ValueObject类,请在组合中思考 .
JAXB不需要架构,它旨在从Java对象开始 . 然后添加注释以自定义到XML的映射 . 以下是一些有用的入门示例:
查看我的博客,了解更多以Java对象开头的JAXB示例:
在我看来,你的理解是部分正确的 . 如果您从Java ValueObject类开始,那么就不需要架构......您可以参考Blaise指出的示例 . 但有时,ValueObject类不会给你 . 而是给出了一个xml架构定义 . 所以使用ANT就像你说的那样....你可以从xml架构生成ValueObject类 .
所以要迭代,在你的情况下,因为你已经有了ValueObject,所以不需要架构