3

假设我有以下两个类:

package example.model;

public class Model {
    public static class Inner {}

    public Other prop;
}

package example.model;

public class Other {
    public static class Inner {}

    public String prop;
}

我创建了一个 JAXB 上下文JAXBContext.newInstance(example.model.Model.class)

使用 Java 6 的默认 JAXB 实现,这无需任何注释即可工作,并且生成的模型不会提及"inner"。使用 EclipseLink 我得到“名称冲突。两个类的 XML 类型带有 uri 和名称内部。”

我知道至少制作一个内部类@XmlTransient 可以解决这个问题。我想知道这种差异与 JAXB 标准有何关系,而且我猜还有其他方法可以让 MOXy 像默认的 JAXB 实现那样忽略这些类。

4

1 回答 1

2

这似乎是EclipseLink JAXB (MOXy)中的一个错误。我们目前正在修复 EclipseLink 2.3.3 和 2.4.0 流。您可以使用以下链接跟踪我们的进度:

一旦修复可用,您将能够从以下链接下载夜间构建:

解决方法

正如您所提到的,您可以用 . 标记静态内部类@XmlTransient

package example.model;

public class Model {
    @XmlTransient        
    public static class Inner {}

    public Other prop;
}
于 2012-03-15T19:33:28.667 回答