Interstage Webサービスで使用するWSDLが、WSDLの仕様以外に従う必要のある事項について説明します。
参考
本節で使用しているXMLのネームスペースのprefixは、以下のとおりです。
“wsdl”が表すネームスペース:“http://schemas.xmlsoap.org/wsdl/”
“soap”が表すネームスペース:“http://schemas.xmlsoap.org/wsdl/soap/”
“mime”が表すネームスペース:“http://schemas.xmlsoap.org/wsdl/mime/”
“wsibp”が表すネームスペース:“http://ws-i.org/profiles/basic/1.1/xsd”
型定義
wsdl:typesでの型定義には、XMLスキーマのみ使用できます。個々のデータ型については、“18.3 Javaのデータ型とXMLのデータ型との対応”を参照してください。
XMLインスタンスの解釈が不定となる、スキーマ定義(例:出現回数が固定でなくかつ名前が同じ複数のelement定義が連続したsequenceモデル)に注意してください。そのような定義のデータは、実際の通信において、受信時の解釈も不定となります。
1つのcomplexType定義に、複数のany定義が含まれないようにしてください。
メッセージ
styleが“document”の場合、wsdl:messageに含まれるwsdl:partは1つ以下でなければなりません。
wsdl:partは、type属性またはelement属性のいずれか一方だけを指定できます。
ポートタイプ
wsdl:portTypeには、request-response型のオペレーションだけを使用できます。
operation要素のname属性には、1つのwsdl:portType内でユニークな値を指定しなければなりません。
バインディング
wsdl:bindingには、SOAPバインディングおよびMIMEバインディングだけを使用できます。
サービス
1つのWSDLに、wsdl:serviceは1つ以上存在するようにしてください。
WSDL拡張
WSDLの拡張要素/属性には、SOAPバインディングおよびMIMEバインディングで規定されたものだけが使用できます。
SOAPバインディング
soap:bindingのtransport属性の値は、“http://schemas.xmlsoap.org/soap/http”でなければなりません。
soap:headerは使用できません。
1つのWSDLで、styleの指定は“document”または“rpc”のいずれかに統一されていなければなりません。
styleが“document”の場合、useには“literal”のみ指定できます。
1つのWSDLで、useの指定は“literal”または“encoded”のいずれかに統一されていなければなりません。
useの指定は省略できません。
encodingStyle属性を指定する場合は、値は“http://schemas.xmlsoap.org/soap/encoding/”でなければなりません。
MIMEバインディング
以下の内容のWSDLはサポートされません。
mime:part要素が複数のmime:content要素を含む場合
wsibp:swaRefデータ型がxsd:element要素のtype属性またはwsdl:part要素のtype属性以外の場所から参照されている場合
その他
以下のいずれかがDOSデバイス名と一致するWSDLは使用できません。
型名
ポートタイプ名
サービス名
ネームスペースの構成要素('.'や'/'、':'で区切られた文字列)
該当する場合、iswsgen serverコマンドまたはiswsgen clientコマンドがisws15208やisws10443、isws10314などのエラーになる場合があります。
ただし、ネームスペースの構成要素のみが該当する場合は、iswsgenコマンドを以下のように実行することでWSDLを使用できます。
-PkgNSmappingFileオプションでJavaパッケージ名の構成要素がDOSデバイス名を含まないように指定する