我收到来自包含<EndDate/>
的网络服务的回复。该字段在WSDL中具有minOccurs="0"
。
<xsd:element name="EndDate" type="p8:Date" minOccurs="0">
当我查看Fiddler时,我看到数据到达,但VS在解析错误时崩溃:
字符串无法识别为有效的DateTime
。
这是因为空<EndDate/>
?它不是强制性的,但如果它存在,它需要有一个正确的值,或者至少这是我的想法。
正确?有没有办法避免这个错误? web服务在我的解决方案中作为Web引用添加。
导入Web服务时,VS生成的reference.cs文件中会抛出该错误。
答案 0 :(得分:0)
是的,你的假设是正确的。
<location allowOverride="false">
表示元素可以完全省略。因此,以下两个选项是正确的:
minOccurs="0"
不意味着 <{1}}的空字符串成为有效条目。因此,以下是不正确:
<SomeType>
<StartDate>2015-01-01</StartDate>
</SomeType>
<SomeType>
<StartDate>2015-01-01</StartDate>
<EndDate>2015-01-02</EndDate>
</SomeType>
在这种情况下,正确的解决方案是通知您的Web服务提供商他们的响应与其xsd架构不匹配。