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() 可能也有效
我正在使用 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() 可能也有效