2014-01-07 49 views
2

我期待有一些有條件的編組完成與jaxb。事情是這樣的:多JaxB編組配置文件

Class A{ 

//Only marshall when condition X applies 
public String fieldOne; 

//Only marshall when condition Y applies 
public String fieldTwo; 

//Always marshall 
public String fieldThree; 

} 

基本上我都使用相同的模型2種不同的Web服務方法,但我需要發送到在每個這些Web服務方法的不同的信息。

到目前爲止,我最好的選擇是創建一個自定義的XMLJavaTypeAdapter來驗證一些條件邏輯。當我不需要對象時,適配器會返回null,當我確實需要它時,它會自行返回。

我期待着看看是否有人有更好的選擇。我的jaxb上下文相當複雜,已經有幾層適配器。

在此先感謝。

回答

2

到目前爲止,我的最佳選擇是創建一個自定義XMLJavaTypeAdapter ,它驗證一些條件邏輯。當我不需要該對象時,適配器將返回空值 ,當我確實需要編組時,它會自動返回 。

我一直在那裏,做得很快,它變得非常混亂。如果您可以使用MOXy(我的帖子標記爲moxy),那麼您可以使用XmlNamedObjectGraph註釋來創建您的序列化實例時包含的元素的命名配置文件。

Blaise Doughan(MOXy項目組負責人)explains it better than I can

Blaise的博客文章顯示瞭如何使用註釋,但他也寫了a page on the EclipseLink wiki,它顯示瞭如何以編程方式執行它。

+0

這個伎倆,謝謝。 – levacjeep