jaxb - 使用完整的java包编组的根元素

时间:2015-04-14 16:31:37

标签: java xml jaxb xjc maven-jaxb2-plugin

我正在使用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 {
...
}

1 个答案:

答案 0 :(得分:0)

对于任何人看到类似的问题:

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

完全删除JAXBElement并将Foo传递给marshaller解决了这个问题,使用Foo.class.getSimpleName()可能也可以正常工作