wsdl.exe-当Use=Literal时,标头需要元素属性
本文关键字:属性 元素 exe- Use Literal wsdl | 更新日期: 2023-09-27 18:20:19
我正在使用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>
我通过将"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>