名称映射规则

映射定义限定的 XML 元素名称、Java™ 类名和编码之间的关联。映射指定如何在给定的编码下,将具有标准名称的进入 XML 元素转换为 Java 类,反之亦然。两个映射方向是指 Java 至 XML 和 XML 至 Java。

下列名称映射规则只适用于使用 IBM® SOAP 运行时环境的 Web Service。

名称映射规则

下列规则是使用一个资源结构来说明的,在该结构中 java 文件(Example.javaComplexType.javaRefComplexType.java)包含在 JavaSource 文件夹下面的 package1.package2 包中。

名称映射规则反映用来创建 Web Service 的 Java bean 的包结构。例如,package1.package2 包下面的 Example bean 被映射至 WSDL 文件中的缺省名称空间 http:// package2.package1/。

为 Java bean 中引用的每种复杂类型都生成一个 XSD 文件,同时为简单类型的所有数组生成一个 XSD 文件。例如,Example bean 位于 package1.package2 包中。该 bean 引用一种复杂类型 ComplexType,而该复杂类型又引用另一种复杂类型 RefComplexTypeComplexType.xsdRefComplexType.xsd 文件放置在模式文件夹下面,来反映 ComplexTypeRefComplexType Java bean 的包结构。因此,如果在 package1.package2 包中也定义了 ComplexTypeRefComplexType Java bean 并且将模式文件夹设置为 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 不适用
缺省 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 Service 首选项的更多信息,请参阅 Web Service 首选项

WSDL import 语句的绝对 URI

在创建 Web Service 和生成框架 Java bean 时,V5.1 缺省行为在 WSDL import 语句中使用相对 URI。这意味着 WSDL 绑定文档是相对于 WSDL 服务文档的位置导入的。如果想要使用绝对 URI,则将需要更改 Web Service 首选项

使用绝对 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="... />

直接插入模式

V5.1 和 V6.0 缺省行为不使用直接插入模式。这意味着生成的任何模式元素都被放置在一个或多个 XSD 文件中。如果想使用直接插入模式,则将需要更改 Web Service 首选项。使用直接插入模式就意味着 schema 元素被放置在接口 WSDL 文件的 <types> 元素下面,并且不生成单独的 XSD 文件。

使用条款 | 反馈
(C) Copyright IBM Corporation 1999, 2005. All Rights Reserved.