WSDL編寫的五個步驟
我們以http://blog.csdn.net/hongbo781202/archive/2004/07/21/47135.aspx中的案例來說明.
1)聲明名稱空間
必須在 <definitions> 元素中提供各種名稱空間的聲明.
<definitions
????? targetNamespace="http://loans.org/wsdl/loan-approval"
????? xmlns="http://schemas.xmlsoap.org/wsdl/"
????? xmlns:xsd="http://www.w3.org/2001/XMLSchema"???
????? xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"?????
????? xmlns:lns="http://loans.org/wsdl/loan-approval">
三個必須做的外部名稱空間聲明是 WSDL、SOAP 和 XSD(XML 模式定義)
xmlns="http://schemas.xmlsoap.org/wsdl/"是WSDL名稱空間
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 是SOAP名稱空間,這里因為是用做BPEL4WS,所以
不需要該名稱空間
xmlns:xsd="http://www.w3.org/2001/XMLSchema"是XSD名稱空間
2)編寫服務
<definitions> 元素包含一個或多個 <portType> 元素,實際上,每個元素都是您希望表示的一系列
operation。或者,您也可以將單個 portType 元素看作是將各種方法組成類的一個邏輯分組。我們稱
portType為服務---這就是"WEB服務"這個名稱的由來.
<portType name="loanServicePT">
?? <operation name="request">
????? <input message="lns:creditInformationMessage"/>
????? <output message="lns:approvalMessage"/>
????? <fault name="unableToHandleRequest"
???????????? message="lns:errorMessage"/>
?? </operation>
</portType>
可以看出,portType是operation的集合.一個operation是一個方法,那一個portType不就是一個類嗎?一個
類,我們可以看作一個服務.
3)指定參數
operation指定了輸入的參數和輸出的參數,在 WSDL 術語中,所有參數稱為“消息”。
<message name="creditInformationMessage">
?? <part name="firstName" type="xsd:string"/>
?? <part name="name" type="xsd:string"/>
?? <part name="amount" type="xsd:integer"/>
</message>
一個消息可以有多個part元素,part元素指定名稱和類型.
4)與SOAP綁定
WSDL以一種抽象方式定義了操作和消息,而不考慮實現的細節。實際上,WSDL 的任務是定義或描述 Web
服務,然后提供一個對外部框架的引用來定義 WSDL 用戶將如何實現這些服務。可以將這個框架當作
WSDL 抽象定義和它們的實現之間的“綁定(binding)”。一般是與SOAP綁定,當然,也不是必須的.
5)指定實現
當您在 UDDI 注冊中心發布 Web 服務時,會使用它.
最后兩個步驟把WSDL與SOAP/UDDI結合起來了.