1

我不知道为什么当 JAXB 的 Schema-to-Java Mapping 时 XML Schema Type 的“xsd:date”映射了“javax.xml.datatype.XMLGregorianCalendar”。

为什么 XML Schema Type 的 "xsd:date" 映射了 "java.util.Date" ?

我猜想 JAXB 是有意进行映射的。如果有的话,我想知道这个原因。

如果存在,如何在不使用注释(例如@XmlJavaTypeAdapter)的情况下将 XML Schema 类型的“xsd:date”更改为 Java 类的“java.util.Date”。

我想在没有所有注释的情况下进行编组和解组。

4

2 回答 2

1

从 Java 类开始时,您可以使用任何“日期”数据类型。从 XML 模式开始时会生成 XMLGregorianCalendar,因为它保留了所有的时间信息(包括时区)。当然,您始终可以修改生成的对象或注释模式以生成不同的类型。

了解更多信息:

于 2010-12-25T14:09:39.333 回答
1

几个原因

  1. java.util.Date 不处理 TimeZone 的
  2. 这样它就可以处理内置 Calendar 类无法处理的 ISO 8601 日期时间格式。例如,月份是 1-12,但日历/日期是 0-12。有时在查询时,您可能希望将第一个月设为 1 而不是 0。
于 2010-12-27T02:58:36.690 回答