解组时,JaxB将空元素转换为null

时间:2013-12-18 21:57:53

标签: jaxb cxf wsdl2java maven-jaxb2-plugin

我有一个类似的WSDl元素:

<xs:element maxOccurs="unbounded" minOccurs="0" name="listElement" nillable="true" type="tns:test"></xs:element>
如果我为listElement发送空元素,则在SOAP请求中

,如:

<listElement/>

然后JaxB正在创建类似的东西:

listElement= new Arraylist<Test>();
listElement.add(new Test());

所以我将listElement作为一个单独的测试对象阵列。

我想做一些事情,可以在传递空元素时将listElement设置为Null。我不能使用@XMLJavaAdapter注释,因为这是第一个契约,所有输入对象都是一个。

我需要在WSDL级别或生成级别添加某种绑定。

任何帮助都会得到很高的评价?

1 个答案:

答案 0 :(得分:1)

如果listElement元素确实表示null,则应按如下方式发送:

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

进行任何特殊处理最终都会给您带来麻烦。