3

次の注釈が与えられます

@XmlElements({
 @XmlElement(name = "first", type = First.class),
 @XmlElement(name = "second", type = Second.class),
 @XmlElement(name = "third", type = Third.class),
 @XmlElement(name = "fourth", type = Fourth.class),
 @XmlElement(name = "fifth", type = Fifth.class),
 @XmlElement(name = "sixth", type = Sixth.class),
 @XmlElement(name = "seventh", type = Seventh.class)})
private List<Dimension> dimensions = new ArrayList<>();

そして、いくつかの面白いレガシーロジックのために、Third.class用のアダプターを提供する必要があります。

@XmlJavaTypeAdapter(ThirdAdapter.class)
public class Third implements Dimension

ただし、ThirdAdapterが呼び出されることはありません。@XmlJavaTypeAdapterは@XmlElementsと互換性がありますか?または、これに対するより良い解決策はありますか?

4

1 に答える 1

2

注: 私はEclipseLink JAXB(MOXy)のリーダーであり、JAXB(JSR-222)エキスパートグループのメンバーです。

これは、JAXBリファレンス実装のバグのようです。これはEclipseLinkJAXB(MOXy)のバグでもありましたが、EclipseLink2.4.0ストリームで修正しました。次の場所からリリース候補をダウンロードできます。

jaxb.properties

MOXyをJAXBプロバイダーとして使用するにはjaxb.properties、ドメインモデルと同じパッケージで呼び出されるファイルを次のエントリで追加する必要があります。

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
于 2012-06-19T20:47:10.630 に答える