3

我希望将我们项目的 jaxb 版本从 1 更新到 2。有没有人尝试在他们的项目上这样做,是否有任何人想要这样做的提示?我知道每个项目都是独一无二的,我只是在寻找一般提示。

4

2 回答 2

4

JAXB2 将为简单类型限制生成枚举类。任何依赖于设置字符串值来使用这些类型的 Java 代码都需要您使用适当的枚举来代替。我认为这很好,因为您在编译时得到类型检查,而不是在运行时得到验证警告。

JABX2 使用类型化列表而不是非类型化列表,因此您可以从 Java 代码中删除大量强制转换。

日期支持得到很大改善。IIRC,JAXB1 中的大多数日期类型生成日历,而在 JAXB2 中它们生成 XMLGregorianCalendar。

于 2008-11-08T07:05:17.183 回答
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 生成了一个 Logging 类和一个 LoggingType 类(指的是未命名的日志元素类型),而 JAXB 2 只生成了一个 Logging 类。这在这个例子的所有标签上经常发生,所以我猜在这种情况下这种情况经常发生。但是,删除“Type”后缀即可修复编译,无需进行任何其他更改。

于 2010-02-05T20:26:50.547 回答