для запроса моей веб-службы, я хотел отличаться от запрашиваемого значения null
и отсутствующего тега. Другими словами, мне нужно было следующее определение элемента:JAXBElementRef не генерирует nillable = "true"
<xs:element minOccurs="0" name="minzeronil" nillable="true" type="xs:string"/>
Я разработал веб-сервис кода первой, поэтому я определил элемент, используя JAXBElementRef
:
@XmlRegistry
public class ObjectFactory {
@XmlElementDecl(name = "minzeronil", namespace = XmlNamespace.MY_SERVICE)
public JAXBElement<String> createMinzeronil(final String value) {
return new JAXBElement<String>(new QName(XmlNamespace.MY_SERVICE, "minzeronil"), String.class, value);
}
}
Теперь, я ожидал увидеть nillable = "true"
в определение элемента. Вместо этого я получил:
<xs:element name="minzeronil" type="xs:string"/>
<xs:element ref="tns:minzeronil" minOccurs="0"/>
Как я могу генерировать nillable = "true"
из моего кода Java? ... и до сих пор используют JAXBElement в моем коде и его методы, как isNil()
...
UPDATE: развернуть код на GlassFish, так GlassFish является тот, который генерирует WSDL и XSD.
Следующие действия могут помочь: http://stackoverflow.com/questions/19665550/jaxb-element-that-is-both -optional-and-nillable/19666240 # 19666240 –