Web サービス記述言語ツール (Wsdl.exe)
Web サービス記述言語ツールは、WSDL コントラクト ファイル、XSD スキーマ、および .discomap 検出ドキュメントから、XML Web サービスおよび XML Web サービス クライアントのコードを生成します。
wsdl [options] {URL | path}
引数 | 説明 |
---|---|
URL |
WSDL コントラクト ファイル (.wsdl)、XSD スキーマ ファイル (.xsd)、または検出ドキュメント (.disco) への URL。.discomap 検出ドキュメントへの URL は指定できません。 |
Path |
ローカル WSDL コントラクト ファイル (.wsdl)、XSD スキーマ ファイル (.xsd)、または検出ドキュメント (.disco または .discomap) へのパス。 |
オプション | 説明 |
---|---|
/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 オプションを使用する場合、この値は "servicerInterface" を含む <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>
参照
関連項目
.NET Framework ツール
Web サービス検出ツール (Disco.exe)
SDK のコマンド プロンプト