對映內容

下列對映內容只適用於使用 IBM® SOAP 執行時期環境的 Web 服務。

內容說明

內容 說明
編碼樣式 透過 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 類別完整名稱會封裝資料的集成和資料運作的方法。
Serializer 類別(只適用於 SOAP) 在執行時期,將 Bean 類別實例轉換為根據編碼樣式的 XML 類型實例。類別的完整名稱會實作 org.apache.soap.util.xml.Serializer 介面。
Deserializer 類別(只適用於 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 2.3 版執行時期環境會保留一份這類對映項目的表格,稱為 SOAPMappingRegistry

在類型對映登錄中,單一 Java 類型至多可以對映至一個 XSD 類型, 單一 XSD 類型則至多可以對映至一個 Java 類型。依預設,支援大部分標準 Java 類型,以及 Java Bean。

Bean
對映至,或是從自動配置之 org.w3c.dom.Element 除外的任何 Java 類別對映。Bean 對映包含初始的 Java 類型、Java 陣列、某些共用 Java 類型樣式,如:java.lang.String、java.util.Date 和 java.util.Vector。
元素
對映至,或是從自動配置的 org.w3c.dom.Element Java 類型對映。
自訂
使用者定義的對映。 可讓預設 Bean 或「元素」對映樣式用來切換為「自訂」對映的對映。 您可以利用這個對映樣式,來建立在預設情況下執行時期所無法瞭解之類型(Java 或 XSD)的對映, 比方說,由使用者撰寫、不是 Bean 的 Java 類別, 或是來自非 XMLSchema2001 類型系統的 XML 複式類型。

從 Java 對映至 WSDL XSD (2001)

從 Java 到 WSDL XSD (2001) 之對映的表格,顯示從 Java 資料類型到 SOAP 和「文字 XML」編碼樣式之 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 既非位元組,亦非 org.w3c.dom.Element。
org.w3c.dom.Element 文字 XML 附註 5 附註 6 N/A N/A 元素   
Java Bean SOAP 附註 5 附註 7 BeanSerializer BeanSerializer Bean 完整序列化/取消序列化類別名稱是 org.apache.soap。 encoding.soapenc。 BeanSerializer。

從 WSDL XSD 對映至 Java(SOAP 連結)

從 WSDL XSD 到 Java(SOAP 連結)的對映表格說明從 WSDL 組件類型到 SOAP 和文字 XML 編碼樣式之 Java 資料類型的預設對映,如同由 WSDL SOAP 連結所定義。 該表格同時顯示序列化和非序列化配置到 SOAP 執行時期環境,以便執行 Java 和 XML 的轉換。WSDL 組件類型和編碼樣式的組合並沒有列在這個預設為自訂對映的表格中。

XML 類型名稱空間 附註 1 XML 類型名稱 編碼樣式 Java 類別 Serializer 類別 Deserializer 類別 對映樣式 註解
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 N/A N/A Bean 轉換是在產生 Proxy 或是 Skeleton 中處理,而非在 SOAP 執行時期環境中透過 SOAP 的序列化或非序列化來處理。
some-namespace 附註 12 some-complex-type(在 XSD 2001 中) 附註 12 文字 XML org.w3c.dom.Element 附註 15 N/A N/A 元素   
some-namespace 附註 13 some-type 附註 13 文字 XML org.w3c.dom.Element 附註 16 N/A N/A 元素   
xsd anyType 附註 11 文字 XML org.w3c.dom.Element N/A N/A 元素   
xsd base64Binary SOAP byte[] - - Bean   
xsd hexbinary SOAP byte[] - - Bean   
xml soap 元素 文字 XML org.w3c.dom.Element - - 元素   

從 WSDL XSD 到 Java(HTTP 連結)的對映

從 WSDL XSD 到 Java(HTTP 連結)的對映表格,說明從 WSDL 組件類型到 HTTP GET 和 POST 連結的 Java 資料類型。WSDL 組件類型和編碼樣式的組合並沒有列在這個預設為自訂對映的表格中。

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 元素
some-namespace 附註 12 some-complex-type(在 XSD 2001 中) 附註 12 text/xml org.w3c.dom.Element 附註 18 元素
some-namespace 附註 13 some-type 附註 13 mimeXml text/xml org.w3c.dom.Element 附註 19 元素
xsd anyType 附註 11 mimeXml text/xml org.w3c.dom.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 的 complexType ,並且定義基礎 wsdl:arrayType,而非直接對 映到 soap-enc:Array。
  5. 綱目名稱空間是自動依據 Java 類別名稱來建立與命名的。
  6. 會自動建立說明 "any 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. 名稱空間和類型名稱會識別 complexType 或是由 XSD 2001 定義的元素。
  13. 名稱空間和類型名稱會識別 complexType 或是由非 XSD 2001 之類型系統定義的元素。
  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 形式傳回的實例, 因此該類型只能對映至 org.w3c.dom.Element。
  19. 無法針對非 XSD 2001 類型系統中所定義的類型產生 Bean,因此類型只能對映至 org.w3c.dom.Element。
  20. 對於要適當地序列化/解除序列化之「向量」的內容, 向量內的每一種類型也需要加以對映。比方說,如果以 Bean X 移入向量, 則 Bean X 的對映項目必須存在。 否則,使用者將在執行時期看到如「無法序列化/解除序列化類型 X」訊息。
  21. XML 類型名稱「對映」現在已對映至 java.util.Map,而不是 java.util.Hashtable。
  22. 這些 XSD 類型可以對映至封套,前提是封套對應的初始類型並未和封套一起出現在所有 Bean 或 EJB 的輸入參數集中。
使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.