2011-11-05 3 views
6

XML要素の名前を設定するには、次のような注釈を使用します。JAXB:XML要素の名前をJavaコードから変更しますか?

@XmlElement(name = "customer_id") 
public String getId(){} 

2つの異なるWebサービスと通信する必要があります。 customer_idという名前のid要素をエクスパートしますが、もう一方はid要素をidという名前で指定します。私は、同じ属性を持つ2番目のCustomerクラスを作成してこの問題を解決しました。唯一の違いは、次のアノテーション

@XmlElement(name = "id") 
public String getId(){} 

を使用し、Customer1からCustomer2までのすべての属性をコピーするコピーコンストラクタがあることです。最初のWebサービスと通信しているときにCustomer1オブジェクトを送信し、もう1つのWebサービスがCustomer2オブジェクトを取得します。

1つのCustomerオブジェクトを使用する可能性はありますか?id属性の名前をWebサービスが期待するものに変更しますか?

答えて

5

注:私はEclipseLink JAXB (MOXy)の先導者であり、JAXB 2 (JSR-222)専門家グループのメンバーです。

MOXy JAXBの外部マッピングドキュメント拡張を使用して、オブジェクトモデルに2番目のマッピングを適用できます。このマッピング文書は、アノテーションを介して提供されたメタデータを変更したり、完全に置き換えたりするために使用できます。

具体例

についての例では、単一のオブジェクトモデルは、GoogleやYahoo!天気のAPIの結果にマッピングされている下記

関連する問題