为什么“xsd:date”是映射的 XML 模式类型“javax.xml.datatype.XMLGregorianCalendar”当 JAXB 的架构到 Java 映射执行时
我不知道为什么 XML 模式类型的“xsd:date”会映射“javax.xml.datatype.XMLGregorianCalendar”,而 JAXB 的模式到 Java 映射会映射“javax.xml.datatype.XMLGregorianCalendar”。
为什么 XML 模式类型的“xsd:date”映射“java.util.Date”?
我猜想 JAXB 是有意进行映射的。 我想知道这个原因(如果有的话)。
如果存在,如何将 XML 模式类型的“xsd:date”更改为 Java 类的“java.util.Date”而不使用注释(例如@XmlJavaTypeAdapter)。
我想在没有所有注释的情况下进行编组和解组。
I don't know why does "xsd:date" of XML Schema Type mapped "javax.xml.datatype.XMLGregorianCalendar" When Schema-to-Java Mapping of JAXB does.
Why does "xsd:date" of XML Schema Type mapped "java.util.Date" ?
I guess that JAXB intentionally does its mapping.
I want to know that reason if any.
And if exists it, how to change "xsd:date" of XML Schema Type to "java.util.Date" of Java class without using annotation(ex.@XmlJavaTypeAdapter).
I want to do mashalling and unmarshalling without all annotations.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从 Java 类开始时,您可以使用任何“日期”数据类型。当从 XML 模式启动时,将生成 XMLGregorianCalendar,因为它保留了所有时间信息(包括时区)。当然,您始终可以修改生成的对象或注释模式以生成不同的类型。
有关更多信息:
When starting from Java classes you can use any "date" datatype. When starting from XML schema will generate XMLGregorianCalendar because it preserves all the temporal information (including time zone). Of course you can always modify the generated objects or annotate the schema to generate different types.
For more information:
原因有几个
Couple of reasons