我正在使用MS wsdl.exe从WSDL文件生成C#文件,但是收到错误描述“当Use = Literal时标题需要元素属性”
我怎样摆脱这个?是否还有其他工具可以从wsdl生成C#?
<message name="SomeHeader">
<part name="Version" type="xsd:string"/>
</message>
...
<operation name="xxxxx">
<soap:operation soapAction="xxxx"/>
<input>
<soap:header use="literal" message="SomeHeader" part="Version" />
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
答案 0 :(得分:0)
我最终通过将“type”替换为“element”来解决这个问题。
将上面的wsdl修改为
<wsdl:types>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://tempuri.org/"
elementFormDefault="qualified">
<xsd:element name="Version" type="xsd:string"/>
....
....
</xsd:schema>
</wsdl:types>
<message name="SomeHeader">
<part name="Version" element="tns:Version"/>
</message>