名稱對映規則

對映負責定義在限定的 XML 元素名稱、Java™ 類別名稱和編碼之間的關聯。對映會指定在給定編碼之下,含有完整名稱的送入 XML 元素要如何轉換成 Java 類別,反之亦然。 這兩個對映方向稱為「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 中所參照的每個複式類型都會產生一個 XSD 檔,所有簡式類型陣列會產生一個 XSD 檔。比方說,Example Bean 是在 package1.package2 套件中。這個 Bean 參照複式類型 ComplexType,ComplexType 又參照另一個複式類型 RefComplexTypeComplexType.xsdRefComplexType.xsd 檔都在綱目資料夾之下, 反映 ComplexTypeRefComplexType Java Bean 的套件結構。 因此,如果 ComplexTypeRefComplexType Java Bean 也定義在 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 範例。這個範例可以從「範例展示區」匯入。

從 Java 到 WSDL 和 XSD 的對映

  對映樣式第 4 版 通訊錄範例對映樣式第 4 版 對映樣式 5.x 版 通訊錄範例對映樣式 5.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 位址電話號碼
預設 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 檔所產生的。 

  對映樣式第 4 版 通訊錄範例對映樣式第 4 版 對映樣式 5.x 版 通訊錄範例對映樣式 5.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 import 陳述式的絕對 URI

5.1 版預設行為會在 WSDL import 陳述式中使用相對 URI 來建立 Web 服務和產生 Skeleton Java Bean。這表示 WSDL 連結文件是相對於 WSDL 服務文件的位置而匯入的。如果您想要使用絕對 URI,您將需要變更 Web 服務喜好設定

使用絕對 URI,ExampleService.wsdl 中的 import 樣子如下:

<import location="http://localhost:8080/ WebProject/wsdl/ ExampleBinding.wsdl" namespace="... />

其中 WebProject 是 Web 專案資料夾的名稱。

使用相對 URI,ExampleService.wsdl 中的 import 樣子如下:

<import location=" ExampleBinding.wsdl" namespace="... />

行內綱目

5.1 和 6.0 版的預設行為並不會使用行內綱目。這表示所有產生的綱目元素都會放在一或多個 XSD 檔中。如果您要使用行內綱目,您需要變更 Web 服務喜好設定。 使用行內綱目表示綱目元素會放在介面 WSDL 檔的 <types> 元素下,且不會產生另一個的 XSD 檔。

使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.