2012-04-20 48 views
1

Apache Axis SOAP Webサービス用のWSDLファイルを使用して、VB.NETでProxyクラスを生成しようとしています。WSDLファイルを使用して.NETでプロキシクラスを作成するにはどうすればよいですか?

彼らは私にWSDLファイルを提供しています.WSDL.exeコマンド(Visual Studio 08で)を使用してローカルパスを指すとエラーが表示されます。

wsdl /language:vb c:\Orders.wsdl 

(私はApache Axisの2にホストされているSOAP Webサービスを消費.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コード指定した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> 

答えて

3

、あなたは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"/> 

だから、あなたも、私はそれらを求めてきました

+0

ドキュメントををxsdために私を供給するために、これらのXSDファイルが必要です。これらの名前空間のために私自身のxsd文書を作成する方法はありますか? – nimblebit

+0

途中です。すなわち、 xsdはメッセージの構造を示します。impl:placeOrderRequest:この構造を正確に知らなくても、提供されたサービスと一貫した方法でxsdを作成するにはどうすればいいですか?これがあなたがこれらのファイルを必要とする理由です。 – paolo

+0

私はついにxsdファイルを手に入れました。xsdパスをwsdl.exeコマンドプロンプトに渡してプロキシクラスを生成することができました。それはうまくそれを生成しました。助けてくれてありがとう。 – nimblebit

関連する問題