2013-05-08 44 views
0

起初我還沒有在我的POJO註釋的所有字段,這些都呈現爲JAXB註釋來抑制SOAP響應的xmlns

<fieldName>value</fieldName>

在SOAP響應偉大的現在我有一個要求即使值爲空也顯示該字段;然後,我添加註釋這些字段爲 @XmlElement(的nillable =真)

現在在我的SOAP響應,它是作爲顯示:

<fieldName xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> 

我不想顯示XSI,XMLNS等在我的肥皂響應中;我怎麼做?

任何鏈接顯示jaxb在字段級別,級別等所有註釋,?

回答

1

嘛,首先要知道,

<fieldName/> 

<fieldName xsi:nil="true"/> 

有本質的不同。第一個將使用""填充字符串字段。後者將用null填充它。

不幸的是,XmlAdapters對值爲null的字段的行爲依賴於JAXB實現 - JDK實現根本不會調用適配器。

一個解決方案將使用@XmlAccessorType(PROPERTY)並實現獲取者返回""而不是null

Eclipselink JAXB (MOXy)似乎能夠處理它。

我在這裏找到類似的討論:XmlAdapter not working as expected in JAXB RI