wsdl.exe - 当Use = Literal时,标题需要element属性

时间:2013-06-28 10:07:14

标签: c# soap wsdl

我正在使用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>

1 个答案:

答案 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>