1

Apache AxisSOAPWebサービスのWSDLファイルを使用してVB.NETでプロキシクラスを生成しようとしています。

彼らは私にWSDLファイルを提供してくれました。WSDL.exeコマンド(Visual Studio 08の場合)を使用してローカルパスを指すと、エラーが発生します。

wsdl /language:vb c:\Orders.wsdl

(Apache Axis2でホストされているSOAPWebサービスを使用する.NETクライアントを作成しようとしています)

エラー

Unable to import binding 'OrdersSoapBinding' from namespace 'urn:company:orders:schemas:OrderTypes:1.00'.

-Unable to import operation 'placeOrder'

-The element 'urn:company:remtp:schemas:PlaceOrderRequest:1.00:PlaceOrderRequest' is missing

if you would like more help, please type 'wsdl /?'

svcutil.exeを使用すると、エラーメッセージも表示されます...

svcutil.exe C:\Orders.wsdl /t:code /l:VB /o:"C:\Orders.VB"

問題の原因は何ですか?

あなたの助けは大いに感謝されるでしょう、ありがとう。

WSDLコード

    <?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions 
        targetNamespace="urn:company:orders:schemas:OrderTypes:1.00" 
        xmlns:impl="urn:company:orders:schemas:OrderTypes:1.00" 
        xmlns:apachesoap="http://xml.apache.org/xml-soap" 
        xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
        xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

        xmlns:poreq="urn:company:remtp:schemas:PlaceOrderRequest:1.00"
        xmlns:poresp="urn:company:remtp:schemas:PlaceOrderResponse:1.00"
        xmlns:coreq="urn:company:remtp:schemas:CommitOrderRequest:1.00"
        xmlns:coresp="urn:company:remtp:schemas:CommitOrderResponse:1.00"
        xmlns="http://schemas.xmlsoap.org/wsdl/">

        <wsdl:types>
                <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:company:orders:schemas:OrderTypes:1.00">
        <import namespace="urn:company:remtp:schemas:PlaceOrderRequest:1.00" schemaLocation="../schemas/placeOrderRequest.xsd"/>

        <import namespace="urn:company:remtp:schemas:PlaceOrderResponse:1.00" schemaLocation="../schemas/placeOrderResponse.xsd"/>

        <import namespace="urn:company:remtp:schemas:CommitOrderRequest:1.00" schemaLocation="../schemas/commitOrderRequest.xsd"/>

        <import namespace="urn:company:remtp:schemas:CommitOrderResponse:1.00" schemaLocation="../schemas/commitOrderResponse.xsd"/>

        </schema>

        </wsdl:types>

        <wsdl:message name="placeOrderRequest">
        <wsdl:part element="poreq:PlaceOrderRequest" name="parameters"/>
        </wsdl:message>

        <wsdl:message name="placeOrderResponse">
                <wsdl:part element="poresp:PlaceOrderResponse" name="parameters"/>
        </wsdl:message>

        <wsdl:message name="commitOrderRequest">
                <wsdl:part element="coreq:CommitOrderRequest" name="parameters"/>
        </wsdl:message>

        <wsdl:message name="commitOrderResponse">
                <wsdl:part element="coresp:CommitOrderResponse" name="parameters"/>
        </wsdl:message>

        <wsdl:portType name="Orders">

                <wsdl:operation name="placeOrder">
                        <wsdl:input message="impl:placeOrderRequest"/>
                        <wsdl:output message="impl:placeOrderResponse"/> 
                </wsdl:operation>

                <wsdl:operation name="commitOrder">
                        <wsdl:input message="impl:commitOrderRequest"/>
                        <wsdl:output message="impl:commitOrderResponse"/>
                </wsdl:operation>

        </wsdl:portType>

        <wsdl:binding name="OrdersSoapBinding" type="impl:Orders">
                <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

                <wsdl:operation name="placeOrder">
                        <wsdlsoap:operation soapAction=""/>

                        <wsdl:input name="placeOrderRequest">
                                <wsdlsoap:body use="literal" />
                        </wsdl:input>

                        <wsdl:output name="placeOrderResponse">
                                <wsdlsoap:body use="literal" />
                        </wsdl:output>

                </wsdl:operation>

                <wsdl:operation name="commitOrder">
                        <wsdlsoap:operation soapAction=""/>

                        <wsdl:input name="commitOrderRequest">
                                <wsdlsoap:body use="literal" />
                        </wsdl:input>

                        <wsdl:output name="commitOrderResponse">
                                <wsdlsoap:body use="literal" />
                        </wsdl:output>

                </wsdl:operation>

        </wsdl:binding>

        <wsdl:service name="OrdersService">
                <wsdl:port name="Orders" binding="impl:OrdersSoapBinding">
                        <wsdlsoap:address location="https://companyorders.co.uk/endpoints/services/Orders"/>
                </wsdl:port>
        </wsdl:service>

</wsdl:definitions>
4

1 に答える 1

3

提供したwsdlファイルを調べると、4つのxsd(xml xchemaドキュメント)ファイルへの参照が表示されます。これらのファイルには、プロキシを作成するためにsvcutilが必要とする型定義と検証ルールが含まれています。

   <import namespace="urn:company:remtp:schemas:PlaceOrderRequest:1.00" schemaLocation="../schemas/placeOrderRequest.xsd"/>

   <import namespace="urn:company:remtp:schemas:PlaceOrderResponse:1.00" schemaLocation="../schemas/placeOrderResponse.xsd"/>

   <import namespace="urn:company:remtp:schemas:CommitOrderRequest:1.00" schemaLocation="../schemas/commitOrderRequest.xsd"/>

   <import namespace="urn:company:remtp:schemas:CommitOrderResponse:1.00" schemaLocation="../schemas/commitOrderResponse.xsd"/>

したがって、これらのxsdファイルも必要です

于 2012-04-20T11:06:30.360 に答える