Interstage Application Server リファレンスマニュアル(コマンド編)
|
目次
索引
|
21.15 soapwsdl2idl
名前
soapwsdl2idl − WSDL-IDLコンバータ
形式
soapwsdl2idl WSDLfile IDLfile [ IDENTfile ]
機能説明
soapwsdl2idlコマンドは、WSDLfileで指定されたWSDL(Web Services Description Language)ファイルに記載された内容を、IDL(Interface Definition Language)に変換します。また、同時にWebサービス情報ファイルを生成します。Webサービス情報ファイルの詳細については、“SOAPサービス ユーザーズガイド”を参照してください。
WSDLファイルで以下の定義がされている場合は、変換エラーとし処理を中止します。
- SOAPプロトコルバインディングが一つも存在しない場合
- <soap:binding>要素のstyle属性が"rpc"でない場合
- IDLのデータ型に変換できないデータ型が指定されている場合(下表に掲載されていないXMLのデータ型が指定されている場合)
XMLのデータ型 |
CORBAのデータ型 |
xsd:int |
long |
xsd:unsignedInt |
unsigned long |
xsd:short |
short |
xsd:unsignedShort |
unsigned short |
xsd:long |
long long |
xsd:float |
float |
xsd:double |
double |
xsd:boolean |
boolean |
xsd:string |
wstring |
xsd:unsignedByte |
octet |
SOAP符号化で定められた列挙型
※<type>要素内で定義されている必要があります。
※baseがstringでないときはエラーとなります |
enum |
SOAP符号化で定められた配列型
※<type>要素内で定義されている必要があります。 |
sequence(1次元で可変長の場合)
配列 |
SOAP符号化で定められた構造体型
※<type>要素内で定義されている必要があります。 |
struct |
注) xsd:で始まるデータ型は、http://www.w3.org/2001/XMLSchemaに定義されている型です。
サポートされていないデータ型がWSDLファイル内で使用されている場合は、以下のようなエラーメッセージが出力されることがあります。<part>要素のtype要素で指定されたデータ型、<types>要素内でのデータ型の定義を見直してください。
「wsdl2idl: 空の構造体です: name=string」
- in/inoutパラメタの名前がいずれも同じメソッドがオーバーロードされている場合
- in/inoutパラメタを含まないメソッドがオーバーロードされている場合
WSDLfile
コマンドの入力となるWSDLファイルのファイル名を指定します。
IDLfile
生成するIDLファイルのファイル名を指定します。
IDENTfile
IDL-WSDL識別子情報ファイル名を指定します。
このファイルには、IDLファイル内の名前とWSDLファイル内の名前との対応関係が格納されています。
本ファイル名を省略した場合は、IDL-WSDL識別子情報ファイルの生成は行われません。
CORBA/SOAPゲートウェイプログラムを生成する場合に、このファイルが必要となります。
注意事項
- WSDLのWSDL解析において、XMLスキーマ部にエラーを検出した場合、以下のようなエラーメッセージが出力されますが、エラーメッセージ中の行、桁の値は、WSDL中の行、桁の値と一致していません。
wsdl2idl: WSDL解析中にエラーを検出しました:......
行 3, 桁 -1 で上記エラーを検出しました。
- WSDLファイル中に<service>要素が存在しない場合、IDLファイルへの変換が正しく行えません。WSDLファイルに必ず<service>要素があることを確認してください。
- 入力WSDLファイル内の各要素のname属性の値が、重複(英大文字・英小文字の区別せず)している場合に、メッセージ「wsdl2idl: スコープ内に同一名が存在します。IDLの生成を行いません: name=(名前)」が出力され、IDLファイルの生成処理が中断する場合があります。
本メッセージが出力された場合で、WSDLファイルが下記の[誤ったWSDL]に該当しない場合は、次のように対処してください。
1.WSDLファイル内の該当するname属性の値を書き換えてから、soapwsdl2idlコマンドを 実行してIDLファイルを生成してください。
2.その後、生成されたIDLファイルをエディタで開き、本来の名前に変名してから、SOAP アプリケーションの開発を実施するようにしてください。
WSDLファイルが[誤ったWSDL]に該当する場合は、WSDLの型定義として誤っていますの でWSDLを見直し、修正してください。
[誤ったWSDL]
次の例のWSDL(抜粋)における"code1"ように、一つのcomplex要素内のelement要素で同一の名前を複数回使用することはできません。
<types>
<schema ・・・>
<complexType name="invoiceStruct">
<sequence>
<element name="code1" type="xsd:string" />
<element name="code2" type="xsd:float" />
<element name="code1" type="xsd:int" />
</sequence>
</complexType>
</schema>
</types>
- コマンドの引数に指定する各ファイルのサフィックスは、小文字である必要があります。ftpコマンドを使用して移入した場合などで大文字になっている場合は、小文字に変名後にsoapwsdl2idlコマンドを実行してください。
- WSDLファイルの内容に誤りがあった場合、エラーメッセージに示したメッセージ以外のメッセージが表示されます。このような場合は、表示されたエラーメッセージに従い誤りを修正し、再度soapwsdl2idlコマンドを実行してください。なお、WSDLファイルに記述されたschemaタグの解析中にエラーを検出した場合、schemaタグに対してエラーメッセージを表示します。schemaタグに対してエラーメッセージが表示された場合は、schemaタグおよびschemaタグに従属するタグについて誤りがないか調べてください。
エラーメッセージ
The WSDL file is omitted.
エラー
WSDLファイルが省略されました。
The IDL file is omitted.
エラー
IDLファイルが省略されました。
終了ステータス
0: 正常終了
1: エラーを検出した
使用例(太字は入力を示します)
1. WSDLファイルmodule.wsdlをIDLファイルmodule.idlに変換します。
> soapwsdl2idl module.wsdl module.idl
All Rights Reserved, Copyright(C) 富士通株式会社 2005