Школы W3C

Школа WSDL
Начало
Введение в WSDL
Документы WSDL
Порты WSDL
Связи WSDL
WSDL и UDDI
Синтаксис WSDL
Ресурсы по WSDL

Документы WSDL

Назад Вперед

Документ WSDL - это всего лишь простой документ XML.

Он содержит набор выражений, определяющих web-сервис.


Структура документа WSDL

В документе WSDL определяется web-сервис с помощью следующих основных элементов:

Элемент Определяет
<portType> Методы, предоставляемые web-сервисом
<message> Сообщения, используемые web-сервисом
<types> Типы данных, используемые web-сервисом
<binding> Протоколы связи, используемые web-сервисом

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

<definitions>
<types>
   определение типов........
</types>

<message>
   определение сообщения....
</message>

<portType>
   определение порта........
</portType>

<binding>
   определение связей.......
</binding>

</definitions>

Документ WSDL может также содержать другие элементы, например элементы расширения и элемент service, который позволяет объединить вместе в одном отдельном документе WSDL определения нескольких web-сервисов.

Полный обзор синтаксиса вы можете найти в разделе Синтаксис WSDL.


Порты WSDL

Элемент <portType> является наиболее важным элементом в WSDL.

Он определяет сам web-сервис, предоставляемые им операции и используемые сообщения.

Элемент <portType> можно сравнить с библиотекой функций (модулем, классом) в традиционном языке программирования.


Сообщения WSDL

Элемент <message> определяет элементы данных операции.

Каждое сообщение может содержать одну или несколько частей. Эти части можно сравнить с параметрами вызываемых функций в традиционном языке программирования.


Типы WSDL

Элемент <types> определяет тип данных, используемых web-сервисом.

Для максимальной платформо-независимости WSDL использует синтаксис XML Schema для определения типов данных.


Связи WSDL

Элемент <binding> определяет формат сообщения и детали протокола для каждого порта.


Пример WSDL

Это простейшая фрагмент 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 определяют части каждого сообщения и ассоциированные типы данных.

Если сравнивать с традиционным программированием, то glossaryTerms --- библиотека функций, а "getTerm" --- функция с параметром "getTermRequest", которая возвращает getTermResponse после выполнения.


Назад Вперед