【问题标题】:JAXB XJC code generation - ObjectFactory class is incompleteJAXB XJC 代码生成 - ObjectFactory 类不完整
【发布时间】:2010-11-28 04:41:15
【问题描述】:

我使用 XJC 命令行工具从我的 XSD 模式文件生成 Java 类。 ObjectFactory 类生成不完整的内容。它生成没有JAXBElement<Type> createType装饰的创建方法。

这可能是什么原因? 问候 多米尼克

【问题讨论】:

    标签: java xsd schema jaxb xjc


    【解决方案1】:

    只有 JAXB2 XJC 生成的绑定中的某些类型需要 JAXBElement 包装器。那些带有@XMLRootElement 注释的类型不需要包装器,因此对象工厂不会生成包装器。

    【讨论】:

      【解决方案2】:

      只有当您的 XSD 同时包含 complexType 定义和使用具有相同名称的 complexType 的单独元素定义时,JAXB 才会生成工厂方法,这些方法会从对象实例创建 JAXBElement,例如:

      <complexType name="my-type">
         ...
      </complexType>
      
      <element name="my-type" type="tns:my-type"/>
      

      在这种情况下,JAXB 不会使用 @XmlRootElement 注释对生成的类进行注释,但会提供从对象实例创建 JAXBElement 所需的工厂方法。这样,您可以轻松地将非根元素类型的实例序列化为根元素。

      因此,除了您打算用作顶级元素的任何 complexType 定义之外,您只需添加一个具有相同名称的“元素”声明,ObjectFactory 将生成预期的工厂方法。

      【讨论】:

        猜你喜欢
        • 2011-09-20
        • 2011-01-10
        • 1970-01-01
        • 1970-01-01
        • 2021-10-12
        • 1970-01-01
        • 1970-01-01
        • 2015-09-01
        • 2012-09-25
        相关资源
        最近更新 更多