我有一个WSDL,我需要编写一个WCF客户端(在C#中)。在WSDL中,其中一个元素是:
<xs:element name="TransactionDateTime" type="xs:date" />
目前我正在使用通过SoapUI使用wsdl创建的模拟服务,所以我可以在我尝试使用groovy脚本填充TransactionDateTime时获得模拟响应。
我的问题是我使用的它似乎在尝试反序列化回复正文时在客户端引发异常
String was not recognized as a valid DateTime
这些是我尝试在groovy脚本中返回的例子
new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date())
javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance())
如果我尝试在xml中对其进行硬编码,我将其用作
的响应2014-09-11T10:11:555
顺便说一下,随着WSDL附带的文档中指定的格式引发了相同的异常
此外,如果我只是在响应中硬编码这样的日期&#39; 2014-09-12&#39;而不是引发异常,而是在填充响应的C#类的DateTime属性中将其填充为01/01/0001 00:00:00
任何人都可以给我任何关于我应该遵循哪条路径的提示吗?
更新:
没有100%确定,但我认为原因与this question相同或在其他网站中解释过,WCF不支持xs:date。所以我会要求第三方更改WSDL并将日期作为我将解析的字符串发送。无法想出更好的选择