在SoapUI调用webservice传入DateTime字符串参数报“不是有效的 AllXsd 值”的问题
在SoapUI中设置传入参数为我们常用的日期格式 yyyy-MM-dd HH:mm:ss.fff 如:2014-11-11 11:11:11.111 会报错,
错误信息如下:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>System.Web.Services.Protocols.SoapException: 服务器无法读取请求。 ---> System.InvalidOperationException: XML 文档(5, 66)中有错误。 ---> System.FormatException: 字符串“2014-11-05 15:03:50.963”不是有效的 AllXsd 值。
在 System.Xml.Schema.XsdDateTime..ctor(String text, XsdDateTimeFlags kinds)
在 System.Xml.XmlConvert.ToDateTime(String s, XmlDateTimeSerializationMode dateTimeOption)
在 System.Xml.Serialization.XmlCustomFormatter.ToDateTime(String value)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1_NullableOfDateTime(Boolean checkType)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read4_GetBudgetData()
在 Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer4.Deserialize(XmlSerializationReader reader)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)
在 System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
--- 内部异常堆栈跟踪的结尾 ---
在 System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
在 System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()</faultstring>
<detail/>
</soap:Fault>
</soap:Body>
</soap:Envelope>
解决方法:将日期格式替换为:yyyy-MM-ddTHH:mm:ss.fff 如:2014-11-11T11:11:11.111 就可以正常调用了。