映射属性

下列映射属性只适用于使用 IBM® SOAP 运行时环境的 Web Service。

属性描述

属性 描述
编码样式 通过 SOAP 协议序列化数据的规则。文字 XML(http://xml.apache.org/xml-soap/literalxml)基于 XML 模式实例。SOAP 编码(http://schemas.xmlsoap.org/soap/ encoding/)基于一个简单类型系统,该系统是在编程语言、数据库和半结构化数据中的类型系统中公共功能部件的概括。编码定义应用程序中定义的数据值如何能转换为协议格式或从协议格式转换为数据值。要了解有关 SOAP 编码的更多信息,请参阅 www.w3.org/TR/SOAP
XML 类型名称空间 用作 XML 文档中的前缀以便唯一地标识组织和避免元素名称冲突。
XML 类型名称 在 XSD 中定义的复杂类型或简单类型的名称。
bean 类 封装数据集合和对数据进行操作的方法的 Java 类的标准名称。
序列化器类(仅适用 SOAP) 在运行时,根据编码样式将 bean 类的实例转换为 XML 类型的实例。实现 org.apache.soap.util.xml.Serializer 接口的类的标准名称。
反序列化器类(仅适用于 SOAP) 在运行时,将给定编码样式的 XML 类型的实例转换为 bean 类的实例。实现 org.apache.soap.util.xml.Deserializer 接口的类的标准名称。
Marshaller 方法(仅适用于 HTTP) 在运行时,将 bean 类的实例转换为字符串以通过 HTTP 进行传输。
Unmarshaller 方法(仅适用于 HTTP) 在运行时,将通过 HTTP 接收的字符串的实例转换为 bean 类的实例。

映射样式

映射指定 XML Qname、Java 类名、编码样式以及序列化器和反序列化器(用来在类的实例与 XML Qname 的编码实例之间进行转换)之间的关联。这两种映射方向称为“Java 至 XML”和“XML 至 Java”。

SOAP V2.3 运行时环境都保存有这样的映射条目的一个表,称为 SOAPMappingRegistry

在类型映射注册表中,单个 Java 类型最多可以映射至一种 XSD 类型,而单个 XSD 类型最多可以映射至一种 Java 类型。缺省情况下,大多数标准 Java 类型以及 Java bean 都是受支持的。

Bean
至/自任何 Java 类(除可自动配置的 org.w3c.dom.Element 之外)的映射。bean 映射样式包含基本 Java 类型、Java 数组以及一些公共 Java 类类型(例如,java.lang.String、java.util.Date 和 java.util.Vector)。
Element
映射至可自动配置的 Java 类型 org.w3c.dom.Element 或从其映射。
定制
用户定义的映射。缺省为 Bean 或“元素”映射样式的映射可切换为“定制”映射。此映射样式用来为在缺省情况下运行时不了解的类型(Java 或 XSD)创建映射,例如,为用户编写的并非 bean 的 Java 类或是非 XMLSchema2001 类型系统中的 XML 复杂类型创建映射。

从 Java 至 WSDL XSD(2001)的映射

“从 Java 至 WSDL XSD(2001)的映射”表为 SOAP 和文字 XML 编码样式显示从 Java 数据类型至 WSDL 部件类型的缺省映射,如 WSDL SOAP 绑定所定义的那样。该表还显示配置到 SOAP 运行时环境中以执行 Java 与 XML 之间的实际转换的序列化器和反序列化器。未列示在此表中的 Java 类型和编码样式的组合缺省为“定制”映射。

Java 类型 编码样式 XML 类型名称空间 注 1 XML 类型名称 序列化器 反序列化器 映射样式 注释
boolean, java.lang.Boolean SOAP xsd boolean - - Bean   
byte, java.lang.Byte SOAP xsd byte - - Bean   
short, java.lang.Short SOAP xsd short - - Bean   
int, java.lang.Integer SOAP xsd int - - Bean   
long, java.lang.Long SOAP xsd long - - Bean   
float, java.lang.Float SOAP xsd float - - Bean   
double, java.lang.Double SOAP xsd double - - Bean   
java.lang.String SOAP xsd string - - Bean   
java.math.BigDecimal SOAP xsd decimal - - Bean   
java.util.GregorianCalendar SOAP xsd date - - Bean   
java.util.Date SOAP xsd dateTime - - Bean   
java.util.Vector SOAP xml-soap 注 2 注 20 Vector - - Bean   
java.util.Map SOAP xml-soap 注 2 注 20 Map - - Bean   
java.util.Hashtable SOAP xml-soap 注 2 注 20 Map - - Bean   
byte[] SOAP soap-enc 注 3 base64 - - Bean   
T[](某类型的数组 T) SOAP soap-enc 注 3 Array 注 4 - - Bean 假定 T 既不是 byte 也不是 org.w3c.dom.Element。
org.w3c.dom.Element。 文字 XML 注 5 注 6 不适用 不适用 Element   
Java Bean SOAP 注 5 注 7 BeanSerializer BeanSerializer Bean 序列化器/反序列化器限定类名是 org.apache.soap. encoding.soapenc. BeanSerializer。

从 WSDL XSD 至 Java(SOAP 绑定)的映射

“从 WSDL XSD 至 Java(SOAP 绑定)的映射”表为 SOAP 和文字 XML 编码样式描述从 WSDL 部件类型至 Java 数据类型的缺省映射,如 WSDL SOAP 绑定所定义的那样。该表还显示配置到 SOAP 运行时环境中以执行 Java 与 XML 之间的实际转换的序列化器和反序列化器。未列示在此表中的 WSDL 部件类型和编码样式的组合缺省为“定制”映射。

XML 类型名称空间 注 1 XML 类型名称 编码样式 Java 类 序列化器类 反序列化器类 映射样式 注释
xsd boolean SOAP boolean, java.lang.Boolean 注 22 - - Bean   
xsd byte SOAP byte, java.lang.Byte 注 22 - - Bean   
xsd short SOAP short, java.lang.Short 注 22 - - Bean   
xsd int SOAP int, java.lang.Integer 注 22 - - Bean   
xsd long SOAP long, java.lang.Long 注 22 - - Bean   
xsd float SOAP float, java.lang.Float 注 22 - - Bean   
xsd double SOAP double, java.lang.Double 注 22 - - Bean   
xsd string SOAP string - - Bean   
xsd decimal SOAP java.math.BigDecimal - - Bean   
xsd date SOAP java.util.GregorianCalendar - - Bean   
xsd dateTime 注 10 SOAP java.util.Date - - Bean   
xml-soap 注 2 Vector SOAP java.util.Vector - - Bean   
xml-soap 注 2 Map SOAP java.util.Map 注 21 - - Bean   
soap-enc 注 3 base64 SOAP byte[] - - Bean   
soap-enc 注 3 Array SOAP T[] 注 4 - - Bean T 是来自 wsdl:arrayType 的映射 注 4
some-namespace 注 12 some-complex-type(在 XSD 2001 中)注 12 SOAP 注 14 BeanSerializer BeanSerializer Bean 序列化器/反序列化器限定类名是 com.ibm.etools. webservice.runtime. XSDAnyTypeSerializer BeanSerializer.
some-namespace 注 12 some-complex-type(在 XSD 2001 中)注 12 文字 XML 注 14 不适用 不适用 Bean 转换是在生成的代理或框架中处理的,而不是在 SOAP 运行时环境中通过 SOAP 序列化器或反序列化器处理的。
some-namespace 注 12 some-complex-type(在 XSD 2001 中)注 12 文字 XML org.w3c.dom.Element 注 15 不适用 不适用 Element   
some-namespace 注 13 some-type 注 13 文字 XML org.w3c.dom.Element 注 16 不适用 不适用 Element   
xsd anyType 注 11 文字 XML org.w3c.dom.Element。 不适用 不适用 Element   
xsd base64Binary SOAP byte[] - - Bean   
xsd hexbinary SOAP byte[] - - Bean   
xml soap Element 文字 XML org.w3c.dom.Element。 - - Element   

从 WSDL XSD 至 Java(HTTP 绑定)的映射

“从 WSDL XSD 至 Java(HTTP 绑定)的映射”表描述了对应于 HTTP GET 和 POST 绑定的从 WSDL 部件类型至 Java 数据类型的缺省映射。未列示在此表中的 WSDL 部件类型和编码样式的组合缺省为“定制”映射并且要求用户提供 marshaller 和 unmarshaller 方法。

XML 类型名称空间 注 1 XML 类型名称 MIME 类型 Java 类 映射样式
xsd boolean text/plain text/xml mimeXml boolean Bean
xsd byte text/plain text/xml mimeXml byte Bean
xsd short text/plain text/xml mimeXml short Bean
xsd int text/plain text/xml mimeXml int Bean
xsd long text/plain text/xml mimeXml long Bean
xsd float text/plain text/xml mimeXml float Bean
xsd double text/plain text/xml mimeXml double Bean
xsd string text/plain text/xml mimeXml string Bean
xsd decimal text/plain text/xml mimeXml java.math.BigDecimal Bean
xsd date text/plain text/xml mimeXml java.util.GregorianCalendar Bean
xsd dateTime 注 10 mimeXml text/plain text/xml java.util.Date Bean
some-namespace 注 12 some-complex-type(在 XSD 2001 中)注 12 mimeXml 注 14 Bean
some-namespace 注 12 some-complex-type(在 XSD 2001 中)注 12 mimeXml org.w3c.dom.Element 注 17 Element
some-namespace 注 12 some-complex-type(在 XSD 2001 中)注 12 text/xml org.w3c.dom.Element 注 18 Element
some-namespace 注 13 some-type 注 13 mimeXml text/xml org.w3c.dom.Element 注 19 Element
xsd anyType 注 11 mimeXml text/xml org.w3c.dom.Element。 Element

  1. 名称空间前缀 xsd 定义为 URI http://www.w3.org/2001/XMLSchema。
  2. 名称空间前缀 xml-soap 定义为 URI http://xml.apache.org/xml-soap。这不是 SOAP 标准 URI。
  3. 名称空间前缀 soap-enc 定义为 URI http://schemas.xmlsoap.org/soap/encoding/。这是 SOAP 标准 URI。
  4. 映射是至限制 soap-enc:Array 并定义基本 wsdl:arrayType 的 complexType 的映射,而不是直接至 soap-enc:Array 的映射。
  5. 模式名称空间是根据 Java 类名自动创建和命名的。
  6. 描述“任何 XML”的模式类型是自动创建的。
  7. 模式类型是根据 Java 类名自动创建和命名的。
  8. SOAP 2.2 不定义 Java 字符与 XSD 之间的缺省映射。
  9. SOAP 2.2 不定义 java.lang 基本包装器类型(例如,java.lang.Integer)与 XSD 之间的缺省映射。
  10. 2001 级别的 XSD 中的 dateTime 类型在 2000/10 和 1999 级别的 XSD 中称为 timeInstant。
  11. 或由上面的注 6 生成的相似的类型。
  12. 名称空间和类型名标识使用 XSD 2001 定义的 complexType 或元素。
  13. 名称空间和类型名标识使用除 XSD 2001 之外的类型系统定义的 complexType 或元素。
  14. Java bean 和任何必需的嵌套 bean 是根据复杂类型名或元素名称以及 Java bean 类型结构自动创建和命名的。
  15. (可选)XSD 2001 中复杂类型的文字 XML 编码实例可以映射至 org.w3c.dom.Element 而不是 Java bean。
  16. 不能为在除 XSD 2001 之外的类型系统中定义的类型生成 bean,因此,这种类型的文字 XML 编码实例只可映射至 org.w3c.dom.Element。
  17. (可选)作为 <mime:mimeXml> 返回且具有 XSD 2001 中的类型的实例可以映射至 org.w3c.dom.Element,而不是 Bean。
  18. 对于作为 <mime:content type="text/xml"> bean 返回的实例并未生成 bean,因此,类型只可映射至 org.w3c.dom.Element。
  19. 对于在除 XSD 2001 之外的类型系统中定义的类型,不能生成 bean,因此,类型只可映射至 org.w3c.dom.Element。
  20. 要正确地对“向量”的内容进行序列化/反序列化,还需要对向量中的每种类型进行映射。例如,如果向量是使用 bean X 填充的,则 bean X 的映射条目必须存在。否则,在运行时用户将看到类似这样一条消息:“无法对类型 X 进行序列化/反序列化”。
  21. 现在已经将 XML 类型名称 Map 映射至 java.util.Map,而不是 java.util.Hashtable。
  22. 只要没有任何包装器及其相应的基本类型一起出现在 Bean 或 EJB 的所有输入参数的集合中,就可以将这些 XSD 类型映射至包装器。
使用条款 | 反馈
(C) Copyright IBM Corporation 1999, 2005. All Rights Reserved.