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

标签 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 {
...
}

最佳答案

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

在本例中,我使用自己的 QName 作为参数之一创建 JAXBElement Foo.class.getName()

完全删除 JAXBElement 并将 Foo 传递给编码器解决了问题,使用 Foo.class.getSimpleName() 可能也可以工作

关于java - jaxb - 具有完整 java 包的编码根元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29632687/

相关文章:

XML 'name' 属性,以及带有 SelectNodes 的 XML 变量类型

java - 将java对象转换为XML?

java - JAXB 将复杂类型替换为原始类型

java - 在接收泛型作为参数的方法中使用泛型类

java - 线程 "main"java.lang.NoClassDefFoundError : org/springframework/core/metrics/ApplicationStartup 中出现异常

C# Linq to XML,当 child 满足条件时获取 parent

java - 为什么 JAX-WS 导出的对象需要默认构造函数?

Java数据结构只对相同的项目索引一次

java - 从字符串 S 的每个位置提取整数

编辑器中的 Android 布局奇怪的 TextView 行为