我正在尝试通过 JAXB 编组/解组 Java ValueObject 类。
为此,我发现它需要 ant 可以自动创建的 XML Schema 文件和 ObjectFactory 类。
如果是这样,它似乎能够在没有 XML Schema 文件和 ObjectFactory 的情况下进行编组/解组,因为它们可以自动创建。
但只要我研究过,不知何故 JAXB 并没有提供方法。
你知道有什么办法吗?
我正在尝试通过 JAXB 编组/解组 Java ValueObject 类。
为此,我发现它需要 ant 可以自动创建的 XML Schema 文件和 ObjectFactory 类。
如果是这样,它似乎能够在没有 XML Schema 文件和 ObjectFactory 的情况下进行编组/解组,因为它们可以自动创建。
但只要我研究过,不知何故 JAXB 并没有提供方法。
你知道有什么办法吗?
JAXB 不需要模式,它被设计为从 Java 对象开始。然后添加注释以自定义到 XML 的映射。以下是一些有用的入门示例:
查看我的博客以获取更多以 Java 对象开头的 JAXB 示例:
在我看来,你的理解是部分正确的。如果你是从Java ValueObject 类开始,那么就不需要schema……你可以参考Blaise 所指的例子。但有时,ValueObject 类并没有提供给您。而是给出了一个 xml 模式定义。因此,如您所说,使用 ANT....您可以从 xml 模式生成 ValueObject 类。
因此,在您的情况下进行迭代,因为您已经拥有 ValueObject,因此不需要架构
我不是 JAXB 专家,但您可以使用此构造函数创建解组器:
编辑-对不起错误的代码xD
JAXBContext jaxbContext = JAXBContext.newInstance(Class1.class, Class2.class, ...);
Marshaller marshaller = jaxbContext.createMarshaller();
在这个问题
您可以看到我在 XML 的解组中使用了 weblogic JAX-RPC 自动生成的类。没有 ObjectFactory,这对我有用……没有属性。我想 JAXB 使用反射来做到这一点。尝试使用此构造函数解组。如果它不是解决方案,请使用注释(按照 Blaise 链接)如果您无法修改 ValueObject 类,请考虑组合。