如何防止生成xml' nil' soap webservice客户端中的元素?

时间:2014-09-30 13:32:57

标签: java spring jaxb cxf jax-ws

我有一个自动生成的soap webservice客户端(使用cxf),并且某些元素被标记为可选。

如果我没有设置这些元素,发送到webservice的XML请求有很多元素,如下所示:

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

如果wsdl包含:

,则会生成这些内容
minOccurs="0" nillable="true"

如何防止生成这些nil元素? 可能web服务本身不需要这些信息,因为当我使用soapUI并发送纯xml请求剥离nil元素时,请求仍然有效。

我的绑定文件:

<jaxb:globalBindings generateElementProperty="false" />

那么,如何防止在发送过程中生成它们?

1 个答案:

答案 0 :(得分:1)

如果元素为minOccurs="0"nillable="true",则生成的属性类型将为JAXBElement,类似于JAXBElement<String>。当该属性为null时,它将从编组的XML中排除(null对应于minOccurs="0")。要获得xsi:nil="true",您需要将JAXBElement的实例nil设置为true