可以JAX-WS将XML schema date(xs:dateTime
)(包括其时区)映射到Java Calendar
吗?
答案 0 :(得分:2)
是的,它可以。
合同第一种方法
您需要使用jaxb:javaType
元素。有一些一般性信息here以及您需要做的事情的示例here。
合同最后方法
@WebMethod(operationName = "getTest")
public Calendar getTest(@WebParam(name = "input") Calendar input) {
input.roll(Calendar.DAY_OF_YEAR, 1);
return input
}
将映射到:
<xs:complexType name="getTest">
<xs:sequence>
<xs:element name="input" type="xs:dateTime" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getTestResponse">
<xs:sequence>
<xs:element name="return" type="xs:dateTime" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
答案 1 :(得分:1)
我认为它默认会起作用; JAXB(JAX-WS实现使用的数据绑定器)应该知道如何在XML值和java.util.Calendar之间进行转换。
如果没有,则与XML一起使用的默认日期/时间数据类型是javax.xml.datatype.XMLGregorianCalendar,可以使用方法toGregorianCalendar()(其类型为java.util.GregorianCalendar,java.util)进行转换。日历子类)。因此,一种可能性是将数据绑定到XMLGregorianCalendar,然后在访问时来回转换。这也可以通过使用XMLJavaTypeAdapter自动化。