国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > XML > 正文

XML模式:SOAP

2024-09-05 20:55:24
字體:
供稿:網(wǎng)友

簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)實際上是一種 Web 服務(wù)技術(shù),但 Web 服務(wù)中客戶機和服務(wù)器之間的數(shù)據(jù)交換格式是通過靈活的 XML 模式實現(xiàn)的。
Web 服務(wù)的主要優(yōu)點是客戶機和服務(wù)器通過網(wǎng)絡(luò)進(jìn)行信息和數(shù)據(jù)交換的互操作性的層次。SOAP 標(biāo)準(zhǔn)使用 XML 以一種體系結(jié)構(gòu)中立的格式來構(gòu)造數(shù)據(jù),定義數(shù)據(jù)類型和信息。
對于編程語言來說,只需要提供數(shù)據(jù)類型和需要在遠(yuǎn)程服務(wù)器上調(diào)用的函數(shù)名稱即可。SOAP 庫將用主機語言編寫的信息和格式轉(zhuǎn)化成 XML 格式的消息,其中包括調(diào)用的函數(shù)和提供的參數(shù)。
通過 W3C 的例子就可以了解 SOAP 的結(jié)構(gòu)。調(diào)用遠(yuǎn)程 SOAP 函數(shù) GetEndorsingBoarder() 的時候,客戶機上的調(diào)用程序生成清單 1 所示的 XML 消息。清單 1. 調(diào)用遠(yuǎn)程 SOAP 函數(shù) 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 信封中。信封的內(nèi)容就是消息的詳細(xì)內(nèi)容。
被調(diào)用的函數(shù)顯然是 GetEndorsingBoarder,它包括兩個參數(shù):manufacturer 和 model。由此可見,它把本地的可能采用二進(jìn)制編碼的字符串轉(zhuǎn)化成了 XML 字符串。由于 XML 是平臺獨立的,主機使用 SOAP 系統(tǒng)不需要復(fù)雜的二進(jìn)制編碼和解碼就可以交換消息。
服務(wù)器通過另一個 XML 編碼的 SOAP 信封返回響應(yīng),這一次是函數(shù)的返回值。SOAP 請求的響應(yīng)格式與函數(shù)相同,只不過在信封內(nèi)容的后面加上了 Response,如清單 2 所示。
清單 2. SOAP 請求的響應(yīng)

<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 信封的結(jié)構(gòu)和簡單性表明使用 SOAP 標(biāo)準(zhǔn)共享信息很簡單。
SOAP 大大簡化了交換消息和調(diào)用遠(yuǎn)程函數(shù)的工作。遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)標(biāo)準(zhǔn)需要復(fù)雜的方法來處理二進(jìn)制數(shù)據(jù)的序列化,發(fā)送結(jié)構(gòu)化更高的信息需要詳細(xì)的聲明和雙向的信息轉(zhuǎn)換。
使用 SOAP,XML 序列化大大降低了這種復(fù)雜性,使得跨平臺、跨語言集成和數(shù)據(jù)交換更加簡單。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 横峰县| 乐昌市| 呈贡县| 大石桥市| 平阴县| 商城县| 仙居县| 分宜县| 金阳县| 嵊泗县| 天台县| 邢台市| 唐海县| 新密市| 梨树县| 化州市| 普定县| 乌海市| 玉田县| 北京市| 阜新市| 彩票| 普宁市| 沂水县| 万全县| 色达县| 额济纳旗| 新野县| 翼城县| 万源市| 宜兰县| 二连浩特市| 聂荣县| 文成县| 米脂县| 遂平县| 乡宁县| 仙桃市| 海丰县| 南京市| 阜城县|