Стандартные форматы сообщений протокола SOAP, задаваемые с помощью языка WSDL
Этот раздел посвящен технологии прежних версий. Веб-службы XML и клиенты веб-служб XML должны создаваться с использованием Windows Communication Foundation.
Язык описания веб-служб (WSDL), отраслевой стандарт, определяющий схему для документов XML, которые, в свою очередь, определяют веб-службы, предлагает два основных варианта форматирования SOAP. Оба варианта задаются в элементах XML не в основном пространстве имен языка WSDL, https://schemas.xmlsoap.org/wsdl/, а в пространстве имен https://schemas.xmlsoap.org/wsdl/soap/. Это дополнительное пространство имен связывает веб-службу с протоколом SOAP.
Варианты форматирования SOAP
Ниже указаны два варианта форматирования.
Style: для дочернего элемента и, возможно, дочерних элементов второго уровня элемента Body в сообщении протокола SOAP. Этот вариант задается с помощью атрибута style элемента binding языка WSDL (обычно) или элемента operation.
Use: для параметров или возвращаемого значения метода веб-службы, которые появляются на следующем более низком уровне. Этот вариант задается с помощью атрибута use элемента body.
Подробные сведения о спецификации протокола SOAP см. на веб-сайте W3C (http://www.w3.org/TR/SOAP). Подробные сведения о спецификации языка WSDL также можно найти на этом веб-сайте.
Допустимые значения атрибута Style
Язык WSDL допускает два следующих значения атрибута style, который управляет общим форматированием текста сообщений SOAP.
RPC: параметры или возвращаемое значение автоматически размещаются в родительском элементе, родительским элементом которого является элемент Body SOAP. Параметры или возвращаемое значение отображаются без квалификации пространства имен. Эта схема описывается в разделе 7 спецификации SOAP 1.1. Задается следующим образом:
style="rpc"
.Для запроса SOAP элемент под элементом Body SOAP именуется после соответствующего методу веб-службы элемента operation языка WSDL. Каждый элемент внутри этого элемента представляет параметр и именуется после соответствующего ему параметра.
Для ответа SOAP имя элемента под элементом Body SOAP является именем операции с присоединенным элементом Response. Имя расположенного ниже элемента, представляющего возвращаемое значение, является именем операции, но с суффиксом Return.
Document: содержимое элемента Body SOAP полностью задается в языке WSDL в виде элементов XML, определенных в определении схемы XML. Схема XML задается в документе WSDL или импортируется в этот документ. Язык WSDL не касается параметров и возвращаемых значений; он оперирует только с документами XML. Вопросами, связанными с преобразованием параметров и возвращаемых значений в элементы и типы схемы XML, занимается разработчик или, предпочтительно, инфраструктура веб-служб. Задается следующим образом:
style="document"
.Элементы XML верхнего уровня задаются в виде частей сообщения, то есть элементов part, которые определяются в элементе message и указывают на объявления элементов XSD. Как правило, есть только одна часть, так что содержимое элемента Body SOAP действительно является документом XML, хотя сам язык WSDL не запрещает использования нескольких элементов.
Язык WSDL допускает два следующих значения атрибута use, который управляет форматированием параметров и возвращаемых значений.
Encoded: данные форматируются в соответствии со схемой, описанной в разделе 5 спецификации SOAP 1.1. При кодировании SOAP используется подмножество схемы XML для привязки документов XML к данным, которые они представляют. Для элементов, встречающихся в документе несколько раз, при кодировании SOAP применяются ссылки. Задается следующим образом:
use="encoded"
.Literal: данные форматируются литерально в соответствии с определениями схемы XML, заданной в документе WSDL или импортированной в этот документ. Задается следующим образом:
use="literal"
.