我已經從XSD創建了JAXB類,但已經注意到某些類的設置器 其中參數是Object
。縱觀XSD,看起來這可能歸結爲元素缺失的數據類型定義。我是猜測由於沒有數據類型定義,JAXB默認setter的參數爲Object
。這些元素中的一些(不是全部)也具有固定值集合,因此可以解釋爲什麼數據類型不在XSD中提供。定製JAXB類
元件中的一個的一個例子是
<xs:element name="DefaultCar" fixed="XXXX"/>
我想用Object
作爲參數傳遞給在此改變JAXB並使用例如,String
。我已經部分成功地使用了外部綁定自定義文件。雖然該類的setter參數設置爲我所指定的值,但@XmlElement已被賦予type = Object.class
,因此會引用setter的參數。是否有可能阻止JAXB爲@XmlElement放置type = Object.class
?
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="Car", propOrder = {
"defaultCar"
}
public class Car {
@XmlElement(name = "DefaultCar", type = Object.class)
protected String defaultCar;
public void setDefaultCar(String value) {
this.defaultCar = value;
}
發佈其中一個類的代碼。在Javadoc中通常有一個關於爲什麼你得到'Object'的描述。 – lexicore 2014-12-03 10:30:46
@lexicore,其中一個類的代碼在我的問題 - 最後一個突出顯示的部分。這是你想看到的嗎?任何想法,我可以訪問Javadoc?我正在使用Eclipse並從嚮導生成JAXB類。我假設給出了'Object',因爲沒有爲XSD中的元素定義數據類型。謝謝。 – user3572079 2014-12-03 10:44:34
所以這是你在生成的源代碼中有什麼?沒有JavaDoc評論?奇怪。但嘗試在[這](http://stackoverflow.com/questions/27239406/xjc-override-xssimpletype-definition/27244196#27244196)問題的建議。如果沒有任何幫助,可以用[tag:jaxb2-annotate-plugin]覆蓋註釋,但這是最後一件事。 – lexicore 2014-12-03 10:50:09