2013-12-18 5 views
0

У меня есть WSDL элемент что-то вроде:JAXB преобразования пустого элемента в нуль, когда демаршаллизации

<xs:element maxOccurs="unbounded" minOccurs="0" name="listElement" nillable="true" type="tns:test"></xs:element> 

в запросе SOAP, если я отправить пустой элемент для listElement как:

<listElement/> 

Затем JAXB создает что-то вроде:

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

Так что я получаю элемент списка как единый массив с тестом O ▪ Таблица.

Я хочу сделать что-то, что может привести к элементу listElement в Null при передаче пустого элемента. Я не могу использовать аннотацию @XMLJavaAdapter, потому что это контракт сначала, и все входные объекты сгенерированы.

Мне нужно добавить какое-то привязку на уровне WSDL или на уровень поколений.

Любая помощь будет высокоприоритетной?

ответ

1

Если listElement элемента действительно представляет собой нуль, то он должен быть отправлен следующим образом:

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

Делая какой-либо специальная обработку, в конечном счете собирается причинить вам неприятность.

+0

Привет, Блейз, у меня нет дескриптора на клиенте, есть ли способ, которым я мог бы сделать какую-то модификацию после получения контента на стороне обслуживания? – remo