SoapUI學(xué)習(xí)(1)- WebService基礎(chǔ)
WebService 它是一種構(gòu)建應(yīng)用程序的普遍模型,可以在任何支持網(wǎng)絡(luò)通信的操作系統(tǒng)中實(shí)施運(yùn)行; 它是一種新的web應(yīng)用程序分支,是自包含、自描述、模塊 化的應(yīng)用,可以發(fā)布、定位、通過web調(diào)用。 Web Service是一個(gè)應(yīng)用組件,它邏輯性的為其他應(yīng)用程序提供數(shù)據(jù)與服務(wù).各應(yīng)用程序通過網(wǎng)絡(luò)協(xié)議和規(guī)定的一些標(biāo)準(zhǔn)數(shù)據(jù)格式(Http,XML,Soap)來(lái)訪問Web Service,通過Web Service內(nèi)部執(zhí)行得到所需結(jié)果. Web Service可以執(zhí)行從簡(jiǎn)單的請(qǐng)求到復(fù)雜商務(wù)處理的任何功能。一旦部署以后,其他Web Service應(yīng)用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù)。 ------------------ 在構(gòu)建和使用Web Service時(shí),主要用到以下幾個(gè)關(guān)鍵的技術(shù)和規(guī)則: 1.XML:描述數(shù)據(jù)的標(biāo)準(zhǔn)方法. 2.SOAP:表示信息交換的協(xié)議. 3.WSDL:Web服務(wù)描述語(yǔ)言. 4.UDDI通用描述、發(fā)現(xiàn)與集成,它是一種獨(dú)立于平臺(tái)的,基于XML語(yǔ)言的用于在互聯(lián)網(wǎng)上描述商務(wù)的協(xié)議。 http://www.webxml.com.cn/zh_cn/index.aspx 這個(gè)網(wǎng)站中有不少免費(fèi)的WebService可用 ------------------我個(gè)人覺得下面的這個(gè)理解起來(lái)更容易些,甚至我都覺得他有點(diǎn)想API,只是放到web中了而已------------------------- 1,什么是 Web Service ? Web Service 就是一個(gè)網(wǎng)絡(luò)組件(一個(gè)可以通過網(wǎng)絡(luò)訪問的程序)。 它有一個(gè)或多個(gè)端口(Port),這些端口用于接收客戶端的請(qǐng)求,并返回響應(yīng) 請(qǐng)求和響應(yīng)的 都是一種基于XML的消息。 不過這種消息遵循特定的格式(SOAP )。 2,怎樣調(diào)用 Web Service? 可能這樣說(shuō)不太準(zhǔn)確,應(yīng)該是“怎樣調(diào)用Web Service中定義的操作 ” 每個(gè)Web Service 都有一個(gè)描述文件(WSDL ), 它描述 一個(gè) Web Service 的如下方面: ?。?)服務(wù)的端口(接收SOAP消息的端口) (2)服務(wù)提供的操作 ?。?)操作的輸入輸出格式的定義(通過XMLSchema 定義輸入輸出格式) 有了Web Service 的描述文件(WSDL ),我們就知道怎樣調(diào)用這個(gè)Web Service 中定義的操作了。 (1)通過服務(wù)提供的操作找到你想調(diào)用的操作 ?。?)找到這個(gè)操作的輸入格式的定義(XMLSchema ),按照這種輸入格式構(gòu)造一個(gè)SOAP消息 ?。?)將這個(gè)SOAP消息發(fā)送到服務(wù)的指定端口 ?。?)準(zhǔn)備接收一個(gè)從Web Service服務(wù)器返回的 SOAP 響應(yīng)吧 ! 3, Web Service服務(wù)器 一個(gè)Web Service服務(wù)器,本質(zhì)上和一個(gè)Web服務(wù)器是相同的。 它主要做下面這些事: --> 監(jiān)聽網(wǎng)絡(luò)端口(監(jiān)聽服務(wù)端口) --> 接收客戶端請(qǐng)求(接收SOAP請(qǐng)求) --> 解析客戶端請(qǐng)求(解析SOAP消息,將SOAP消息轉(zhuǎn)換為數(shù)據(jù)對(duì)象) --> 調(diào)用業(yè)務(wù)邏輯 (調(diào)用Web Service實(shí)現(xiàn)類的特定操作,參數(shù)是由SOAP消息轉(zhuǎn)換而來(lái)的數(shù)據(jù)對(duì)象) --> 生成響應(yīng) (將返回值轉(zhuǎn)換為SOAP消息) --> 返回響應(yīng) (返回SOAP響應(yīng))
XML 什么是 XML? · XML 指可擴(kuò)展標(biāo)記語(yǔ)言(EXtensible Markup Language) · XML 是一種標(biāo)記語(yǔ)言,很類似 HTML · XML 的設(shè)計(jì)宗旨是傳輸數(shù)據(jù),而非顯示數(shù)據(jù) · XML 標(biāo)簽沒有被預(yù)定義。您需要自行定義標(biāo)簽。 · XML 被設(shè)計(jì)為具有自我描述性。 · XML 是 W3C 的推薦標(biāo)準(zhǔn) XML 與 HTML 的主要差異 XML 不是 HTML 的替代。 XML 和 HTML 為不同的目的而設(shè)計(jì): XML 被設(shè)計(jì)為傳輸和存儲(chǔ)數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的內(nèi)容。 HTML 被設(shè)計(jì)用來(lái)顯示數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的外觀。 HTML 旨在顯示信息,而 XML 旨在傳輸信息。 沒有任何行為的 XML。XML 是不作為的。也許這有點(diǎn)難以理解,但是 XML 不會(huì)做任何事情。XML 被設(shè)計(jì)用來(lái)結(jié)構(gòu)化、存儲(chǔ)以及傳輸信息。 下面是 John 寫給 George 的便簽,存儲(chǔ)為 XML:<note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>
這個(gè)標(biāo)簽有標(biāo)題以及留言。它也包含了發(fā)送者和接受者的信息。但是,這個(gè) XML 文檔仍然沒有做任何事情。它僅僅是包裝在 XML 標(biāo)簽中的純粹的信息。我們需要編寫軟件或者程序,才能傳送、接收和顯示出這個(gè)文檔。 XML 僅僅是純文本 XML 沒什么特別的。它僅僅是純文本而已。有能力處理純文本的軟件都可以處理 XML。 不過,能夠讀懂 XML 的應(yīng)用程序可以有針對(duì)性地處理 XML 的標(biāo)簽。標(biāo)簽的功能性意義依賴于應(yīng)用程序的特性。 通過 XML 您可以發(fā)明自己的標(biāo)簽 上例中的標(biāo)簽沒有在任何 XML 標(biāo)準(zhǔn)中定義過(比如 <to> 和 <from>)。這些標(biāo)簽是由文檔的創(chuàng)作者發(fā)明的。這是因?yàn)?XML 沒有預(yù)定義的標(biāo)簽。在 HTML 中使用的標(biāo)簽(以及 HTML 的結(jié)構(gòu))是預(yù)定義的。HTML 文檔只使用在 HTML 標(biāo)準(zhǔn)中定義過的標(biāo)簽(比如 <p> 、<h1> 等等)。XML 允許創(chuàng)作者定義自己的標(biāo)簽和自己的文檔結(jié)構(gòu)。 XML 不是對(duì) HTML 的替代 XML 是對(duì) HTML 的補(bǔ)充。XML 不是對(duì) HTML 的替代,理解這一點(diǎn)很重要。在大多數(shù) web 應(yīng)用程序中,XML 用于傳輸數(shù)據(jù),而 HTML 用于格式化并顯示數(shù)據(jù)。 XML 應(yīng)用于 web 開發(fā)的許多方面,常用于簡(jiǎn)化數(shù)據(jù)的存儲(chǔ)和共享。 XML 把數(shù)據(jù)從 HTML 分離 如果你需要在 HTML 文檔中顯示動(dòng)態(tài)數(shù)據(jù),那么每當(dāng)數(shù)據(jù)改變時(shí)將花費(fèi)大量的時(shí)間來(lái)編輯 HTML。通過 XML,數(shù)據(jù)能夠存儲(chǔ)在獨(dú)立的 XML 文件中。這樣你就可以專注于使用 HTML 進(jìn)行布局和顯示,并確保修改底層數(shù)據(jù)不再需要對(duì) HTML 進(jìn)行任何的改變。通過使用幾行 JavaScript,你就可以讀取一個(gè)外部 XML 文件,然后更新 HTML 中的數(shù)據(jù)內(nèi)容。 XML 簡(jiǎn)化數(shù)據(jù)共享 在真實(shí)的世界中,計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)使用不兼容的格式來(lái)存儲(chǔ)數(shù)據(jù)。XML 數(shù)據(jù)以純文本格式進(jìn)行存儲(chǔ),因此提供了一種獨(dú)立于軟件和硬件的數(shù)據(jù)存儲(chǔ)方法。這讓創(chuàng)建不同應(yīng)用程序可以共享的數(shù)據(jù)變得更加容易。 XML 簡(jiǎn)化數(shù)據(jù)傳輸 通過 XML,可以在不兼容的系統(tǒng)之間輕松地交換數(shù)據(jù)。對(duì)開發(fā)人員來(lái)說(shuō),其中一項(xiàng)最費(fèi)時(shí)的挑戰(zhàn)一直是在因特網(wǎng)上的不兼容系統(tǒng)之間交換數(shù)據(jù)。由于可以通過各種不兼容的應(yīng)用程序來(lái)讀取數(shù)據(jù),以 XML 交換數(shù)據(jù)降低了這種復(fù)雜性。 XML 簡(jiǎn)化平臺(tái)的變更 升級(jí)到新的系統(tǒng)(硬件或軟件平臺(tái)),總是非常費(fèi)時(shí)的。必須轉(zhuǎn)換大量的數(shù)據(jù),不兼容的數(shù)據(jù)經(jīng)常會(huì)丟失。XML 數(shù)據(jù)以文本格式存儲(chǔ)。這使得 XML 在不損失數(shù)據(jù)的情況下,更容易擴(kuò)展或升級(jí)到新的操作系統(tǒng)、新應(yīng)用程序或新的瀏覽器。 XML 使您的數(shù)據(jù)更有用 由于 XML 獨(dú)立于硬件、軟件以及應(yīng)用程序,XML 使您的數(shù)據(jù)更可用,也更有用。不同的應(yīng)用程序都能夠訪問您的數(shù)據(jù),不僅僅在 HTML 頁(yè)中,也可以從 XML 數(shù)據(jù)源中進(jìn)行訪問。通過 XML,您的數(shù)據(jù)可供各種閱讀設(shè)備使用(手持的計(jì)算機(jī)、語(yǔ)音設(shè)備、新聞閱讀器等),還可以供盲人或其他殘障人士使用。 XML 用于創(chuàng)建新的 Internet 語(yǔ)言 很多新的 Internet 語(yǔ)言是通過 XML 創(chuàng)建的: 其中的例子包括: · XHTML - 最新的 HTML 版本 · WSDL - 用于描述可用的 web service · WAP 和 WML - 用于手持設(shè)備的標(biāo)記語(yǔ)言 · RSS - 用于 RSS feed 的語(yǔ)言 · RDF 和 OWL - 用于描述資源和本體 · SMIL - 用于描述針針對(duì) web 的多媒體 假如開發(fā)人員都是理性的 假如他們都是理性的,就讓未來(lái)的應(yīng)用程序使用 XML 來(lái)交換數(shù)據(jù)吧。 未來(lái)也許會(huì)出現(xiàn)某種字處理軟件、電子表格程序以及數(shù)據(jù)庫(kù),它們可以使用純XML WSDL 什么是 WSDL? · WSDL 指網(wǎng)絡(luò)服務(wù)描述語(yǔ)言 · WSDL 使用 XML 編寫 · WSDL 是一種 XML 文檔 · WSDL 用于描述網(wǎng)絡(luò)服務(wù) · WSDL 也可用于定位網(wǎng)絡(luò)服務(wù) · WSDL 還不是 W3C 標(biāo)準(zhǔn) WSDL 可描述網(wǎng)絡(luò)服務(wù)(Web Services) WSDL 指網(wǎng)絡(luò)服務(wù)描述語(yǔ)言 (Web Services Description Language)。 WSDL 是一種使用 XML 編寫的文檔。這種文檔可描述某個(gè) Web service。它可規(guī)定服務(wù)的位置,以及此服務(wù)提供的操作(或方法)。 WSDL 文檔僅僅是一個(gè)簡(jiǎn)單的 XML 文檔。 它包含一系列描述某個(gè) web service 的定義。 WSDL 文檔結(jié)構(gòu) WSDL 文檔是利用這些主要的元素來(lái)描述某個(gè) web service 的: 元素 定義<portType>web service 執(zhí)行的操作<message>web service 使用的消息<types>web service 使用的數(shù)據(jù)類型<binding>web service 使用的通信協(xié)議
一個(gè) WSDL 文檔的主要結(jié)構(gòu)是類似這樣的:<definitions><types>definition of types........</types><message>definition of a message....</message><portType>definition of a port.......</portType><binding>definition of a binding....</binding></definitions>
PS:實(shí)際上以上的結(jié)構(gòu),可以用瀏覽器打開一個(gè)具體的webservice來(lái)看,比如以下查詢手機(jī)歸屬地的wsdl格式的webservice http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl WSDL 文檔可包含其它的元素,比如 extension 元素,以及一個(gè) service 元素,此元素可把若干個(gè) web services 的定義組合在一個(gè)單一的 WSDL 文檔中。 WSDL 端口 <portType> 元素是最重要的 WSDL 元素。 它可描述一個(gè) web service、可被執(zhí)行的操作,以及相關(guān)的消息。 可以把 <portType> 元素比作傳統(tǒng)編程語(yǔ)言中的一個(gè)函數(shù)庫(kù)(或一個(gè)模塊、或一個(gè)類)。 WSDL 消息 <message> 元素定義一個(gè)操作的數(shù)據(jù)元素。 每個(gè)消息均由一個(gè)或多個(gè)部件組成。可以把這些部件比作傳統(tǒng)編程語(yǔ)言中一個(gè)函數(shù)調(diào)用的參數(shù)。 WSDL types <types> 元素定義 web service 使用的數(shù)據(jù)類型。 為了最大程度的平臺(tái)中立性,WSDL 使用 XML Schema 語(yǔ)法來(lái)定義數(shù)據(jù)類型。 WSDL Bindings <binding> 元素為每個(gè)端口定義消息格式和協(xié)議細(xì)節(jié)。
WSDL 實(shí)例 這是某個(gè) WSDL 文檔的簡(jiǎn)化的片段:<message name="getTermRequest"><part name="term" type="xs:string"/></message><message name="getTermResponse"><part name="value" type="xs:string"/></message><portType name="glossaryTerms"><operation name="getTerm"><input message="getTermRequest"/><output message="getTermResponse"/></operation></portType>
在這個(gè)例子中,<portType> 元素把 "glossaryTerms" 定義為某個(gè)端口的名稱,把 "getTerm" 定義為某個(gè)操作的名稱。 操作 "getTerm" 擁有一個(gè)名為 "getTermRequest" 的輸入消息,以及一個(gè)名為 "getTermResponse" 的輸出消息。 <message> 元素可定義每個(gè)消息的部件,以及相關(guān)聯(lián)的數(shù)據(jù)類型。 對(duì)比傳統(tǒng)的編程,glossaryTerms 是一個(gè)函數(shù)庫(kù),而 "getTerm" 是帶有輸入?yún)?shù) "getTermRequest" 和返回參數(shù) getTermResponse 的一個(gè)函數(shù)。
XML
什么是 XML?
· XML 指可擴(kuò)展標(biāo)記語(yǔ)言(EXtensible Markup Language)
· XML 是一種標(biāo)記語(yǔ)言,很類似 HTML
· XML 的設(shè)計(jì)宗旨是傳輸數(shù)據(jù),而非顯示數(shù)據(jù)
· XML 標(biāo)簽沒有被預(yù)定義。您需要自行定義標(biāo)簽。
· XML 被設(shè)計(jì)為具有自我描述性。
· XML 是 W3C 的推薦標(biāo)準(zhǔn)
XML 與 HTML 的主要差異
XML 不是 HTML 的替代。
XML 和 HTML 為不同的目的而設(shè)計(jì):
XML 被設(shè)計(jì)為傳輸和存儲(chǔ)數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的內(nèi)容。
HTML 被設(shè)計(jì)用來(lái)顯示數(shù)據(jù),其焦點(diǎn)是數(shù)據(jù)的外觀。
HTML 旨在顯示信息,而 XML 旨在傳輸信息。
沒有任何行為的 XML。XML 是不作為的。也許這有點(diǎn)難以理解,但是 XML 不會(huì)做任何事情。XML 被設(shè)計(jì)用來(lái)結(jié)構(gòu)化、存儲(chǔ)以及傳輸信息。
下面是 John 寫給 George 的便簽,存儲(chǔ)為 XML:
<note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> |
這個(gè)標(biāo)簽有標(biāo)題以及留言。它也包含了發(fā)送者和接受者的信息。但是,這個(gè) XML 文檔仍然沒有做任何事情。它僅僅是包裝在 XML 標(biāo)簽中的純粹的信息。我們需要編寫軟件或者程序,才能傳送、接收和顯示出這個(gè)文檔。
XML 僅僅是純文本
XML 沒什么特別的。它僅僅是純文本而已。有能力處理純文本的軟件都可以處理 XML。
不過,能夠讀懂 XML 的應(yīng)用程序可以有針對(duì)性地處理 XML 的標(biāo)簽。標(biāo)簽的功能性意義依賴于應(yīng)用程序的特性。
通過 XML 您可以發(fā)明自己的標(biāo)簽
上例中的標(biāo)簽沒有在任何 XML 標(biāo)準(zhǔn)中定義過(比如 <to> 和 <from>)。這些標(biāo)簽是由文檔的創(chuàng)作者發(fā)明的。這是因?yàn)?XML 沒有預(yù)定義的標(biāo)簽。在 HTML 中使用的標(biāo)簽(以及 HTML 的結(jié)構(gòu))是預(yù)定義的。HTML 文檔只使用在 HTML 標(biāo)準(zhǔn)中定義過的標(biāo)簽(比如 <p> 、<h1> 等等)。XML 允許創(chuàng)作者定義自己的標(biāo)簽和自己的文檔結(jié)構(gòu)。
XML 不是對(duì) HTML 的替代
XML 是對(duì) HTML 的補(bǔ)充。XML 不是對(duì) HTML 的替代,理解這一點(diǎn)很重要。在大多數(shù) web 應(yīng)用程序中,XML 用于傳輸數(shù)據(jù),而 HTML 用于格式化并顯示數(shù)據(jù)。
XML 應(yīng)用于 web 開發(fā)的許多方面,常用于簡(jiǎn)化數(shù)據(jù)的存儲(chǔ)和共享。
XML 把數(shù)據(jù)從 HTML 分離
如果你需要在 HTML 文檔中顯示動(dòng)態(tài)數(shù)據(jù),那么每當(dāng)數(shù)據(jù)改變時(shí)將花費(fèi)大量的時(shí)間來(lái)編輯 HTML。通過 XML,數(shù)據(jù)能夠存儲(chǔ)在獨(dú)立的 XML 文件中。這樣你就可以專注于使用 HTML 進(jìn)行布局和顯示,并確保修改底層數(shù)據(jù)不再需要對(duì) HTML 進(jìn)行任何的改變。通過使用幾行 JavaScript,你就可以讀取一個(gè)外部 XML 文件,然后更新 HTML 中的數(shù)據(jù)內(nèi)容。
XML 簡(jiǎn)化數(shù)據(jù)共享
在真實(shí)的世界中,計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)使用不兼容的格式來(lái)存儲(chǔ)數(shù)據(jù)。XML 數(shù)據(jù)以純文本格式進(jìn)行存儲(chǔ),因此提供了一種獨(dú)立于軟件和硬件的數(shù)據(jù)存儲(chǔ)方法。這讓創(chuàng)建不同應(yīng)用程序可以共享的數(shù)據(jù)變得更加容易。
XML 簡(jiǎn)化數(shù)據(jù)傳輸
通過 XML,可以在不兼容的系統(tǒng)之間輕松地交換數(shù)據(jù)。對(duì)開發(fā)人員來(lái)說(shuō),其中一項(xiàng)最費(fèi)時(shí)的挑戰(zhàn)一直是在因特網(wǎng)上的不兼容系統(tǒng)之間交換數(shù)據(jù)。由于可以通過各種不兼容的應(yīng)用程序來(lái)讀取數(shù)據(jù),以 XML 交換數(shù)據(jù)降低了這種復(fù)雜性。
XML 簡(jiǎn)化平臺(tái)的變更
升級(jí)到新的系統(tǒng)(硬件或軟件平臺(tái)),總是非常費(fèi)時(shí)的。必須轉(zhuǎn)換大量的數(shù)據(jù),不兼容的數(shù)據(jù)經(jīng)常會(huì)丟失。XML 數(shù)據(jù)以文本格式存儲(chǔ)。這使得 XML 在不損失數(shù)據(jù)的情況下,更容易擴(kuò)展或升級(jí)到新的操作系統(tǒng)、新應(yīng)用程序或新的瀏覽器。
XML 使您的數(shù)據(jù)更有用
由于 XML 獨(dú)立于硬件、軟件以及應(yīng)用程序,XML 使您的數(shù)據(jù)更可用,也更有用。不同的應(yīng)用程序都能夠訪問您的數(shù)據(jù),不僅僅在 HTML 頁(yè)中,也可以從 XML 數(shù)據(jù)源中進(jìn)行訪問。通過 XML,您的數(shù)據(jù)可供各種閱讀設(shè)備使用(手持的計(jì)算機(jī)、語(yǔ)音設(shè)備、新聞閱讀器等),還可以供盲人或其他殘障人士使用。
XML 用于創(chuàng)建新的 Internet 語(yǔ)言
很多新的 Internet 語(yǔ)言是通過 XML 創(chuàng)建的:
其中的例子包括:
· XHTML - 最新的 HTML 版本
· WSDL - 用于描述可用的 web service
· WAP 和 WML - 用于手持設(shè)備的標(biāo)記語(yǔ)言
· RSS - 用于 RSS feed 的語(yǔ)言
· RDF 和 OWL - 用于描述資源和本體
· SMIL - 用于描述針針對(duì) web 的多媒體
假如開發(fā)人員都是理性的
假如他們都是理性的,就讓未來(lái)的應(yīng)用程序使用 XML 來(lái)交換數(shù)據(jù)吧。
未來(lái)也許會(huì)出現(xiàn)某種字處理軟件、電子表格程序以及數(shù)據(jù)庫(kù),它們可以使用純XML
WSDL
什么是 WSDL?
· WSDL 指網(wǎng)絡(luò)服務(wù)描述語(yǔ)言
· WSDL 使用 XML 編寫
· WSDL 是一種 XML 文檔
· WSDL 用于描述網(wǎng)絡(luò)服務(wù)
· WSDL 也可用于定位網(wǎng)絡(luò)服務(wù)
· WSDL 還不是 W3C 標(biāo)準(zhǔn)
WSDL 可描述網(wǎng)絡(luò)服務(wù)(Web Services)
WSDL 指網(wǎng)絡(luò)服務(wù)描述語(yǔ)言 (Web Services Description Language)。
WSDL 是一種使用 XML 編寫的文檔。這種文檔可描述某個(gè) Web service。它可規(guī)定服務(wù)的位置,以及此服務(wù)提供的操作(或方法)。
WSDL 文檔僅僅是一個(gè)簡(jiǎn)單的 XML 文檔。
它包含一系列描述某個(gè) web service 的定義。
WSDL 文檔結(jié)構(gòu)
WSDL 文檔是利用這些主要的元素來(lái)描述某個(gè) web service 的:
元素
定義
<portType> web service 執(zhí)行的操作 <message> web service 使用的消息 <types> web service 使用的數(shù)據(jù)類型 <binding> web service 使用的通信協(xié)議 |
一個(gè) WSDL 文檔的主要結(jié)構(gòu)是類似這樣的:
<definitions> <types> definition of types........ </types> <message> definition of a message.... </message> <portType> definition of a port....... </portType> <binding> definition of a binding.... </binding> </definitions> |
PS:實(shí)際上以上的結(jié)構(gòu),可以用瀏覽器打開一個(gè)具體的webservice來(lái)看,比如以下查詢手機(jī)歸屬地的wsdl格式的webservice
http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl
WSDL 文檔可包含其它的元素,比如 extension 元素,以及一個(gè) service 元素,此元素可把若干個(gè) web services 的定義組合在一個(gè)單一的 WSDL 文檔中。
WSDL 端口
<portType> 元素是最重要的 WSDL 元素。 它可描述一個(gè) web service、可被執(zhí)行的操作,以及相關(guān)的消息。 可以把 <portType> 元素比作傳統(tǒng)編程語(yǔ)言中的一個(gè)函數(shù)庫(kù)(或一個(gè)模塊、或一個(gè)類)。
WSDL 消息
<message> 元素定義一個(gè)操作的數(shù)據(jù)元素。 每個(gè)消息均由一個(gè)或多個(gè)部件組成。可以把這些部件比作傳統(tǒng)編程語(yǔ)言中一個(gè)函數(shù)調(diào)用的參數(shù)。
WSDL types
<types> 元素定義 web service 使用的數(shù)據(jù)類型。 為了最大程度的平臺(tái)中立性,WSDL 使用 XML Schema 語(yǔ)法來(lái)定義數(shù)據(jù)類型。
WSDL Bindings
<binding> 元素為每個(gè)端口定義消息格式和協(xié)議細(xì)節(jié)。
WSDL 實(shí)例
這是某個(gè) WSDL 文檔的簡(jiǎn)化的片段:
<message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType> |
在這個(gè)例子中,<portType> 元素把 "glossaryTerms" 定義為某個(gè)端口的名稱,把 "getTerm" 定義為某個(gè)操作的名稱。
操作 "getTerm" 擁有一個(gè)名為 "getTermRequest" 的輸入消息,以及一個(gè)名為 "getTermResponse" 的輸出消息。
<message> 元素可定義每個(gè)消息的部件,以及相關(guān)聯(lián)的數(shù)據(jù)類型。
對(duì)比傳統(tǒng)的編程,glossaryTerms 是一個(gè)函數(shù)庫(kù),而 "getTerm" 是帶有輸入?yún)?shù) "getTermRequest" 和返回參數(shù) getTermResponse 的一個(gè)函數(shù)。
posted on 2013-11-28 11:33 順其自然EVO 閱讀(551) 評(píng)論(0) 編輯 收藏