JAXB XJC代码生成 - ObjectFactory类不完整

时间:2009-09-14 16:09:35

标签: java xsd schema jaxb xjc

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

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

<complexType name="my-type">
   ...
</complexType>

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

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

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

相关问题