JAX-WS 能否将 XSD 日期 (xs:dateTime) 映射到 Java 日历?
Can JAX-WS map an XML schema date (xs:dateTime
), including its time zone, to a Java Calendar
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,可以。
合同优先方法
您需要使用
jaxb:javaType
元素。 此处提供了一些常规信息以及您需要的示例请此处。合同最后方法
将映射到:
Yes, it can.
Contract first approach
You need to use the
jaxb:javaType
element. There's some general information here and an example of what you need to do here.Contract last approach
Will map to:
我认为默认情况下它会起作用; JAXB(JAX-WS 实现使用的数据绑定器)应该知道如何在 XML 值和 java.util.Calendar 之间进行转换。
如果不是,则 XML 使用的默认日期/时间数据类型是 javax.xml.datatype.XMLGregorianCalendar,可以使用方法 toGregorianCalendar() 进行转换(其类型为 java.util.GregorianCalendar,java.util.Calendar 子类) 。因此一种可能性是获取绑定到 XMLGregorianCalendar 的数据,然后在访问时来回转换。这也可以通过使用 XMLJavaTypeAdapter 来自动化。
I would think it would work by default; JAXB (data binder that JAX-WS implementations use) should know how to convert between XML values and java.util.Calendar.
If not, the default date/time datatype used with XML is javax.xml.datatype.XMLGregorianCalendar, which can be converted using method toGregorianCalendar() (which will be of type java.util.GregorianCalendar, a java.util.Calendar subclass). So one possibility is to get data bound to XMLGregorianCalendar, then just convert back/forth when accessing. This can also be automated by using XMLJavaTypeAdapter.