我有一个自动生成的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" />
那么,如何防止在发送过程中生成它们?
答案 0 :(得分:1)
如果元素为minOccurs="0"
和nillable="true"
,则生成的属性类型将为JAXBElement
,类似于JAXBElement<String>
。当该属性为null
时,它将从编组的XML中排除(null对应于minOccurs="0"
)。要获得xsi:nil="true"
,您需要将JAXBElement
的实例nil
设置为true
。