Web サービス記述言語ツール (Wsdl.exe)

このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.

Web サービス記述言語ツールは、WSDL コントラクト ファイル、XSD スキーマ、および .discomap 探索ドキュメントから、XML Web サービスおよび XML Web サービス クライアントのコードを生成します。

7h3ystb6.note(ja-jp,VS.100).gif注 :
WSDL.exe では、"@string" のような名前のクラスを生成できます。これらは、C# キーワードから構成される型名を使用できるようにする、'@' プレフィックスを使用した有効な型名です。

wsdl [options] {URL | path}

解説

引数 説明

URL

WSDL コントラクト ファイル (.wsdl)、XSD スキーマ ファイル (.xsd)、または探索ドキュメント (.disco) への URL。.discomap 探索ドキュメントへの URL は指定できません。

Path

ローカル WSDL コントラクト ファイル (.wsdl)、XSD スキーマ ファイル (.xsd)、または探索ドキュメント (.disco または .discomap) へのパス。

7h3ystb6.note(ja-jp,VS.100).gif注 :
Wsdl.exe は、ローカル ファイルが指定されている場合、ネットワークからインクルードやインポートを取得しません。Wsdl.exe でローカル ファイルの処理中にネットワーク リソースの取得を有効にするには、ローカル ファイルへの URL を渡します。たとえば、次のファイルでは必要なリソースの取得にネットワークを使用します。 wsdl File:///E:/Customers/WSDLS/Accounts.wsdl /out:proxy.cs

オプション 説明

/appsettingurlkey:key

または

/urlkey:key

コードを生成するときに URL プロパティの既定値を読み込むために使用する構成キーを指定します。/parameters オプションを使用する場合、この値は文字列を含む <appSettingUrlKey> 要素になります。

/appsettingbaseurl:baseurl

または

/baseurl:baseurl

URL フラグメントを計算するときに使用するベース URL を指定します。このツールは、相対 URL を baseurl 引数から WSDL ドキュメント内の URL へ変換することにより、URL フラグメントを計算します。このオプションと共に /appsettingurlkey オプションを指定する必要があります。/parameters オプションを使用する場合、この値は文字列を含む <appSettingBaseUrl> 要素になります。

/d[omain]:domain

認証情報を要求するサーバーに接続するときに使用するドメイン名を指定します。/parameters オプションを使用する場合、この値は文字列を含む <domain> 要素になります。

/l[anguage]:language

