2011-03-10 5 views
3

JAXB XMLエンティティの2つのリンクを別のクラスにマップする方法はありますか? 例:JAXB XMLエンティティの2つのリンクを別のクラスにマップする方法はありますか?

<restresource> 
    <atom:link rel="http://myuri/rels/author" href="http://myuri/users/42" title="That's me"/> 
    <atom:link rel="http://myuri/rels/customer" href="http://myuri/customers/4711" title="John Smith"/> 
</restresource> 

私はクラスのユーザーとクラス顧客に異なるXmlAdapterの持つ二つ目にXmlAdapterのと最初のリンクをマッピングしたいと思います。私はEclipseLink JAXB (MOXy)から@XmlPathでそれをしようとしました。しかし、 "rel"で条件付きのパスを定義することはできないので、多くの実験から何の結果も得られませんでした。私は、アダプタとの組み合わせでしかできないことを理解しています。そうしないと、定義は双方向ではないからです。 それを実現する方法はありますか?

答えて

1

MOXy@XmlPathに拡張機能を追加しました。このユースケースをマップしやすくしました。 EclipseLinkは2.3で、次の操作を行うことができるようになります:

@XmlPath("atom:link[@rel='http://myuri/rels/author']) 
@XmlJavaTypeAdapter(AuthorAdapter.class) 
private Author author; 

@XmlPath("atom:link[@rel='http://myuri/rels/customer']) 
@XmlJavaTypeAdapter(CustomerAdapter.class) 
private Customer customer; 

あなたからのEclipseLink 2.3.0毎晩ダウンロード(3月22日に開始)のいずれかをダウンロードすることにより、今日のうち、このfeatureを試すことができます。

私もEclipseLink JAXB (MOXy)のリリースバージョンと互換性のあるアプローチを一緒に入れしようとします。

+0

Cool!これをチェックするのを楽しみにしています。 – MyMacAndMe

+0

@MyMacAndMe - この機能は、EclipseLink 2.3.0ストリームで使用できるようになりました。私は詳細で私の答えを更新しました。 –

関連する問題