2010-03-11 94 views
8

XML和SOAP之間的區別是什麼?我一直在閱讀一些關於SOAP的介紹性文章,但我很困惑。這是我第一次閱讀SOAP,所以也許這很自然。XML和SOAP之間的區別

有人請向我解釋一下SOAP是什麼以及它用於什麼?也許給我一些它的用法的例子?

+20

我曾經遇到過一位程序員,他也需要問一個問題:「有人請向我解釋什麼是SOAP以及它用於什麼?」,但沒有大寫字母。 – 2010-03-11 15:17:52

+0

認真,我仍然在笑@此評論... – 2010-03-11 15:54:21

+1

程序員和良好的衛生並不總是齊頭並進。 – 2016-04-22 15:48:01

回答

9

維基百科有一個很棒的article,包括一個很好的example

最初定義爲簡單對象訪問協議的SOAP是在計算機網絡中實現Web服務時交換結構化信息的協議規範。

一個非常好的實際例子:

作爲SOAP過程如何使用一個外行的例子,一個SOAP消息可以被髮送到一個基於Web的服務的網站(例如,房價數據庫)與搜索所需的參數。該網站然後將返回一個XML格式的文件與結果數據(價格,位置,功能等)。由於數據以標準的機器可分析格式返回,因此可以直接將其集成到第三方站點中。

2

SOAP是一種通過網絡使用以調用web-services的消息協議。
消息格式使用XML,由WSDL的發音wizdil描述。

WSDL's也是XML文檔。

XML是一種使用標籤來標識文件內容的文檔格式,其使用範圍比SOAP和WSDL(它們是特定類型的XML)的範圍更廣。
查看XML的w3schools教程http://www.w3schools.com/xml/default.asp

17

閱讀所有其他的好答案之後,我認爲提供一個「超級門將」版本可能會有所幫助。我希望它有幫助。


SOAP就像使用郵政服務的計算機版本。一封郵件(如一封信)被放入信封中,併發送給預定的人。

首先,SOAP是一個XML詞彙表。它使用XML規範定義了一種語言,用於解決和發送發送消息。

具體來說,它規範了我們稱之爲:

  • 「信封」(實際上稱爲SOAP信封)
  • 「信」(稱爲 「身體」)
  • 各種註解(被稱爲「頭」 - 認爲這些如郵票,簽名請求,發送者信息等 - 其郵局用來路由消息)

此外,SOAP限定type-system,米就像您在.Net,Java或XSD中找到的類型定義一樣。我不會詳細說明這一點 - 因爲前面的答案中提到了大量的文檔。

該語言/詞彙的主要設計重點是允許跨平臺的互操作性。所以,Java調用COM,調用.Net,在可預見的未來仍然可以擴展的時候調用J2EE和其他的。我們可以簡單地使用SOAP來公開對象的功能,而不是在COM對象和Java類之間建立另一個橋樑,這樣其他平臺就可以在不需要橋接的情況下使用它們。或者,換句話說 - SOAP是最後一座橋樑,旨在取代以前的所有橋樑。

到目前爲止,所有主要的開發工具包都有某種形式的SOAP支持。這使得互操作性越來越多 - 但在大多數環境中,爲了使通信真正無縫,仍需要一定的配置級別。

我還應該注意到SOAP不再代表它的原意。在某些時候,我認爲一些重要的人會重新命名它:Service Oriented Access Protocol

我希望這有助於!

+0

很好的解釋......雖然我不確定'超級門將'的含義。但如果你的意思根本不是'外行',那麼這是一個很好的標題;) – 2010-03-13 05:00:03

+0

非常感謝你的解釋 – d3vpasha 2017-01-21 12:16:20