2011-11-05 64 views
6

要設置我使用的標註像這樣的XML元素的名稱:JAXB:從Java代碼更改XML元素的名稱?

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

我有兩個不同的web服務進行通信。一個展開了一個名爲customer_id的id元素,但另一個展開了名爲id的id元素。我通過創建具有相同屬性的第二個Customer類來解決問題。唯一不同的是,它使用了以下注釋

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

,它有一個拷貝構造函數拷貝從Customer1Customer2所有屬性。當我與第一個web服務進行通信時,我發送一個Customer1對象,另一個web服務獲得一個Customer2對象。

是否有可能只使用一個Customer對象,但將id屬性重命名爲webservice所期望的任何內容?

回答

5

備註:我是EclipseLink JAXB (MOXy)的領導和JAXB 2 (JSR-222)專家組的成員。

您可以使用MOXy JAXB中的外部映射文檔擴展將第二個映射應用到對象模型。這個映射文檔可以用來修改通過註釋提供的元數據,或者完全替代它。

進行了詳細的實施例

在一個單一的對象模型下面的例子中被映射到谷歌,雅虎天氣的API的結果: