我使用XJC命令行工具从我的XSD模式文件生成Java类。 ObjectFactory类生成不完整的内容。它产生的装饰没有JAXBElement<Type> createType
创建方法。JAXB XJC代码生成 - ObjectFactory类不完整
这可能是什么原因? Registers Dominik
我使用XJC命令行工具从我的XSD模式文件生成Java类。 ObjectFactory类生成不完整的内容。它产生的装饰没有JAXBElement<Type> createType
创建方法。JAXB XJC代码生成 - ObjectFactory类不完整
这可能是什么原因? Registers Dominik
只有JAXB2 XJC生成的绑定中的某些类型需要JAXBElement
包装。具有@XMLRootElement
注释的那些类型不需要包装器,因此对象工厂不生成一个。
您的模式中有元素还是只有类型?这通常是原因。
JAXB生成从仅当XSD同时包含complexType定义和使用的complexType名称相同的单独的元件定义,例如对象实例创建的JAXBElement工厂方法:
<complexType name="my-type">
...
</complexType>
<element name="my-type" type="tns:my-type"/>
在这种情况下,JAXB不会使用@XmlRootElement批注注释生成的类,但会提供从对象实例创建JAXBElement所需的工厂方法。这样,您可以轻松地将非根元素类型的实例作为根元素序列化。
因此,除了打算用作顶层元素的任何complexType定义外,您还应该添加一个具有相同名称的“元素”声明,并且ObjectFactory将生成预期的工厂方法。