WSClient++ генерирует пустой класс для элемента типа по умолчанию
В моем XSD у меня что-то вроде этого
<xs:element name="type">
<xs:complexType>
<xs:choice>
<xs:element name="type1"/> <---CHECK THIS
<xs:element name="type2">
<xs:complexType>
<xs:sequence>
<xs:element name="type21" type="xs:int">
<xs:annotation>
<xs:documentation>in seconds</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="type3">
.....Further XML....
Для элемента типа type1 ничего не указано. И я использовал WSClient++ для создания моей заглушки. WSClient++ генерирует просто пустой класс. Что именно мне нужно из этого сделать. И как мне справиться с этим.
Класс, сгенерированный WSClient++
package com.xyz.abc.conf
public class Type1
{
}
и это то, что возвращается сервером
<type><type1/></type>
когда я пытаюсь десериализовать это, это дает мне исключение нулевого указателя. как мне справиться с этим.?
1 ответ
Если вы не укажете тип для элемента, типом по умолчанию будет xs:anyType, который разрешает любое содержимое XML. Немного сложно сопоставить это с классом Java.