jaxb - 具有完整 java 包的编组根元素

jaxb - marshalled root element with full java package

我正在使用 jaxb maven 插件开发一个项目。 (maven 3.2.2, maven-jaxb2-plugin:0.8.1, java8)

我用

<bindingIncludes>
    <bindingInclude>...</bindingInclude>
</bindingIncludes>

用于指定生成的包 类 和

<generateDirectory>${project.build.directory}/generated-sources/xjc-dir
</generateDirectory>

用于指定输出目录。

我试图了解什么会导致编组器以两种不同的方式工作:

实际:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<com.test.app.Foo>
...
</com.test.app.Foo>

预计:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Foo>
...
</Foo>

完整 java 包仅对根元素可见。

提前致谢

编辑:

生成代码

package com.test.app;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    (...)
})
@XmlRootElement(name = "Foo")
public class Foo {
...
}

看到类似问题的任何人:

在这种情况下,我使用自己的 QName 创建 JAXBElement,并将其用作参数之一 Foo.class.getName()

完全删除 JAXBElement 并将 Foo 传递给编组器解决了这个问题,使用 Foo.class.getSimpleName() 可能也有效