En son web geliştirme öğreticiler
 

XML WSDL


  • WSDL Web Hizmetleri Açıklama Dili açılımı
  • WSDL web hizmetleri tanımlamak için kullanılır
  • WSDL XML yazılır
  • WSDL Haziran 2007 26'dan W3C için genelde önerilir

WSDL Belgeler

Bir WSDL dokümanı bir web hizmeti açıklar. Bu önemli unsurları kullanarak, servis konumunu ve hizmet yöntemlerini belirtir:

Eleman Açıklama
<types> Tanımlar (XML Schema) web hizmeti tarafından kullanılan veri türlerini
<message> Her işlem için veri elemanlarını tanımlar
<portType> gerçekleştirilen ve mesajlar dahil edilebilir işlemleri açıklar.
<binding> Her bağlantı noktası türü için protokol ve veri formatını tanımlar

WSDL belgenin ana yapısı aşağıdaki gibidir:

<definitions>

<types>
  data type definitions........
</types>

<message>
  definition of the data being communicated....
</message>

<portType>
  set of operations......
</portType>

<binding>
  protocol and data format specification....
</binding>

</definitions>

WSDL Örnek

Bu WSDL belgenin sadeleştirilmiş kesir geçerli:

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

Bu örnekte, <portType> elemanı tanımlayan "glossaryTerms" bir adı gibi port ve "getTerm" bir isim olarak operation .

"getTerm" operasyonu bir sahiptir input message denilen "getTermRequest" ve bir output message denilen "getTermResponse" .

<message> elemanları tanımlamak parts her bir mesaj ve ilişkili veri türleri.


<portType> Eleman

<portType> eleman tanımlayan a web service , operations yapılabilir ve messages katılmaktadırlar.

istek-yanıt tipi en yaygın işlem türü, ancak WSDL dört tip tanımlar:

tip Tanım
One-way operasyon ile mesaj alabilir ama bir yanıt döndürmez
Request-response işlem isteği alabilir ve bir yanıt döndürür
Solicit-response operasyon bir istek gönderebilir ve bir yanıt bekler
Notification operasyon bir mesaj gönderebilirsiniz ancak bir yanıt beklemez

WSDL Tek Yönlü Operasyonu

Bir tek yönlü işlem, örneğin:

<message name="newTermValues">
  <part name="term" type="xs:string"/>
  <part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
  <operation name="setTerm">
    <input name="newTerm" message="newTermValues"/>
  </operation>
</portType >

Yukarıdaki örnekte, portType "glossaryTerms" olarak adlandırılan tek yönlü bir işlem tanımlar "setTerm" .

"setTerm" operasyonu kullanarak yeni sözlük girişi mesajların girişini izin verir "newTermValues" giriş parametreleri ile mesaj "term" ve "value" . Bununla birlikte, hiçbir çıkış işlemi için tanımlandığı gibidir.


WSDL İsteği-Tepki Operasyonu

Bir istek yanıt işlemi, örneğin:

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

Yukarıdaki örnekte, portType "glossaryTerms" adı verilen bir istek yanıt işlemi tanımlar "getTerm" .

"getTerm" işlemi olarak adlandırılan bir giriş mesajı gerektirir "getTermRequest" adı verilen bir parametre ile "term" ve adı verilen bir çıkış iletisi döndürür "getTermResponse" adı verilen bir parametre ile "value" .


WSDL SOAP bağlanması

WSDL bağlamaları bir web hizmeti için ileti biçimi ve protokol ayrıntıları tanımlar.

Bir istek yanıt işlemi, örneğin:

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

<binding type="glossaryTerms" name="b1">
   <soap:binding style="document"
   transport="http://schemas.xmlsoap.org/soap/http" />
   <operation>
     <soap:operation soapAction="http://example.com/getTerm"/>
     <input><soap:body use="literal"/></input>
     <output><soap:body use="literal"/></output>
  </operation>
</binding>

binding adını ve türünü - eleman iki özelliği vardır.

name özniteliği (you can use any name you want) bağlanma adını ve tanımlar type bu durumda, bağlama limana nitelik noktaları "glossaryTerms" bağlantı noktası.

soap:binding - stil ve taşıma elemanı iki özelliği vardır.

style niteliği olabilir "rpc" veya "document" . Bu durumda biz belgeyi kullanın. transport özelliği, kullanımı SOAP protokolünü tanımlar. Bu durumda biz HTTP kullanın.

operation elemanı portType ortaya her işlemi tanımlar.

Her işlem için karşılık gelen SOAP eylemi tanımlanmalıdır. Ayrıca giriş ve çıkış nasıl kodlandığını belirtmelidir. Bu durumda kullanacağımız "literal" .