2015-06-05 107 views
0

我想創建這樣的XML(元元是沒有要求(的minOccurs = 0))如何創建XSD和Java類從XML

<Root> 
    <ns:Element date="1980-02-06" state="S">Value1</ns:Element> 
    <ns:Element date="1980-02-06" state="S">Value2</ns:Element> 
    <ns:Element date="1980-02-06" state="N" xsi:nil="true" /> 
</Root> 

所以在XSD我創建的元素:

 <xs:element name="Element" type="ElementType" minOccurs="0" maxOccurs="unbounded" nillable="true"/> 

但問題是,插件,我使用(CXF-CODEGEN-插件)創建類,其中包含:

@XmlElement(name = "Element") 
protected List<ElementType> element; 

,而不是

protected List<JAXBElement<ElementType>> element;

這是我預料之中,因爲現在我沒有選項來設置的nillable。當我從xsd中刪除nillable =「true」時,沒有改變,並且生成相同的java代碼。所以我該怎麼做 ?

回答

0

好我發現瞭如何解決它。當我加入到這個bindings.xml:

<jaxb:bindings node="//xs:element[@name='Element']"> 
    <jaxb:class name="MyCustomElementType"/>  
</jaxb:bindings> 

那麼它創造出屬於新元素在內靜態類:

public static class MyCustomElementType 
     extends JAXBElement<ElementType> 
    { ... 
} 

這就是我想要的。