次の2つのクラスがあるとしましょう:
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 を使用すると、「名前の衝突です。2 つのクラスには、uri と名前が inner の XML タイプがあります。」というメッセージが表示されます。
内部クラス @XmlTransient の少なくとも 1 つを作成すると、問題が解決されることを私は知っています。私が知りたいのは、この違いが JAXB 標準にどのように関係しているか、また、デフォルトの JAXB 実装のように MOXy がこれらのクラスを無視するようにする他の方法があるかどうかです。