stormd

          WSDL文檔結(jié)構(gòu)(轉(zhuǎn)載)

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

          WSDL 文檔是利用這些主要的元素來描述某個 web service 的:

          元素 定義
          <portType> web service 執(zhí)行的操作
          <message> web service 使用的消息
          <types> web service 使用的數(shù)據(jù)類型
          <binding> web service 使用的通信協(xié)議

          一個 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>

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

          如需完整的語法概述,請?jiān)L問 WSDL 語法 這一節(jié)。

          WSDL 端口

          <portType> 元素是最重要的 WSDL 元素。

          它可描述一個 web service、可被執(zhí)行的操作,以及相關(guān)的消息。

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

           

          WSDL 消息

          <message> 元素定義一個操作的數(shù)據(jù)元素。

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

           

          WSDL types

          <types> 元素定義 web service 使用的數(shù)據(jù)類型。

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

           

          WSDL Bindings

          <binding> 元素為每個端口定義消息格式和協(xié)議細(xì)節(jié)。

           

          WSDL 實(shí)例

          這是某個 WSDL 文檔的簡化的片段:

           

          <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>
          

          在這個例子中,<portType> 元素把 "glossaryTerms" 定義為某個端口的名稱,把 "getTerm" 定義為某個操作的名稱。

          操作 "getTerm" 擁有一個名為 "getTermRequest" 的輸入消息,以及一個名為 "getTermResponse" 的輸出消息

          <message> 元素可定義每個消息的部件,以及相關(guān)聯(lián)的數(shù)據(jù)類型。

          對比傳統(tǒng)的編程,glossaryTerms 是一個函數(shù)庫,而 "getTerm" 是帶有輸入?yún)?shù) "getTermRequest" 和返回參數(shù) getTermResponse 的一個函數(shù)。

          posted on 2009-03-28 17:45 stormd 閱讀(207) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 资中县| 汪清县| 台南市| 九江市| 丰都县| 南投县| 南宫市| 临漳县| 利川市| 东乌珠穆沁旗| 利辛县| 惠东县| 九龙县| 昌吉市| 浦东新区| 炎陵县| 彭阳县| 加查县| 白朗县| 犍为县| 马尔康县| 白河县| 天祝| 麻江县| 玉山县| 茌平县| 广平县| 克拉玛依市| 馆陶县| 扎赉特旗| 措美县| 洪江市| 固阳县| 汉沽区| 恩平市| 和静县| 木兰县| 新安县| 云安县| 甘泉县| 淮南市|