Элемент 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.