マッピングは、XML エレメントの修飾名、Java™ クラス名、およびエンコード間における関連を定義します。 マッピングにより、所定のエンコード・スタイルにおいて、 完全修飾名を持つ着信 XML エレメントを Java クラスに変換する (またはその逆) 方法が指定されます。 この 2 つのマッピング方向をそれぞれ「Java から XML へ」「XML から Java へ」といいます。
以下の名前マッピングの規則は、 IBM® SOAP ランタイム環境を使用する Web サービスのみに適用されます。
ここでは、Example.java、 ComplexType.java、RefComplexType.java という各 Java ファイルが JavaSource フォルダー内に package1.package2 という形でパッケージ化されて入っているリソース構造を使用して各規則を説明していきます。
名前マッピングの規則は、Web サービスの作成に使用する Java Bean のパッケージ構造を反映したものです。 例えば package1.package2 パッケージの下にある Example Bean は、 WSDL ファイル内の http:// package2.package1/ のデフォルト名前空間にマップされます。
単純型のすべての配列について Java bean および 1 つの XSD ファイルで参照される複合型ごとに 1 つの XSD ファイルが生成されます。 例えば Example Bean は package1.package2 パッケージ にあります。 この Bean は、複合型 ComplexType を参照し、 この複合型は別の複合型 RefComplexType を参照しています。 ComplexType.xsd および RefComplexType.xsd ファイルは、 ComplexType と RefComplexType Java Bean から成るパッケージ構造を反映したスキーマ・フォルダー の下に置かれます。 そのため、Java Bean の ComplexType と RefComplexType が package1.package2 パッケージでも定義されていて、 かつスキーマ・フォルダーが WebContent/wsdl に設定されている場合は、 各 XSD ファイルは WebContent/wsdl/package1/package2/ComplexType.xsd と WebContent/wsdl/package1/package2/RefComplexType.xsd にそれぞれ配置されます。 いくつかの単純型から成る配列を Example Bean が使用する場合は、 XSD ファイルは WebContent/wsdl/package1/package2/Example.xsd にも配置されます。
下表は住所録のサンプルを参照します。 このサンプルは複合 Java Bean の例です。 このサンプルはサンプル素材集からインポートできます。
マッピング・スタイル V4 | 住所録の例 (マッピング・スタイル V4) | マッピング・スタイル V5.x | 住所録の例 (マッピング・スタイル V5.x) | |
---|---|---|---|---|
デフォルトの名前空間 | http://www. example.com/definitions/ ExampleRemoteInterface | http://www.addressbook.com/definitions/ AddressBookRemoteInterface | http:// package2.package1/ | http://addressbook.webservice/ |
デフォルトの型名 | package1.package2. ComplexType package1.package2. RefComplexType | webservice.addressbook.Address webservice.addressbook.PhoneNumber | ComplexType RefComplexType | Address PhoneNumber |
XSD ファイルのデフォルトのロケーションと名前 | WebContent/wsdl/ Example-schema.xsd | WebContent/wsdl/ AddressBook-schema.xsd | schema folder/ package1/package2/ ComplexType.xsd | WebContent/wsdl/ webservice/ addressbook/Address.xsd |
schema folder/ package1/package2/ RefComplexType.xsd | WebContent/wsdl/webservice/ addressbook/PhoneNumber.xsd | |||
schema folder/ package1/package2/ Example.xsd | N/A | |||
WSDL ファイルのデフォルトのロケーションと名前 | WebContent/wsdl/ Example.wsdl | WebContent/wsdl/ AddressBook.wsdl | WebContent/wsdl/ package1/package2/ Example.wsdl | WebContent/wsdl/ webservice/addressbook/ AddressBook.wsdl |
WebContent/wsdl/ Example-binding.wsdl | WebContent/wsdl/ AddressBook-binding.wsdl | WebContent/wsdl/ package1/package2/ ExampleBinding.wsdl | WebContent/wsdl/ webservice/addressbook/ AddressBookBinding.wsdl | |
WebContent/wsdl/ Example-service.wsdl | WebContent/wsdl/ AddressBook-service.wsdl | WebContent/wsdl/ package1/package2/ ExampleService.wsdl | WebContent/wsdl/ webservice/addressbook/ AddressBookService.wsdl | |
WebContent/wsdl/ ExampleJava.wsdl | WebContent/wsdl/ AddressBookJava.wsdl | WebContent/wsdl/ package1/package2/ ExampleJava.wsdl | WebContent/wsdl/ webservice/addressbook/ AddressBookJava.wsdl |
下表は、上の表で生成された WSDL ファイルを使って生成したものです。
マッピング・スタイル V4 | 住所録の例 (マッピング・スタイル V4) | マッピング・スタイル V5.x | 住所録の例 (マッピング・スタイル V5.x) | |
---|---|---|---|---|
Bean のロケーションと名前 | JavaSource/mappings/ Package1_package2_ ComplexTypeContentType.java | JavaSource/mappings/ Webservice_addressbook_ AddressContentType.java | JavaSource/ package1/package2/ ComplexType.java | JavaSource/webservice/ addressbook/Address.java |
JavaSource/mappings/ Package1_package2_ RefComplexTypeContentType.java | JavaSource/mappings/ Webservice_addressbook_ PhoneNumberContentType.java | JavaSource/ package1/package2/ RefComplexType.java | JavaSource/webservice/ addressbook/ PhoneNumber.java |
以下の設定は後方互換性に関連したものです。
以下の設定はコード生成に関連したものです。
上記設定のデフォルト値はどれも false です。Web サービス設定の変更について詳しくは、 『Web サービス設定』を参照してください。
V5.1 のデフォルトの振る舞いは、Web サービスを作成するときもスケルトン Java Bean を生成するときも、 WSDL インポート・ステートメントには相対 URI を使用します。 つまり、WSDL バインディング文書は、WSDL サービス文書の位置に相対的な位置へインポートされるということです。 絶対 URI を使用するには、「Web サービス設定」を変更する必要があります。
絶対 URI を使用する場合は、 ExampleService.wsdl でのインポート・ステートメントは次のようになります。
<import location="http://localhost:8080/ WebProject/wsdl/ ExampleBinding.wsdl" namespace="... />
ここで、WebProject は Web プロジェクト・フォルダーの名前を表しています。
相対 URI を使用する場合は、ExampleService.wsdl でのインポート・ステートメントは次のようになります。
<import location=" ExampleBinding.wsdl" namespace="... />
v5.1 および v6.0 のデフォルトの振る舞いでは、インライン・スキーマは使用されません。 つまり、生成されるスキーマ・エレメントは 1 つまたは複数の XSD ファイル内に配置されるということです。 インライン・スキーマを使用するには、 『Web サービス設定』を変更する必要があります。 インライン・スキーマの使用は、すなわち、 スキーマ・エレメントが <types> エレメント以下のインターフェース WSDL ファイルの中に配置されるということであり、 独立した XSD ファイルは生成されません。