我从第三方Java Web服务导入了WSDL。其中一个方法需要一个ComplexType对象,当我导入WSDL时,该对象被序列化为C#上的一个类。 WSDL如下:
<xsd:complexType name="MethodReturn">
<xsd:sequence>
<xsd:element name="param1" nillable="true" type="xsd:string" />
<xsd:element name="param2" nillable="true" type="xsd:string" />
<xsd:element name="param3" nillable="true" type="xsd:string" />
<xsd:element name="param4" nillable="true" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
当我发送方法时,我收到以下错误:
org.xml.sax.SAXException: Invalid element in com.teste.webservice.model.MethodReturn - param3
第三方开发人员告诉我,在发送方法时,我不应该沿着序列化的XML发送param3
属性。我怎样才能用C#实现这个目标?如果我设置MethodReturn = null,则该属性包含为xsil:nil =“true”,如下所示:
<param1 xsi:type="xsd:string">U</param1>
<param2 xsi:type="xsd:string">2032290</param2>
<param3 xsi:nil="true"/>
<param4 xsi:type="xsd:string">EU1</param4>
我想做的是根本不发送param3
,如下所示。这可能吗?
<param1 xsi:type="xsd:string">U</param1>
<param2 xsi:type="xsd:string">2032290</param2>
<param4 xsi:type="xsd:string">EU1</param4>
韩国社交协会
答案 0 :(得分:1)
第三方开发人员或WSDL是错误的。如果WSDL错误,则编辑它:
<xsd:complexType name="MethodReturn">
<xsd:sequence>
<xsd:element name="param1" nillable="true" type="xsd:string" />
<xsd:element name="param2" nillable="true" type="xsd:string" />
<xsd:element name="param3" type="xsd:string" />
<xsd:element name="param4" nillable="true" type="xsd:string" />
</xsd:sequence>