Использование JAXB 2.2.4 Я генерирую код Java со следующим файлом привязки:
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<globalBindings generateElementProperty="false">
</globalBindings>
К сожалению, сгенерированный код имеет аннотацию nillable = true.См. Следующий пример:
@XmlElement(name = "ArtID", nillable = true)
protected STEBeitrag artID;
Это определение STEBeitrag:
<xsd:complexType name="CT_Beitrag">
<xsd:complexContent>
<xsd:extension base="allgemein:CT_Objekt">
<xsd:sequence>
<xsd:element name="ArtID" type="daten:STE_Beitrag" minOccurs="0" maxOccurs="1" nillable="true"/></xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="STE_Beitrag" abstract="true">
<xsd:simpleContent>
<xsd:extension base="xsd:string"/>
</xsd:simpleContent>
</xsd:complexType>
Если я не установил ArtID в сгенерированном CT_BeitragЗатем объект unmarshaller создает вывод, такой как
<ns:ArtID xsi:nil="true"/>
Элемент ArtID имеет абстрактный тип, и поэтому этот вывод XML является недопустимым.
Как я могу генерировать код с JAXB, в котором пропущен nillable =истина в аннотации XmlElement?Кстати, схема не может быть изменена.