2008-11-06 33 views
3

我期待更新我們項目的jaxb版本,從1到2.有沒有人試圖在他們的項目上做這個,有沒有人想要這樣做的任何提示?我明白每個項目都是獨一無二的,我只是在尋找一些常規技巧。從Jaxb 1更新到Jaxb 2

回答

4

JAXB2將爲簡單類型限制生成枚舉類。任何依賴爲這些類型的使用設置字符串值的Java代碼都需要您使用適當的枚舉。我認爲這很好,因爲在編譯時得到類型檢查而不是在運行時發出驗證警告。

JABX2使用類型列表而不是無類型列表,因此您可以從Java代碼中刪除大量的強制轉換。

日期支持得到很大改善。 IIRC中,JAXB1中的大多數日期類型生成Calendar,而在JAXB2中它們生成XMLGregorianCalendar。

1

今天我正在閱讀關於JAXB 1的教程,並嘗試使用JAXB 2.1(包含在JavaSE 6中)編譯示例。 在XSD中的元素所使用未命名的類型,如:

<xs:element name="logging"> 
     <xs:complexType> 
       <xs:attribute name="debug" type="xs:boolean" use="required"/> 
       <xs:attribute name="file" type="xs:string" use="required"/> 
     </xs:complexType> 
</xs:element> 

對於我看到的,JAXB 1.0生成的日誌記錄類和LoggingType類(指未命名的類型的記錄元件的),而JAXB 2只生成一個記錄類。這個例子中的所有標籤都會定期發生這種情況,所以我想在這種情況下會發生這種情況。但是,只需刪除「Type」後綴即可修復編譯,而無需進行其他更改。