[英]DataContractSerializer, xsd and response xml
我将在我的应用程序中集成第三方SOAP服务。 我无法控制此服务,我刚得到了.xsd文件,wsdl文件和一些示例响应的信息。 我正在使用默认方式在Visual Studio中生成代理客户端。 我已经将相同的wsdl和响应xml添加到了Soap UI。
问题是,当我在应用程序中收到响应时,某些值将为null。 通过向服务客户端添加实现IEndpointBehavior and IClientMessageInspector
的类,我可以在AfterReceiveReply
方法中AfterReceiveReply
预期的xml响应。 代理对象中的某些值是null。
检查服务定义中的对象,可以看到在类型上标记了Order
属性。 例如:
[System.Xml.Serialization.XmlElementAttribute(Order=1)]
public string name { .......
我的第一个想法是,响应xml并未按.xsd文件中所述的正确顺序包含所有期望元素。
查看相关的.xsd文件,元素的定义如下:
<xs:element name="name" type="MyTypeHere" minOccurs="0">
<xs:annotation>
<xs:documentation>Some documentation</xs:documentation>
</xs:annotation>
</xs:element>
标记为时,响应中是否需要该元素?
minOccurs="0"
还是该值只能为null? 由于明显的原因,我无法在此处发布wsdl或.xsd文件。
提前致谢。
不要为空值而烦恼。 只要他们填写了您需要的值,您就可以继续前进。
有时,他们希望对所有类型的请求都做出一种响应。 他们倾向于添加其他请求类型不需要的字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.