2008-11-06 54 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”后缀即可修复编译,而无需进行其他更改。