讀懂WSDL 接口開發(fā)_第1頁
讀懂WSDL 接口開發(fā)_第2頁
讀懂WSDL 接口開發(fā)_第3頁
全文預(yù)覽已結(jié)束

讀懂WSDL 接口開發(fā).doc 免費(fèi)下載

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

讀懂WSDL

1.WSDL是什么

WSDL指網(wǎng)絡(luò)服務(wù)描述語言(WebServicesDescriptionLanguage)。是一種使用XML編寫的文檔。這種文檔可描述某個(gè)Webservice。它可規(guī)定服務(wù)的位置,以及此服務(wù)提供的操作(或方法)。

2.WSDL文檔結(jié)構(gòu)

WSDL文檔是利用這些主要的元素來描述某個(gè)webservice的:

元素

定義

<portType>

最重要的WSDL元素,它可描述一個(gè)webservice可被執(zhí)行的操作以及相關(guān)的消息。

可以把<portType>元素比作傳統(tǒng)編程語言中的一個(gè)函數(shù)庫(kù)(或一個(gè)模塊、或一個(gè)類)。

<message>

用于描述一個(gè)操作的數(shù)據(jù)元素。每個(gè)消息均由一個(gè)或多個(gè)部件組成。可以把這些部件比作傳統(tǒng)編程語言中一個(gè)函數(shù)調(diào)用的參數(shù)。

<types>

webservice使用的數(shù)據(jù)類型定義。為了最大程度的平臺(tái)中立性,WSDL使用XMLSchema語法來定義數(shù)據(jù)類型。

<binding>

webservice使用的通信協(xié)議元素。為每個(gè)端口定義消息格式和協(xié)議細(xì)節(jié)。

一個(gè)WSDL文檔的主要結(jié)構(gòu)

l抽象定義

Types獨(dú)立與機(jī)器和語言的類型定義

Messages包括函數(shù)參數(shù)(輸入與輸出分開)或文檔描述

PortTypes引用消息部分中消息定義來描述函數(shù)簽名(操作名、輸入?yún)?shù)、輸出參數(shù))

2具體定義

BindingsPortTypes部分的每一操作在此綁定實(shí)現(xiàn)

Services確定每一綁定的端口地址

文檔形式為:

<definitions>

<types>

definitionoftypes........

</types>

<message>

definitionofamessage....

</message>

<portType>

definitionofaport.......

</portType>

<binding>

definitionofabinding....

</binding>

</definitions>

WSDL文檔可包含其它的元素,比如extension元素,以及一個(gè)service元素,此元素可把若干個(gè)webservices的定義組合在一個(gè)單一的WSDL文檔中。

2.1.WSDL文檔實(shí)例

歡迎光臨DIY部落,點(diǎn)擊這里查看更多文章教程......

參考地址:/course/3_program/java/javajs/2008315/104672.html

WSDL概述

WSDL就是描述XMLWeb服務(wù)的標(biāo)準(zhǔn)XML格式,WSDL由Ariba、Intel、IBM和微軟等開發(fā)商提出。它用一種和具體語言無關(guān)的抽象方式定義了給定Web服務(wù)收發(fā)的有關(guān)操作和消息。就其定義來說,你還不能把WSDL當(dāng)作一種對(duì)象接口定義語言,例如,CORBA或COM等應(yīng)用程序體系結(jié)構(gòu)就會(huì)用到對(duì)象接口定義語言。WSDL保持協(xié)議中立,但它確實(shí)內(nèi)建了綁定SOAP的支持,從而同SOAP建立了不可分割的聯(lián)系。所以,當(dāng)我在這篇文章中討論WSDL的時(shí)候,我會(huì)假定你把SOAP作為了你的通訊協(xié)議。

————————————————————————————

