2014-12-03 64 views
1

我已經從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; 
} 
+0

發佈其中一個類的代碼。在Javadoc中通常有一個關於爲什麼你得到'Object'的描述。 – lexicore 2014-12-03 10:30:46

+0

@lexicore,其中一個類的代碼在我的問題 - 最後一個突出顯示的部分。這是你想看到的嗎?任何想法,我可以訪問Javadoc?我正在使用Eclipse並從嚮導生成JAXB類。我假設給出了'Object',因爲沒有爲XSD中的元素定義數據類型。謝謝。 – user3572079 2014-12-03 10:44:34

+0

所以這是你在生成的源代碼中有什麼?沒有JavaDoc評論?奇怪。但嘗試在[這](http://stackoverflow.com/questions/27239406/xjc-override-xssimpletype-definition/27244196#27244196)問題的建議。如果沒有任何幫助,可以用[tag:jaxb2-annotate-plugin]覆蓋註釋,但這是最後一件事。 – lexicore 2014-12-03 10:50:09

回答