tutorial pengembangan web terbaru
 

XML WSDL


  • WSDL singkatan Web Services Description Language
  • WSDL digunakan untuk menggambarkan layanan web
  • WSDL ditulis dalam XML
  • WSDL adalah rekomendasi W3C dari 26. Juni 2007

WSDL Dokumen

Sebuah dokumen WSDL menjelaskan layanan web. Ini menentukan lokasi layanan, dan metode layanan, menggunakan unsur-unsur utama:

Elemen Deskripsi
<types> Mendefinisikan (XML Schema) jenis data yang digunakan oleh layanan web
<message> Mendefinisikan elemen data untuk setiap operasi
<portType> Menggambarkan operasi yang dapat dilakukan dan pesan yang terlibat.
<binding> Mendefinisikan protokol dan format data untuk masing-masing jenis port

Struktur utama dari dokumen WSDL terlihat seperti ini:

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

Ini adalah sebagian kecil sederhana dari sebuah dokumen 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>

Dalam contoh ini <portType> elemen mendefinisikan "glossaryTerms" sebagai nama sebuah port , dan "getTerm" sebagai nama sebuah operation .

The "getTerm" operasi memiliki input message yang disebut "getTermRequest" dan output message yang disebut "getTermResponse" .

The <message> elemen menentukan parts dari setiap pesan dan tipe data yang terkait.


The <portType> Elemen

The <portType> elemen mendefinisikan a web service , yang operations yang dapat dilakukan, dan messages yang terlibat.

Jenis permintaan-respon adalah jenis operasi yang paling umum, tetapi WSDL mendefinisikan empat jenis:

Mengetik Definisi
One-way Operasi dapat menerima pesan tetapi tidak akan kembali tanggapan
Request-response Operasi dapat menerima permintaan dan akan kembali tanggapan
Solicit-response Operasi dapat mengirim permintaan dan akan menunggu tanggapan
Notification Operasi dapat mengirim pesan tetapi tidak akan menunggu tanggapan

WSDL Satu-Way Operasi

Sebuah operasi satu arah contoh:

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

Dalam contoh di atas, portType "glossaryTerms" mendefinisikan operasi satu-arah yang disebut "setTerm" .

The "setTerm" operasi memungkinkan masukan istilah glossary baru pesan menggunakan "newTermValues" pesan dengan parameter masukan "term" dan "value" . Namun, tidak ada output didefinisikan untuk operasi.


WSDL Permintaan-Response Operasi

Operasi permintaan-respon contoh:

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

Dalam contoh di atas, portType "glossaryTerms" mendefinisikan operasi permintaan-respon yang disebut "getTerm" .

The "getTerm" operasi membutuhkan pesan masukan yang disebut "getTermRequest" dengan parameter yang disebut "term" , dan akan kembali output pesan yang disebut "getTermResponse" dengan parameter yang disebut "value" .


WSDL Binding untuk SOAP

binding WSDL mendefinisikan pesan Format dan protokol rincian untuk layanan web.

Operasi permintaan-respon contoh:

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

The binding elemen memiliki dua atribut - nama dan jenis.

The name atribut (you can use any name you want) mendefinisikan nama mengikat, dan type atribut poin ke port untuk mengikat, dalam hal ini "glossaryTerms" pelabuhan.

The soap:binding elemen memiliki dua atribut - gaya dan transportasi.

The style atribut dapat "rpc" atau "document" . Dalam hal ini kita menggunakan dokumen. The transport atribut mendefinisikan protokol SOAP untuk digunakan. Dalam hal ini kita menggunakan HTTP.

The operation elemen mendefinisikan setiap operasi yang portType memaparkan.

Untuk setiap operasi tindakan SOAP sesuai harus didefinisikan. Anda juga harus menentukan bagaimana input dan output dikodekan. Dalam hal ini kita menggunakan "literal" .