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

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

有帮助吗?

解决方案

只有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定义之外,您应该只添加一个带有相同名称的<!> quot;元素<!>“ - declaration,而ObjectFactory将生成预期的工厂方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top