WSDL (WebServicesDescriptionLanguage) - язык описания внешних интерфейсов веб-сервисов на базе XML;
Структура
· <wsdl:definitions> - корневой элемент
· <wsdl:import> ссылается на отдельный документ WSDL 1.1 с описаниями, подлежащими включению в этот документ;
· <wsdl:types> определяет типы XML или элементы, используемые для обмена сообщениями;
· <wsdl:message> определяет фактическое сообщение с точки зрения типов или элементов XML;
· <wsdl:portType> определяет абстрактный набор операций, осуществленных сервисом;
· <wsdl:binding> определяет фактическую реализацию <wsdl:portType> с помощью конкретных протоколов и форматов;
· <wsdl:service> определяет сервис в целом, как правило, включая один или несколько элементов <wsdl:port> с информацией доступа для элементов <wsdl:binding>.
· <wsdl:document>исп для документирования wsdl документа
Для полного описания сервиса, как правило, требуется, по крайней мере, один элемент каждого из этих типов, за исключением <wsdl:import>, но не обязательно, чтобы все они находились в одном и том же документе. Для сборки полного описания WSDL из нескольких документов можно использовать <wsdl:import>, что позволяет подразделять описания для нужд организации.
Тип данных в сообщениях: anyURI,boolean,byte,date,DateTime ,double ,float. , int, language, long, negativeInteger, nonnegativeInteger, positiveInteger, short, string, time, unsignedByte, unsignedInt, unsignedLong, unsignedShort. Также существуют и составные типы. Они состоят из простых, как например Имя человека + его дата раждения.
SOAP — это стандарт для отсылки и получения сообщений по Internet.
SOAP-сообщения бывают двух типов: запрос (Request) и ответ (Response). Запрос вызывает метод удаленного объекта, ответ возвращает результат выполнения данного метода.
Для того чтобы приложения могли использовать веб-сервисы, программные интерфейсы последних должны быть детально описаны — с этой точки зрения язык WSDL играет ту же роль, что и язык InterfaceDefinitionLanguage (IDL) в распределенных вычислениях. Описание может включать такую информацию, как протокол, адрес сервера, номер используемого порта, список доступных операций, формат запроса и ответа и т.д