




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、WSDL 概述WebServicesDescriptionLanguage(WSDLWeb 服務(wù)語言)是一個(gè)用于精確描述 WebService 的文檔格式。WSDL 非常適合于用作代碼生成器,它能夠讀取 WSDL 文檔,并且可以為訪問 Web 服務(wù)生成一個(gè)程序化的接口,大多數(shù)軟件供應(yīng)商和主要的標(biāo)準(zhǔn)機(jī)構(gòu)(包括 W3C、WS-I 和 OASIS)都支持WSDLo 例如:JAX-RPCprovider(例如:BEAWeblogic)通過 API 用 WSDL 生成相應(yīng)的占位程序;IBMWebSphere、Microsoft.NET 以及 ApacheAxis 都有自己的工具生成相關(guān)的代碼。下圖是一個(gè)
2、例子:ClicDtWebSenicc?HatfnrmEnJiuiidExvhsmgi?SOAP聯(lián),一、IntrrfacrITJCrfncrjtcJAXRPC)stubJhdHdp)intinlerfdtr1P,XCSDLIRedWSDLdneumem上面的例子 JAX-RPC 通過讀取 WSDL 文檔,創(chuàng)建 JAX-RPCRMI 接口(endpoint 接口)和實(shí)現(xiàn)此接口的網(wǎng)絡(luò)占位程序(stub)。客戶端程序通過 RMI 接口,Stub 和 WebService 服務(wù)端交換 SAOP 消息。二、WSDL 基本結(jié)構(gòu)WSDL文檔是一個(gè)遵循WSDLXML模式的XML文檔(文檔實(shí)例);類似于:SOAP
3、文檔是一個(gè)遵循SOAPXML模式的XML文檔(文檔實(shí)例);一個(gè)WSDL文檔的根元素是definitions元素,WSDL文檔包含7個(gè)重要的元素:types,import,message,portType,operations,binding和service元素。、WSDL 聲明3.1 XML 聲明6Code(tilt.illWSDL的聲明必須定義成使用:UTF-8或者UTF-16編碼。3.2 definition 元素所有WSDL文檔的根元素都是definition元素。2.%2definitionsname=BookQuoteWStargetNamespace=http:/www.Monso
4、n-H 元素中一般包括若干個(gè) XML 命名空間;/wsdl/是默認(rèn)的命名空間,這樣就可以不用顯式地定義每一個(gè) WSDL 元素的命名空間了,例如:;文檔中所有的元素缺省應(yīng)該屬于這個(gè)命名空間。definition 元素的的一個(gè)屬性是 name,此屬性不重要可以沒有;定義了 targetNamespace命名空間,它為在模式中顯式創(chuàng)建的所有新類型均聲明了 XML 命名空間,而且上面的例子中賦予了 mh 前綴。3.%2!-messageelementsdescribetheinputandoutputparameters-4.%2messagename
5、=GetBookPriceRequest5.%2partname=isbntype=xsd:string/6.%2/message7.%2messagename=GetBookPriceResponse8.%2partname=pricetype=xsd:float/9.%2/message10.%2!-portTypeelementdescribestheabstractinterfaceofaWebservice-11.%2portTypename=BookQuote12.%2operationname=getBookPrice13.%2inputname=isbnmessage=mh:G
6、etBookPriceRequest/14.%2outputname=pricemessage=mh:GetBookPriceResponse/上面的例子中:message元素利用name屬性指定了標(biāo)簽(例如:GetBookPriceRequest),這些標(biāo)簽會(huì)自動(dòng)使用targetNamespace的命名空間,標(biāo)簽了的messages元素通常被稱為定義。文檔中的其他元素用標(biāo)簽和命名空間前綴去應(yīng)用定義,例如上面的例子中:input元素是使用mh:GetBookPriceRequest來引用標(biāo)簽GetBookPriceRequest。15.%2.3Types 元素Types元素用作一個(gè)容器,定義了
7、自定義的特殊數(shù)據(jù)類型,在聲明消息部分(有效負(fù)載)的時(shí)候,messages定義使用了types元素中定義的數(shù)據(jù)類型與元素。Types元素作為一個(gè)容器,用來定義XML模式內(nèi)置的數(shù)據(jù)類型(即復(fù)雜類型和定制的簡(jiǎn)單類現(xiàn),詳細(xì)見WebServiceXML文章)中沒有描述的各種數(shù)據(jù)類型。例如:ISBN。上面的例子中,types元素中直接嵌套了一個(gè)完整的W3CXML模式文檔,檔。16.%2 .4Import 元素Import元素可以讓當(dāng)前的文檔使用其他WSDL文檔中指定命名空間中的定義。WSDL的import元素必須聲明兩個(gè)屬性, 即namespace屬性和location屬性。namespace屬性必須和正
8、導(dǎo)入的WSDL文檔中聲明的targetNamespace相匹配。location屬性必須指向一個(gè)實(shí)際的WSDL文檔。四、WSDL 抽象接口MessageportType和operation元素用于描述Web服務(wù)的抽象接口,相當(dāng)于JAVA或者C+中編程中的類的接口。其中portType相當(dāng)于類接口的名稱;operation相當(dāng)于接口中包含的函數(shù),message相當(dāng)于函數(shù)的參數(shù)和返回值。partname=isbntype=xsd:string/止匕文檔中targetNamespace必須是一個(gè)有效的非空值,而且必須屬于由WSDL文RPC 式樣的 Web 服務(wù)的 message 服務(wù) GetBulk
9、BookPriceRequest 表示消息的輸入(相當(dāng)于函數(shù)的參數(shù)),GetBulkBookPriceResponse 表示消息的輸出(相當(dāng)于函數(shù)的返回值)WebService 的輸入和輸出參數(shù)可以是多個(gè)(一個(gè)特點(diǎn)),每一個(gè)輸入或者輸出使用 part 元素定義, RPC 樣式必須使用 type 來定義類型 RPC 樣式用類型來數(shù)據(jù)定義過程調(diào)用, 調(diào)用中的每一個(gè)元素表示某一個(gè)類型的參數(shù)。文檔式樣 Web 服務(wù)的 Messages 元素:當(dāng)用戶采用文檔式樣消息傳遞模式的時(shí)候,messages 元素要應(yīng)用 types 定義中的頂級(jí)元素。具體頂級(jí)元素的定義和 XMLschema 詳見 WebServe
10、rXML 文檔。消息部分使用 element 屬性定義文檔式樣的消息傳遞要交換 XML 文檔,并且應(yīng)用它們的頂級(jí)元素。注:Messages 元素的 RPC/Document 試樣對(duì)應(yīng)了 SOAPRPC/Document 消息傳遞模式,詳細(xì)見 WebServerSOAP 相關(guān)文檔xsd:elementname=conformance-rulestype=xsd:string/xsd:sequence/xsd:complexType/xsd:element/xsd:schema/types!-messageelementsdescribetheinputandoutputparameters-me
11、ssagename=GetBookPriceRequestpartname=isbntype=xsd:string/messagemessagename=GetBookPriceResponsepartname=pricetype=xsd:float/messagemessagename=InvalidArgumentFaultpartname=error_messageelement=mh:InvalidIsbnFaultDetail/message聲明錯(cuò)誤消息:錯(cuò)誤使用的消息定義只能采用 Document/Literal 編碼樣式上面聲明了匿名類型,InvalidIsbnFaultDeta
12、il 不需要 type 類型,complexType 中也不包括 name 屬性,詳細(xì)見 WebServiceXML 相關(guān)文檔。portType 元素PortType元素定義了Web服務(wù)的抽象接口,它可以由一個(gè)或者多個(gè)operation元素,每個(gè)operation元素定義了一個(gè)RPC樣式或者文檔樣式的Web服務(wù)方法。operation 元素Operation元素要用一個(gè)或者多個(gè)messages消息來定義它的輸入、輸出以及錯(cuò)誤。messagename=GetBulkBookPriceRequestinputname=requestmessage=mh:GetBulkBookPriceReques
13、t/outputname=pricesmessage=mh:GetBulkBookPriceResponse/faultname=InvalidArgumentFaultmessage=mh:InvalidArgumentFault/Input 表示傳遞到 Web 服務(wù)的有效負(fù)載;output 表示返回給客戶的有效負(fù)載;可以不包括,也可以包括一個(gè)或者多個(gè) fault 錯(cuò)誤消息。parameterOrder 定義了 input 和 output 消息采用的正確的順序使用 parameterOrder 的時(shí)候,必須包含所有輸入?yún)?shù)部分;并且只包含不是返回類型的輸出部分,如果 output 只有一個(gè)
14、 part(上例),會(huì)假設(shè)返回值,所以不包括在 parameterOrder 中如果 parameterOrder 列出 output 中的 part 部分,那么這個(gè)將被作為OUT 參數(shù),如果 input 元素和 output 元素使用相同的名稱聲明了一個(gè)部分的時(shí)候,此部分為 INOUT 參數(shù)4.4WSDL 消息交換模式(MEP)MessagingexchangePatterns(MEP)Web服務(wù)中使用了四種消息交換模式,即請(qǐng)求/響應(yīng)、單向、通知以及懇求/響應(yīng)模式。大多數(shù)基于WSDL的web服務(wù)使用請(qǐng)求/響應(yīng)和單向兩種模式。WSDL通過operation元素的input/output來定義使
15、用那種模式,如果有input+output+可選的fault參數(shù),那就使用請(qǐng)求/響應(yīng)模式;如果只使用input,那就使用單向模式。在通知模式中:Web服務(wù)將消息發(fā)送給客戶,但不等待回復(fù);般客戶通過注冊(cè)來接收通知;在懇求/響應(yīng)模式中類似通知模式,唯一的區(qū)別要期待客戶對(duì)partname=pricestype=mh:prices/messagemessagename=InvalidArgumentFaultpartname=error_messageelement/messageportTypename=GetBulkBookPriceoperationname=getBulkBookPrice/=mh:InvalidIsbnFaultDetail/parameterOrder=isbnquantityWeb服務(wù)的響應(yīng)。五、WSDL 實(shí)現(xiàn):Service 和 Port 元素servicename=BookPriceServiceportname=BookPrice_Portbinding=mh:BookPrice_Bindingsoa
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育技術(shù)在商業(yè)領(lǐng)域的特殊應(yīng)用探討
- 心理輔導(dǎo)在學(xué)科融合中的重要作用
- 情感智能在教育領(lǐng)導(dǎo)力中的應(yīng)用
- 探索游戲化教育提升學(xué)習(xí)動(dòng)力與效率的途徑
- 學(xué)生心理健康與校園欺凌的預(yù)防策略
- 智能教育工具在醫(yī)療培訓(xùn)中的實(shí)踐與探索
- 教育改革的新方向基于VR的智能教學(xué)模式研究
- 以虛擬帶實(shí)踐深化教育教學(xué)創(chuàng)新改革研究與實(shí)踐案例分析
- 智能化教育工具在提升教學(xué)質(zhì)量中的作用
- 2025撫州幼兒師范高等??茖W(xué)校單招《職業(yè)適應(yīng)性測(cè)試》通關(guān)題庫及參考答案詳解【達(dá)標(biāo)題】
- 爭(zhēng)分奪秒備戰(zhàn)期末主題的學(xué)習(xí)班會(huì)
- 門店?duì)I銷課件 完整版
- 中國(guó)全部城市名及拼音
- 未成年人紋身治理-主題班會(huì)
- 中國(guó)紅色文化精神學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
- 平方差公式公開課一等獎(jiǎng)?wù)n件市公開課一等獎(jiǎng)?wù)n件省賽課獲獎(jiǎng)?wù)n件
- 2023年公司商業(yè)機(jī)密保密管理
- 2023山西焦煤集團(tuán)有限責(zé)任公司井下操作工招聘2000人筆試模擬試題及答案解析
- 中國(guó)西部國(guó)際汽車城可行性研究報(bào)告(上)
- 通信工程施工組織方案
- 火災(zāi)報(bào)警系統(tǒng)操作及維護(hù)保養(yǎng)規(guī)程(保得威爾)
評(píng)論
0/150
提交評(píng)論