Базы данных - Cache - статьи

       

WSDL (Web Services Description Language))


WSDL расшифровывается как Язык Описания Веб-сервисов (Web Services Description Language).

Документ WSDL является XML-документом, описывающим Веб-сервис, т.е. содержит набор выражений, определяющих Веб-сервис. Он определяет расположение сервиса и операции (или методы), предоставляемые им, а также формат их вызова. На основании WSDL-документа клиентом осуществляется выбор необходимого метода, из предоставленных сервером Веб-служб, и формируются запросы к данному Веб-сервису.

Общая структура WSDL-документа может быть представлена следующим образом:

<definitions>
<types>
Описание типов данных, используемых Веб-сервисом.
</types>
<message>
Описание сообщений, используемых Веб-сервисом.
</message>
<portType>
Описание операций (методов), предоставляемых Веб-сервисом
</portType>
<binding>
Описание протоколов связи, используемых Веб-сервисом
</binding>
</definitions> WSDL-документ может также содержать и некоторые другие элементы.

Ниже приведен пример WSDL-документа, описывающего Веб-сервис, предоставляющий всего одну операцию Sum (сложение двух целых чисел).

<?xml version="1.0"encoding="UTF-8" ?>
<definitions xmlns:http=
"http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s0="http://tempuri.org"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://tempuri.org" xmlns="http://schemas.xmlsoap.org/wsdl/">
//Описание типов данных аргументов метода и возвращаемого
//значения
<types>
<s:schema elementFormDefault="qualified"
targetNamespace="http://tempuri.org"> 
// Методу Sum передаются два аргумента val1 и val2 с
//указанными типами данных


<s:element name="Sum">
<s:complexType><s:sequence>
<s:element name="val1" type="s:long"
minOccurs="0" />
<s:element name="val2" type="s:long"
minOccurs="0" />
</s:sequence>
</s:complexType>
</s:element>
// Описание типа данных возвращаемого методом значения
<s:element name="SumResponse">
<s:complexType>
<s:sequence>
<s:element name="SumResult" type="s:long"
minOccurs="0" />
</s:sequence>  </s:complexType> 
</s:element> 
</schema>
</types>
// Описание входящего сообщения метода Sum
// С входящим сообщением ассоциирован тип данных Sum
<message name="SumSoapIn"> 
<part name="parameters" element="s0:Sum" />
</message>
// Описание исходящего сообщения метода Sum
// С исходящим сообщением ассоциирован тип данных SumResponse
<message name="SumSoapOut">
<part name="parameters" element="s0:SumResponse" />  
</message>
// Описание операций (методов), предоставляемых Веб-сервисом
<portType name="ArithmeticSoap">
// Данный Веб-сервис предоставляет операцию Sum
// Операция имеет входящее сообщение SumSoapIn
// И исходящее сообщение SumSoapOut
<operation name="Sum"> 
<input message="s0:SumSoapIn" />
<output message="s0:SumSoapOut" />
</operation> 
</portType>
// Определение формата сообщения и деталей протокола для
//каждого порта
<binding name="ArithmeticSoap" type="s0:ArithmeticSoap"> 
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
<operation name="Sum"> 
<soap:operation soapAction="http://tempuri.org/Web.Arithmetic.Sum"
style="document" />
<input> 
<soap:body use="literal" />  
</input>
<output> 
<soap:body use="literal" />  
</output> 
</operation> 
</binding>
// Определяет имя сервера Веб-служб, позволяет объединить
//внутри себя несколько портов (наборов методов), определяет
//расположение сервиса
<service name="Arithmetic">
<port name="ArithmeticSoap" binding="s0:ArithmeticSoap"> 
<soap:address
location="http://MASHA:1972/csp/www/Web.Arithmetic.cls" />
 </port> 
</service> </definitions>


Содержание раздела