XML模式:SOAP
互聯(lián)網 發(fā)布時間:2008-10-17 20:15:49 作者:佚名
我要評論
簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)實際上是一種 Web 服務技術,但 Web 服務中客戶機和服務器之間的數據交換格式是通過靈活的 XML 模式實現(xiàn)的。
Web 服務的主要優(yōu)點是客戶機和服務器通過網絡進行信息和數據交換的互操作性的層次。SOAP 標準使用 XM
簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)實際上是一種 Web 服務技術,但 Web 服務中客戶機和服務器之間的數據交換格式是通過靈活的 XML 模式實現(xiàn)的。
Web 服務的主要優(yōu)點是客戶機和服務器通過網絡進行信息和數據交換的互操作性的層次。SOAP 標準使用 XML 以一種體系結構中立的格式來構造數據,定義數據類型和信息。
對于編程語言來說,只需要提供數據類型和需要在遠程服務器上調用的函數名稱即可。SOAP 庫將用主機語言編寫的信息和格式轉化成 XML 格式的消息,其中包括調用的函數和提供的參數。
通過 W3C 的例子就可以了解 SOAP 的結構。調用遠程 SOAP 函數
GetEndorsingBoarder() 的時候,客戶機上的調用程序生成清單 1 所示的 XML 消息。
清單 1. 調用遠程 SOAP 函數 GetEndorsingBoarder() <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetEndorsingBoarder xmlns:m="http://namespaces.snowboard-info.com"> <manufacturer>K2</manufacturer> <model>Fatbob</model> </m:GetEndorsingBoarder> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
SOAP 客戶機發(fā)送的整個消息都放在 SOAP 信封中。信封的內容就是消息的詳細內容。
被調用的函數顯然是
GetEndorsingBoarder,它包括兩個參數:manufacturer 和 model。由此可見,它把本地的可能采用二進制編碼的字符串轉化成了 XML 字符串。由于 XML 是平臺獨立的,主機使用 SOAP 系統(tǒng)不需要復雜的二進制編碼和解碼就可以交換消息。
服務器通過另一個 XML 編碼的 SOAP 信封返回響應,這一次是函數的返回值。SOAP 請求的響應格式與函數相同,只不過在信封內容的后面加上了
Response,如清單 2 所示。
清單 2. SOAP 請求的響應
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetEndorsingBoarderResponse xmlns:m="http://namespaces.snowboard-info.com"> <endorsingBoarder>Chris Englesmann</endorsingBoarder> </m:GetEndorsingBoarderResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
通常不需要自己編寫 SOAP 消息,SOAP 庫會自動生成。不過 SOAP 信封的結構和簡單性表明使用 SOAP 標準共享信息很簡單。
SOAP 大大簡化了交換消息和調用遠程函數的工作。遠程過程調用(Remote Procedure Call,RPC)標準需要復雜的方法來處理二進制數據的序列化,發(fā)送結構化更高的信息需要詳細的聲明和雙向的信息轉換。
使用 SOAP,XML 序列化大大降低了這種復雜性,使得跨平臺、跨語言集成和數據交換更加簡單。
相關文章
MIME類型中application/xml與text/xml的區(qū)別介紹
這篇文章介紹了MIME類型中application/xml與text/xml的區(qū)別,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-12-28- XML中擁有Schema特性,能夠比DTD更加強大地引入元素結構,下面我們就來詳解XML中的模式Schema的概念及作用和用法,需要的朋友可以參考下2021-11-30
- 這篇文章主要介紹了XML基本概念入門學習指南,包括其與HTML的關系以及元素和特殊標簽等,需要的朋友可以參考下2016-06-24
- XML標簽的自定義功能非常強大,比如本文將要講解的DTD(Document Type Definition)就帶給人們一種面向對象般的感覺,well,下面就來看一下XML中的DTD文件類型定義完全解析2016-06-24
- 這篇文章主要介紹了XML文件的閱讀與編輯,最常用的工具當然還是瀏覽器中的控制臺與源代碼查看,需要的朋友可以參考下2016-02-16
- 這篇文章主要介紹了XML的命名空間,包括命名空間的聲明等XML入門學習中的基礎知識,需要的朋友可以參考下2016-02-16
- 這篇文章主要介紹了XML中的樹形結構與DOM文檔對象模型,文中舉了JavaScript解析DOM對象的例子,需要的朋友可以參考下2016-02-15
- 這篇文章主要介紹了詳解XML編程中的模式定義XSD,講解了如何在XML文檔中聲明模式及定義類型等內容,需要的朋友可以參考下2016-02-15
- 這篇文章主要介紹了XML中的DTD文檔類型定義,是XML入門學習中的基礎知識,需要的朋友可以參考下2016-02-15
- 這篇文章主要介紹了XML代碼編寫的編碼與驗證問題,與HTML類似,XML文件的編碼也能在序言部分被指定,需要的朋友可以參考下2016-02-15

