名前マッピングの規則

マッピングは、XML エレメントの修飾名、Java™ クラス名、およびエンコード間における関連を定義します。  マッピングにより、所定のエンコード・スタイルにおいて、 完全修飾名を持つ着信 XML エレメントを Java クラスに変換する (またはその逆) 方法が指定されます。  この 2 つのマッピング方向をそれぞれ「Java から XML へ」「XML から Java へ」といいます。 

以下の名前マッピングの規則は、 IBM® SOAP ランタイム環境を使用する Web サービスのみに適用されます。

名前マッピングの規則

ここでは、Example.javaComplexType.javaRefComplexType.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 ファイルは、 ComplexTypeRefComplexType Java Bean から成るパッケージ構造を反映したスキーマ・フォルダー の下に置かれます。  そのため、Java Bean の ComplexTypeRefComplexTypepackage1.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 の例です。 このサンプルはサンプル素材集からインポートできます。

Java から WSDL および XSD へのマッピング

  マッピング・スタイル 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 および XSD から Java へのマッピング

下表は、上の表で生成された 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 サービス設定』を参照してください。

WSDL インポート・ステートメント用の絶対 URI

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 ファイルは生成されません。

ご利用条件 | フィードバック
(C) Copyright IBM Corporation 1999, 2004. All Rights Reserved. (C) Copyright IBM Japan 2005