나는 다음과 같은 바인딩 파일과 자바 코드를 생성하고 JAXB 2.2.4을 사용하여 :JAXB 생성 nillable로 = 사실
<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로 주석이 있습니다. 내가 설정하지 않은 경우
<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>
생성 된 CT_Beitrag 객체의 artid가 그 다음 Unmarshaller에이 생산 : 이것은 STEBeitrag의 정의는
@XmlElement(name = "ArtID", nillable = true)
protected STEBeitrag artID;
다음 예를 참조하십시오
<ns:ArtID xsi:nil="true"/>
,691 같은 출력
요소 ArtID에 추상 유형이 있으므로이 XML 출력이 유효하지 않습니다.
은 어떻게 XMLELEMENT 주석의 nillable로 = TRUE를 생략 JAXB와 코드를 생성 할 수 있습니까? 그런데 스키마를 변경할 수 없습니다.