Документация / WSDL

Привязки HTTP и MIME

Кроме SOAP, WSDL 1.1 определяет привязку к обычному HTTP и описание MIME-содержимого. Они встречаются реже, но полезны для простых сервисов и передачи файлов.

Привязка HTTP

Пространство имён http://schemas.xmlsoap.org/wsdl/http/ (префикс http).

ЭлементНазначение
http:binding verb="GET"HTTP-метод для всех операций привязки: GET или POST
http:operation location="…"Относительный адрес операции; добавляется к адресу порта
http:urlEncodedЧасти сообщения передаются в строке запроса: ?name=value&…
http:urlReplacementЧасти подставляются в адрес вместо (имя): /rates/(currency)
http:address location="…"Базовый адрес порта
<wsdl:message name="RateByCode">
  <wsdl:part name="currency" type="xs:string"/>
</wsdl:message>
<wsdl:binding name="RatesHttpBinding" type="tns:RatesHttpPortType">
  <http:binding verb="GET"/>
  <wsdl:operation name="GetRate">
    <http:operation location="/rate/(currency)"/>
    <wsdl:input><http:urlReplacement/></wsdl:input>
    <wsdl:output><mime:mimeXml part="rate"/></wsdl:output>
  </wsdl:operation>
</wsdl:binding>
<wsdl:service name="RatesHttp">
  <wsdl:port name="RatesHttpPort" binding="tns:RatesHttpBinding">
    <http:address location="https://api.example.com"/>
  </wsdl:port>
</wsdl:service>

Запрос курса доллара по этой привязке — GET https://api.example.com/rate/USD.

Привязка MIME

Пространство имён http://schemas.xmlsoap.org/wsdl/mime/ (префикс mime). Элементы MIME описывают формат содержимого входа или выхода операции:

ЭлементНазначение
mime:content type="…" part="…"Часть сообщения передаётся как содержимое указанного MIME-типа (image/png, application/pdf)
mime:mimeXml part="…"Содержимое — XML без конверта SOAP
mime:multipartRelatedСоставное сообщение multipart/related: несколько частей mime:part

Связка mime:multipartRelated + soap:body описывает SOAP с вложениями (SwA): в одной части конверт SOAP, в других — файлы.

<wsdl:operation name="UploadScan">
  <soap:operation soapAction="http://example.com/docs/UploadScan"/>
  <wsdl:input>
    <mime:multipartRelated>
      <mime:part>
        <soap:body parts="meta" use="literal"/>
      </mime:part>
      <mime:part>
        <mime:content part="scan" type="application/pdf"/>
      </mime:part>
    </mime:multipartRelated>
  </wsdl:input>
  <wsdl:output>
    <soap:body use="literal"/>
  </wsdl:output>
</wsdl:operation>

Современная альтернатива SwA — MTOM: двоичные данные описываются в схеме типом xs:base64Binary, а при передаче выносятся из конверта в отдельные части сообщения. WSDL при этом не меняется — MTOM включается политикой или настройкой клиента и сервиса.

Обновлено: 30 сентября 2026 г.