在WSDL中指定日期格式

时间:2013-07-10 06:58:04

标签: web-services wsdl axis2

我为它创建了一个简单的Web服务和WSDL。在我的WSDL中,我有五个参数用于我的SOAP响应。

<message name="EmailStatusResponse">
    <part name='id' type='xsd:integer'/>
    <part name='name' type='xsd:string'/>
    <part name='message' type='xsd:string'/>
    <part name='createdDate' type='xsd:date'/>
    <part name='approver' type='xsd:string'/>
</message>

我想使用带有 eclipse Axis2 的WSDL创建客户端。我通过SOAP响应收到的createdDate格式为DD / MM / YYYY。当我运行客户端时,它会抛出AxisFault,表示日期格式createdDate不正确 我知道如果我将SOAP响应中发送的日期格式更改为DD / MM / YYYY或将WSDL中createdDate参数的类型更改为xsd:string,这将有效。 我的问题是,有没有办法在WSDL中指定日期模式?

举例如下:
<part name='createdDate' type='xsd:date' pattern="DD/MM/YYYY"/>

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以将其声明为字符串,然后限制字符串的模式,如下所示:

<xs:simpleType name="createdDate">
   <xs:restriction base="xs:string">
       <xs:pattern value="(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/\d{4}"/>
   </xs:restriction>
</xs:simpleType>

这将为您提供正确的格式,但您可能遇到SOAP类型为字符串的问题。

答案 1 :(得分:-1)

您可以使用架构来设置首选模式吗?