Документация / WSDL
Структура документа
Корень документа — wsdl:definitions в пространстве имён http://schemas.xmlsoap.org/wsdl/. Внутри — разделы
в порядке: import, types, message, portType, binding, service. У каждого раздела может быть
wsdl:documentation с описанием для людей.
definitions
| Атрибут | Назначение |
|---|---|
targetNamespace | Пространство имён описания: к нему относятся имена сообщений, интерфейсов, привязок и сервисов |
name | Название описания (необязательно) |
Ссылки между разделами записываются квалифицированными именами с префиксом целевого пространства имён: сообщение
GetRateRequest из примера — это tns:GetRateRequest.
import
wsdl:import подключает другое WSDL-описание (с его сообщениями, интерфейсами, привязками) и связывает его
с пространством имён. Так абстрактную часть часто хранят отдельно от конкретной.
<wsdl:import namespace="http://example.com/rates/abstract" location="rates-abstract.wsdl"/>
Схемы XSD подключают не wsdl:import, а xs:import внутри wsdl:types.
types
wsdl:types содержит определения типов данных. Стандарт допускает любые системы типов, но на практике это
всегда XML Schema: одна или несколько xs:schema, встроенных или подключённых через xs:import/xs:include.
<wsdl:types>
<xs:schema targetNamespace="http://example.com/rates">
<xs:import namespace="http://example.com/common" schemaLocation="common.xsd"/>
<xs:element name="GetRate" type="xs:string"/>
</xs:schema>
</wsdl:types>
message
Сообщение — абстрактное описание передаваемых данных. Оно состоит из частей (wsdl:part); каждая часть
ссылается либо на элемент схемы (element), либо на тип (type):
elementиспользуется в стилеdocument— тело сообщения содержит этот элемент;typeиспользуется в стилеrpc— часть становится параметром вызова.
<wsdl:message name="CreateOrderRequest">
<wsdl:part name="parameters" element="tns:CreateOrder"/>
</wsdl:message>
<wsdl:message name="AuthHeader">
<wsdl:part name="token" element="tns:Token"/>
</wsdl:message>
portType
portType — интерфейс сервиса: именованный набор операций. Операция описывает обмен сообщениями:
wsdl:input, wsdl:output и wsdl:fault ссылаются на сообщения из раздела message. Подробнее — на странице
«Операции».
binding
binding задаёт для конкретного portType протокол и формат сообщений: для каждой операции указывается, как её
входное и выходное сообщение превращаются в запрос и ответ. Для этого используются элементы расширения
в других пространствах имён: soap:, http:, mime:.
service и port
service — набор портов. Порт связывает привязку с конкретным адресом.
<wsdl:service name="RatesService">
<wsdl:documentation>Курсы валют ЦБ</wsdl:documentation>
<wsdl:port name="RatesPort" binding="tns:RatesSoapBinding">
<soap:address location="https://api.example.com/rates"/>
</wsdl:port>
<wsdl:port name="RatesPort12" binding="tns:RatesSoap12Binding">
<soap12:address location="https://api.example.com/rates/soap12"/>
</wsdl:port>
</wsdl:service>
Порты одного сервиса обычно предоставляют один интерфейс по разным протоколам или адресам: клиент выбирает подходящий.
Похожие инструменты
Обновлено: 30 сентября 2026 г.