WSDL協(xié)議已經(jīng)被提交給了Internet標(biāo)準(zhǔn)組織W3C審批,目前還處于“確認(rèn)提交”狀態(tài)。W3C維持著正規(guī)的標(biāo)準(zhǔn)化系統(tǒng)同時(shí)提交提案必須經(jīng)過確定的一套批準(zhǔn)過程才能最終成為官方協(xié)議。在這種情況下,WSDL的地位,照外行看,至少標(biāo)準(zhǔn)組織在考慮讓其成為將來可能標(biāo)準(zhǔn)中的一部分。如果你對(duì)這方面的情況感興趣,或碰巧是一位特關(guān)心結(jié)果的“失眠癥患者”,那么你不妨到W3C網(wǎng)站上去讀讀有關(guān)的建議標(biāo)準(zhǔn)。

用WSDL說明服務(wù)

作為一種基于XML的標(biāo)準(zhǔn),如果你對(duì)XML具有一定的了解,那么WSDL的結(jié)構(gòu)對(duì)你就不會(huì)陌生了。WSDL文檔由服務(wù)用來描述數(shù)據(jù)類型的一組元素、服務(wù)可以收到的“消息”以及關(guān)聯(lián)每條消息的SOAP綁定組成。

清單A就是一份簡(jiǎn)單的WSDL文檔,該文檔同W3C網(wǎng)站公布的WSDL示范文本是一樣的,它說明了一種股票行情服務(wù)(這也是相當(dāng)標(biāo)準(zhǔn)的一種Web服務(wù))。

再仔細(xì)閱讀清單A,你可以看到,文檔首先以標(biāo)準(zhǔn)的XML頭開頭,其中包含了一個(gè)版本標(biāo)識(shí),而文檔的根元素則被稱為definitions。

Definitions元素可以采用若干種可選屬性,這些屬性說明文檔同時(shí)定義文檔其余部分使用的名稱空間(namespace)。在這種情況下,定義被分配了一個(gè)名字(StockQuote),某些名稱空間定義是根據(jù)以下常規(guī)前綴縮寫制定的:

tns—“thisnamespace”的縮寫,包含被定義服務(wù)的主名稱空間

xsdl—XMLSchema(XSD)名稱空間,用于定義文檔中的類型

soap—SOAP綁定采用的名稱空間

接下來,為了定義服務(wù)的接口需要在type元素內(nèi)定義所需要的任何復(fù)雜類型。這里你必須注意使用標(biāo)準(zhǔn)的XSD句法(屬性),它是創(chuàng)造數(shù)據(jù)類型定義最為適合的方法。不過,如果你愿意,WSDL也能擴(kuò)展使用不同的類型定義系統(tǒng)。

消息概述

按WSDL的用法,消息可以是傳遞給某一服務(wù)公布對(duì)象上的方法的任何參數(shù)或者方法被調(diào)用之后的任何返回結(jié)果。為了繼續(xù)使用股票行情這個(gè)Web服務(wù)例子,單一定義方法多半如以下偽代碼所示:

floatgetLastTradePrice(stringtickerSymbol)

這樣,就像你從清單A所看到的那樣,文檔中定義了兩條消息,一條代表方法的輸入?yún)?shù)tickerSymbol(GetLastTradePriceInput消息)另一條代表該方法的返回值(GetLastTradePriceResult消息)——最新的股票價(jià)格。

操作把消息組織到一起而且抽象地代表方法定義。在我們的例子中,這兩條消息都在GetLastTradePrice操作元素下的getLastTradePrice對(duì)象方法定義中組織起來。在一個(gè)WSDL文件中的所有操作又都挨個(gè)在portType元素內(nèi)分組。

WSDL文檔的余下部分采用服務(wù)器上的偵聽端點(diǎn)(binding元素)綁定消息同時(shí)把端口定義同單一服務(wù)實(shí)體(service元素)組合起來。清單A的例子就定義了通過SOAP采用服務(wù)所需要的綁定。

WSDL工具

你可以手工創(chuàng)建WSDL文件,不過,你還可以采用相當(dāng)多的工具通過WSDL來為你自動(dòng)處理和定義Web服務(wù)。推薦工具軟件如下:

Omniopera—一圖形用戶界面的WSDL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論