生成されたプロキシ クラスのために使用する言語を指定します。引数 language として CS (C#、既定値)、VB (Visual Basic)、JS (JScript)、または VJS (Visual J#) を指定できます。System.CodeDom.Compiler.CodeDomProvider クラスを実装するクラスの完全限定名も指定できます。/parameters オプションを使用する場合、この値は文字列を含む <language> 要素になります。

/n[amespace]:namespace

生成されたプロキシまたはテンプレートの名前空間を指定します。既定の名前空間はグローバル名前空間です。/parameters オプションを使用する場合、この値は文字列を含む <namespace> 要素になります。この要素は、パラメーター ファイルに必ず含める必要があります。

/nologo

Microsoft 著作権情報を表示しません。/parameters オプションを使用する場合、この値は true または false を含む <nologo> 要素になります。

/order

パーティクル メンバー に明示的な順序 ID を生成します。

/o[ut]:filename または directoryname

生成されたプロキシ コードを保存するファイル (またはディレクトリ) を指定します。このファイルを作成するディレクトリを作成することもできます。このツールは、XML Web サービス名から既定のファイル名を派生します。このツールは、生成されたデータ セットを複数のファイルに保存します。/parameters オプションを使用する場合、この値は文字列を含む <out> 要素になります。

/parameters

指定された xml ファイルから、コマンド ライン オプションを読み取ります。Wsdl.exe ツールに一度に多数のオプションを渡す場合は、このオプションを使用します。省略形は /par: です。オプションの要素は、<wsdlParameters xmlns="https://microsoft.com/webReference/"> 要素の内部に含まれています。詳細については、「解説」を参照してください。

/parsableerrors

言語コンパイラで使用されているエラー レポート形式に似た形式でエラーを表示します。/parameters オプションを使用する場合、この値は <parsableerrors> 要素になり、true または false になります。

/p[assword]:password

認証情報を要求するサーバーに接続するときに使用するパスワードを指定します。/parameters オプションを使用する場合、この値は文字列を含む <password> 要素になります。

/protocol:protocol

実装するプロトコルを指定します。SOAP (既定値)、HttpGet、HttpPost、または構成ファイルで指定されたカスタム プロトコルを指定できます。/parameters オプションを使用する場合、この値は文字列を含む <protocol> 要素になります。

/proxy:URL

HTTP 要求のために使用するプロキシ サーバーの URL を指定します。既定では、システム プロキシ設定を使用します。/parameters オプションを使用する場合、この値は文字列を含む <proxy> 要素になります。

/proxydomain:domain

または

/pd:domain

認証を必要とするプロキシ サーバーに接続するときに使用するドメインを指定します。/parameters オプションを使用する場合、この値は文字列を含む <proxydomain> 要素になります。

/proxypassword:password

または

/pp:password

認証情報を要求するプロキシ サーバーに接続するときに使用するパスワードを指定します。/parameters オプションを使用する場合、この値は文字列を含む <proxypassword> 要素になります。

/proxyusername:username

または

/pu:username

認証情報を要求するプロキシ サーバーに接続するときに使用するユーザー名を指定します。/parameters オプションを使用する場合、この値は文字列を含む <proxyusername> 要素になります。

/server

コントラクトに基づく XML Web サービスのための抽象クラスを生成します。既定では、クライアント プロキシ クラスを生成します。/parameters オプションを使用する場合、この値は "server" を含む <style> 要素になります。

/serverInterface

ASP.NET Web サービスのサーバーの実装に対するインターフェイスを生成します。WSDL ドキュメントの各バインディングに対して、インターフェイスが生成されます。WSDL だけが WSDL コントラクトを実装します (インターフェイスを実装するクラスには、クラス メソッド上に、Web サービス属性、または WSDL コントラクトを変更するシリアル化属性のいずれも含めません)。省略形は /si: です。/parameters オプションを使用する場合、この値は "serverInterface" を含む <style> 要素になります。

/sharetypes

型の共有機能をオンにします。この機能は、異なるサービス間で共有される同じ型に対して 1 つの型の定義で 1 つのコード ファイルを作成します (名前空間、名前、ワイヤ シグネチャは同じになる必要があります)。コマンド ライン パラメーターとして "http://" の付いた URL でサービスを参照するか、ローカル ファイルに対して discomap ドキュメントを作成します。/parameters オプションを使用する場合、この値は <sharetypes> 要素になり、true または false になります。

/u[sername]:username

認証情報を要求するサーバーに接続するときに使用するユーザー名を指定します。/parameters オプションを使用する場合は、この値が、文字列を含む <username> 要素になります。

/?

このツールのコマンド構文とオプションを表示します。

.wsdl ファイルは、Web サービス記述言語 (WSDL: Web Service Description Language) という XML 文法で記述された XML ドキュメントです。このファイルは、XML Web サービスの動作を定義し、サービスとの対話方法をクライアントに命令します。

Web サービス検出ツール (Disco.exe) を使用して、XML Web サービスの探索ドキュメントを取得できます。このツールで生成された .discomap、.disco、.wsdl、.xsd の各ファイルは、Wsdl.exe への入力として使用できます。

Wsdl.exe を使用してプロキシ クラスを作成すると、指定したプログラミング言語で 1 つのソース ファイルが作成されます。プロキシ クラスのソース コードを生成するプロセスでは、このツールは、サービス記述で指定されたオブジェクトに使用する最適な型を決定します。場合によっては、共通する必要最低限の機能を提供するアプローチを使用して、オブジェクトを型にキャストします。結果として、そのプロキシ クラスの生成された型が開発者の意図するものと異なることがあります。たとえば、Wsdl.exe がサービスの説明で ArrayList 型を検出した場合は、生成するプロキシ クラス内に Object Array を作成します。オブジェクト型が正しくキャストされるようにするには、生成されたプロキシ クラスが含まれているファイルを開き、不適切なオブジェクト型を正しいオブジェクト型に変更します。

  • / parameters オプションには、ほとんどのコマンド プロンプト オプションに対応する要素を含むファイルを指定します。一部のコマンド プロンプト オプションは、/parameters のファイル形式だけで使用できます。

/ parameters オプションが受け入れる XML ファイル形式には、<wsdlParameters xmlns="https://microsoft.com/webReference/"> 要素で囲まれた一連の要素があります。コマンド プロンプト値を指定し、異なるオプションまたは値を含む /parameters ファイルを使用すると、コマンド プロンプトで指定した値が使用されます。<wsdlParameters xmlns="https://microsoft.com/webReference/"> 要素は、<nologo> 要素、<parsableerrors> 要素、および <sharetypes> 要素を含む必要があります。

いくつかのオプションは <verbose> 要素を必ず含む <webReferenceOptions> 要素の子要素として渡されます。その他の <webReferenceOptions> 要素の子要素は次のとおりです。

  • <style>. "client"、"server"、または "serverInterface" を含みます。

  • <schemaImporterExtension>. 任意の数の <type> 要素を含みます。

  • <codeGenerationOptions>. スペースで区切られた次の文字列を受け取ることができます。

  • "properties"

  • "newAsync"

  • "oldAsync"

  • "order"

  • "enableDataBinding"

/parameters オプションの例については、次の「例」のセクションを参照してください。

次のコマンドは、XML Web サービスのために C# 言語でクライアント プロキシ クラスを作成します。

wsdl http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

指定した URL にある XML Web サービスの C# 言語におけるクライアント プロキシ クラスを作成するコマンドを次に示します。このツールは、クライアント プロキシ クラスを myProxyClass.cs ファイルに保存します。

wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

指定した URL にある XML Web サービスの Microsoft Visual Basic 言語におけるクライアント プロキシ クラスを作成するコマンドを次に示します。このツールは、クライアント プロキシ クラスを myProxyClass.vb ファイルに保存します。

wsdl /language:VB /out:myProxyClass.vb http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

コマンド プロンプトで URL 引数と組み合わせて使用できる必須の要素だけを含む基本的な /parameters WSDL ファイルのコード例を次に示します。

<wsdlParameters xmlns="https://microsoft.com/webReference/">
  <nologo>true</nologo>
  <parsableerrors>true</parsableerrors>
  <sharetypes>true</sharetypes>
</wsdlParameters>

WSDL ドキュメントは、次のコード例のように、<documents> 要素を使用して /parameters WSDL ファイルに追加されます。<documents> 要素では、任意の数の <document> 要素を使用できます。

<wsdlParameters xmlns="https://microsoft.com/webReference/">
  <nologo>true</nologo>
  <parsableerrors>true</parsableerrors>
  <sharetypes>true</sharetypes>
  <documents>
    <document>https://www.contoso.com/service.asmx?WSDL</document>
  </documents>
</wsdlParameters>

次の /parameters WSDL ファイルは、<webReferenceOptions> 要素内の <codeGenerationOptions> 要素と <style> 要素の使い方を示します。この場合、このファイルはプロキシ コードで新しいスタイルのデータ バインディングを有効にし、スキーマ インポーターの拡張機能を指定し、詳細情報は出力せず、Wsdl.exe はクライアント プロキシを作成するように指定します。

<wsdlParameters xmlns="https://microsoft.com/webReference/">
  <nologo>true</nologo>
  <parsableerrors>true</parsableerrors>
  <sharetypes>true</sharetypes>
  <documents>
    <document>https://www.contoso.com/service.asmx?WSDL</document>
  </documents>
  <webReferenceOptions>
    <verbose>false</verbose>
    <codeGenerationOptions>properties newAsync enableDataBinding</codeGenerationOptions>
    <schemaImporterExtension>
      <type>MyNamespace.MyCustomImporterExtension,ExtensionLibrary</type>
    </schemaImporterExtensions>
    <style>client</style>
  </webReferenceOptions>
</wsdlParameters>

参照

リファレンス

Web サービス検出ツール (Disco.exe)

概念

XML Web サービス プロキシの作成
XML Web サービスの説明
XML Web サービスの概要

その他のリソース

.NET Framework Tools
SDK Command Prompt