【发布时间】:2015-04-03 06:28:16
【问题描述】:
我正在使用 .NET 中的第 3 方 Web 服务(我无法控制它)。
我注意到一些在响应返回并从服务中序列化时没有设置。
我注意到他们的反应有些奇怪。
这是他们的 WSDL 示例
<xs:complexType name="letters">
<xs:complexContent>
<xs:extension base="tns:response">
<xs:sequence>
<xs:element name="a" type="xs:long" />
<xs:element minOccurs="0" name="b" type="xs:dateTime" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="c" nillable="true" type="tns:anotherComplexType" />
<xs:element minOccurs="0" name="d" type="xs:dateTime" />
<xs:element minOccurs="0" name="e" type="tns:string" />
<xs:element minOccurs="0" name="f" type="tns:boolean" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
这是响应相关部分的示例:
<letters>
<a>0</a>
<b>2015-02-03T11:59:18+11:00</b>
<d>2015-02-03T12:00:00+11:00</d>
<f>true</f>
</letters>
我怀疑因为他们为<letters> 部分中的元素定义了<xs:sequence>,所以.NET 序列化程序期望响应中包含ALL 元素? (因此,他们的响应违反了他们的 WSDL 定义?)。
谢谢
编辑 似乎响应正在返回一个未知元素,特别是
<letters>
<a>0</a>
<b>2015-02-03T11:59:18+11:00</b>
<d>2015-02-03T12:00:00+11:00</d>
<otherElement>blue</otherElement>
<f>true</f>
</letters>
这不是 WSDL 的一部分。这意味着<f> 元素没有被序列化。有没有办法让我忽略未知元素?
【问题讨论】:
标签: .net xml web-services xsd