Руководство по SOAP. Элемент Envelope.

Элемент SOAP сообщения ENVELOPE опредляет начало и конец сообщения. Именно благодаря этому элементу, клиент, принимающий сообщение знает, когда сообщение полностью получено. Другими словами, с помощью этого элемента мы можем узнать когда сообщение получено и готово к обработке.


Ключевые аспекты

При работе с SOAP важно учитывать следующие моменты:

  • Элемент Enveloper является обязательной частью SOAP сообщения.
  • Внутри каждого элемента Envelope должен быть один элемент Body.
  • Элемент Envelope определяется с помощью пространства имён ENV и элемента Enveloper.
  • Опциональная кодировка SOAP также определяется с помощью пространтсва имён и опционального элемента encodingStyle, который также может определить стиль кодировку отличную от SOAP.
  • Процессор v1.1-compliant генерирует ошибку в случае получения сообщения, которое содерижит пространство имён envelope v1.2
  • Процессор v1.2-compliant генерирует ошибку VersionMismatch в случае получения сообщения, которое не содержит пространство имён envelope v1.2

Пример SOAP сообщения v.1.2


<?xml version="1.0"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope" SOAP-ENV:encodingStyle=" http://www.w3.org/2001/12/soap-encoding">
   Это простое SOAP сообщение.
</SOAP-ENV:Envelope>

SOAP сообщение с использованием метода HTTP POST

Данный пример демонстрирует использование SOAP сообщения внутри метода HTTP POST, который отправляет сообщение на сервер. Оно показывает пространство имён для envelope для определения schema и кодировки. Ссылка OrderEntry внутри хедера HTTP – это имя программы, которая будет вызвана на сайте proselyte.net.


POST /OrderEntry HTTP/1.1
Host: www.proselyte.net
Content-Type: application/soap;  charset="utf-8"
Content-Length: nn
<?xml version="1.0"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope" SOAP-ENV:encodingStyle=" http://www.w3.org/2001/12/soap-encoding">
   Простое SOAP сообщение.
</SOAP-ENV:Envelope>

На этом мы завершаем рассмотрение элемента Envelope.
В слещующей сттаье мы изучим элемент Header.