JAXB 对 xsd:dateTime 的定制

主要观点:探讨如何用 JAXB 定义自定义元素来序列化包含时区信息的 Date 对象,过程中遇到诸多问题及解决方案。
关键信息:朋友给作者 JAXB 挑战,公司已在遗留代码中自定义 xsd:date 类型,现需在应用架构中表示 Calendar 对象,作者最初想法及后续遇到的 3 个问题(JAXB 中 Calendar 默认定制不序列化日期时间信息、使用 xsd:dateTime 时默认适配器失效、不能用 java.text.SimpleDateFormat 序列化 Date 对象),给出示例 Maven 项目及相关配置(创建 maven 项目、配置 JAXB 插件、创建样本模式、创建自定义绑定器、编写 JUnit 测试类)。
重要细节:自定义绑定器中对 SimpleDateFormat 的处理方式(parseDateTime 方法和 printDateTime 方法),JUnit 测试类中的测试方法及相关操作(创建对象、写入 XML、读取 XML 并比较)。

阅读 7
0 条评论