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