我为它创建了一个简单的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"/>
谢谢。
答案 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)
您可以使用架构来设置首选模式吗?