WSDLIMP.EXE - コマンドライン WSDL インポート ツール
WSDLIMP は、WSDL ドキュメントで定義されている型と API を表すコードを生成します。 このコードは、WSDL(Web Services Description Language:Web サービス記述言語)ドキュメントで記述されている Web サービスを呼び出すクライアント アプリケーションを作成するのに使用することができます。 Web サービスを実装するサーバーを作成する場合は、実装クラスを生成するようにコマンドライン オプションの 1 つでインポート ツールに指示し、その後で、生成されたメソッドの本体にコードを書くことでそれらを完成させることができます。 詳細は、「WSDL インポート ウィザード」を参照してください。
メモ: WSDLIMP では、WSDL ドキュメントに記述されている定義のうち、コードを生成できないものは無視します。 つまり、SOAP エンコーディングまたはドキュメント/リテラル エンコーディングを用いる Web サービスのみインポートできるのです。
WSDLIMP.EXE は WSDL ドキュメントをインポートし、その WSDL ドキュメントで記述されている Web サービスをアプリケーションから呼び出せるコードを生成します。 これは WSDL インポータ([新規作成]ダイアログの[WebServices]ページで利用可能)のコマンドライン版です。
WSDLIMP プログラムの起動時に、コマンドライン オプションを使って出力を構成することができます。 これらのオプションを使用すると、Object Pascal と C++ のどちらのコードを生成するか、サーバーを作成するため実装クラスを生成するかどうか、WSDL ドキュメントに記述されているさまざまな種類の定義をどう処理するかを指定することができます。
コマンドライン構文
WSDLIMP のコマンドライン構文は以下のとおりです。
WSDLIMP [<options>] <InputWSDLfile|URL>
コマンドラインのヘルプを表示するには、次のように入力します:
WSDLIMP
または
WSDLIMP -?
コマンドライン要素
WSDLIMP コマンドラインで使用できる要素は次のとおりです。
要素 | 説明 |
---|---|
<InputWSDLfile> |
インポートする WSDL 物理ファイル名を指定します。 |
<URL> |
Web で公開されている WSDL ドキュメントにアクセスする URL を指定します。 |
<options> |
WSDLIMP コマンドライン オプション。 |
コマンドライン オプション
WSDLIMP のコマンドライン オプションの一覧を以下の表に示します。 WSDLIMP コマンドライン オプションのほとんどは、統合されたWSDL インポート ウィザード内に対応するオプションがあります。 表のウィザードでのオプション名の列には、そのオプションの名前を示しています。
表では以下の記号を使用しています。
- オプションの後のプラス(
+
)記号:そのオプションがデフォルトでオンであることを示します。 - オプションの後のハイフン(
-
)記号:そのオプションがデフォルトでオフであることを示します。
WSDLIMP のオプション
オプション | ウィザードでのオプション名 | 説明 |
---|---|---|
言語生成オプション: | ||
-c |
WSDL ファイルに記述されている定義を表す C++ コードを生成します。 | |
-P |
WSDL ファイルに記述されている定義を表す Delphi コードを生成します。 | |
コード生成オプション: | ||
-Oa+ |
オプションの nillable 要素を処理する |
このオプションをオンにすると、nil 値になり得る省略可能なプロパティに関する情報が生成されます。 この情報を基に、SOAP ランタイムは特定のプロパティを nil 値にできるようにします。 |
-Ob- |
プロパティの設定アクセサ メソッドと取得アクセサ メソッドを使用する |
デフォルトでは、生成されたクラスのフィールドに直接対応するプロパティが生成されます。 このオプションをオンにすると、プロパティではなく設定アクセサ メソッドと取得アクセサ メソッドを強制的に生成させることができます。 |
-Od+ |
リモート可能型のデストラクタを生成する |
オンにすると、型を表すクラスにデストラクタが生成されます。 このデストラクタは、型がクラスまたはクラスの配列である、すべてのネストしたメンバを解放します。 この生成されたデストラクタにより、型を表すクラスのインスタンスを解放するために必要な作業が単純化されます。これは、クラスを使用してリモート可能型を表しているクラス メンバを明示的に解放する必要がなくなるためです。 |
-Oe+ |
スコープの設定された列挙型を生成する |
スコープの設定された列挙型を生成します。 |
-Of+ |
[Fault タイプをインポートする] |
このオプションをオンにすると、問題があると判定されたタイプも処理されます。 |
-Og- |
[COM API を使ってインターフェイス GUID を生成する] |
オンにすると、サービスをインポートするたびに、一意の GUID が割り当てられます。 このオプションをオフにすると、サービスのコードを何度生成しても、そのサービスに対して生成された GUID は変わらずに保持されます。 ほとんどの場合では、このオプションをオフにすることを推奨します。 |
-Oh+ |
[ヘッダー タイプをインポートする] |
オンにすると、ヘッダーと判定されたタイプを処理できます。 |
-Oi+ |
[警告をコメントとして挿入する] |
オンにすると、生成されるファイルの先頭に挿入されるコメントに、警告メッセージが追加されます。 これらの警告には、WSDL ドキュメントに無効な型定義があるなどの問題や、[リテラル パラメータをアンラップする]をオンにしているときにリテラル パラメータをアンラップしようとして発生する問題などが記述されます。 |
-Oj+ |
列挙型メンバを検証する |
このオプションをオンにすると、列挙メンバを生成するときに、必ずグローバル シンボルのリストが使用されます。 これにより、WSDL ドキュメントに宣言されている列挙型の列挙メンバ間の名前の衝突を回避できます。 Delphi 2009 以降では、このオプションではなく、[スコープの設定された列挙型を生成]/ |
-Ok- |
純粋なコレクションをラッパー クラス型にマップする |
このオプションをオンにすると、インポートした配列型をラッパー クラスにマップできるようになります。 このオプションは主に C++Builder のために用意されています。C++Builder では、配列型を直接 WSDL の配列型にマップできないので、ラッパー コレクション クラスが必要だからです。 |
-Ol- |
リテラルの型を生成する |
ドキュメント/リテラル エンコーディングでは、Web サービスで操作を記述しません。 その代わりに、期待される入力を表すレコードと、出力を表すレコードを記述します。 [リテラルの型を生成する]をオンにすると、レコードをメソッド呼び出しに変換する場合([リテラル パラメータをアンラップする]がオンの場合)にも、これら 2 つのレコードの型定義が生成されます。 |
-Om- |
out パラメータを許可する |
このオプションでは、SOAP メッセージのマルチパート部を返すときに、out パラメータを使用するメソッドを生成するかどうかを制御します。 このオプションをオフにすると、out パラメータは生成されず、マルチパートの SOAP メッセージのためのラッパー クラスが生成されます。 |
-Oo+ |
単独の out パラメータを戻り値と見なす |
オンにすると、出力メッセージを 1 つだけ持つ操作が関数にマップされ、出力メッセージが戻り値になります。 オフにすると、出力メッセージは出力パラメータにマップされます。 |
-Op+ |
インクルードおよびインポートされたスキーマを処理する |
このオプションをオンにすると、インクルードおよびインポートされたスキーマが処理されます。 |
-または- |
純粋なコレクションの要素のエイリアスを生成する |
これは下位互換のためのスイッチで、旧バージョンの製品と同様にコードを生成するためのものです。 これまでどおりにエイリアス型を生成できるようにするには、このオプションをオンにします。 デフォルトはオフです。 詳細については、「WSDL -Or- オプション」を参照してください。 |
-Os- |
クライアント実装ではなくサーバー実装を生成する |
オンにすると、インポートしたインターフェイスの実装クラスが生成されます。 WSDL ドキュメントに既に定義されている Web サービスを実装するサーバーを記述する場合に、このオプションを使用します。 |
-Ot+ |
[使用されていない型を出さない] |
このオプションをオンにすると、WSDL ドキュメントに宣言されていても、どの公開サービスでも使用されない型のコードは生成されません。 クラスにはこのルールが適用されないことに注意してください。基底クラスを必要とする派生クラスのインスタンスを、サービスが返す可能性があるからです。 この場合、基底クラスのコードと派生クラスのコードの両方が生成されます。 |
-Ou+ |
リテラル パラメータをアンラップする |
ドキュメント/リテラル エンコーディングでは、Web サービスで操作を記述しません。 その代わりに、期待される入力を表すレコードと、出力を表すレコードを記述します。 [リテラル パラメータをアンラップする]をオンにすると、これら 2 つのレコードそれぞれがメソッド呼び出しに変換されます。 |
-Ov+ |
[型とインターフェイスの詳細情報を生成する] |
このオプションをオンにすると、型の名前空間、サービスの形式、バインディング名など、WSDL のその他の公開データに関する情報が生成されます。 |
-Ow- |
文字列を WideString 型にマップする |
オンにすると、すべての文字列型が WideString 値にマップされます。 オフにすると、代わりに string 型が使用されます。 WideString 値は、拡張文字を使用する値を扱うときに、必要になる可能性があります。 文字列値で拡張文字を使用しない場合は、string 型を使用する方が効率的です。 |
-Ox+ |
クラス エイリアスをクラス型として生成する |
このオプションをオンにすると、弱いエイリアスの代わりにクラス型が生成されます。 このオプションによって、生成されるエイリアス クラスは、基底型とは異なる RTTI(Run Time Type Information:実行時型情報)を持ちます。 |
-Oz- |
nil 値を取り得る単純型には TXSString を使用する |
nil 値を取れる単純な型には TXSString を使用します。 |
SOAP バージョン オプション: | ||
-SOAP11 |
SOAP 1.1 プロトコルの WSDL バインディング拡張機能のみが処理されます。 | |
-SOAP12 |
SOAP 1.2 プロトコルの WSDL バインディング拡張機能のみが処理されます。 | |
ファイル オプション: | ||
-D<path> |
WSDLIMP で生成されたファイルの出力先ディレクトリ( | |
@<respfile> |
| |
-=<OutputFileName>+ |
等号( | |
プロキシ/サーバー認証: | ||
-user:UserName |
ユーザー名 |
このオプションを使用すると、ユーザー名を指定して、WSDL ドキュメントが認証を必要とするセキュア サーバー上にある場合に使用できます。 |
-pass:Password |
Password |
このオプションを使用すると、パスワードを指定して、WSDL ドキュメントが認証を必要とするセキュア サーバー上にある場合に、ユーザー名と共に使用できます。 |
-proxy:Proxy |
プロキシ |
指定された WSDL ドキュメントの URL に要求を転送しなければならない、すべてのプロキシ サーバーのホスト名を指定します。 |
WSDLIMP のコマンドライン サンプル
WSDLIMP のコマンドライン サンプルは、「WSDL インポータの使用」を参照してください。