代码之家  ›  专栏  ›  技术社区  ›  Derek Mahar

JAX-WS可以将XSD日期(xs:dateTime)映射到Java日历吗?

  •  3
  • Derek Mahar  · 技术社区  · 15 年前

    罐头 JAX-WS 映射一个 XML schema date ( xs:dateTime ),包括它的时区,到Java Calendar ?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Catchwa    15 年前

    是的,可以。

    合同优先法
    你需要使用 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>
    
        2
  •  1
  •   StaxMan    15 年前

    我认为它在默认情况下可以工作;JAXB(JAX-WS实现使用的数据绑定器)应该知道如何在XML值和java.util.Calendar之间进行转换。

    如果不是,则XML使用的默认日期/时间数据类型是javax.XML.datatype.XMLGregorianCalendar,它可以使用toGregorianCalendar()方法进行转换(它将是java.util.GregorianCalendar类型,一个java.util.Calendar子类)。因此,一种可能是获取绑定到xmlgregoricalendar的数据,然后在访问时来回转换。这也可以通过使用XMLJavaTypeAdapter实现自动化。

    推荐文章