Элементы SOAP-сообщения. Назначение, теги и атрибуты

Оболочка SOAP – это XML документ, которым обмениваются между собой взаимодействующие узлы. Она включает в себя:

Элемент документа оболочка SOAP, который имеет локальное имя Envelope и URL пространства имен https://www.w3.org/2001/06/soap-envelope. Этот элемент может иметь необязательный дочерний элемент с локальным именем Header и тем же пространством имен. Если этот элемент присутствует, то он должен быть первым прямым дочерним элементом и может быть использован для добавления информации в оболочку без предварительного соглашения с узлами сети, которые участвуют в обмене.

Следующий дочерний элемент оболочки должен иметь локальное имя Body. Этот обязательный элемент должен быть вторым прямым дочерним элементом оболочки, если присутствует Header. Если элемент Header отсутствует, то элемент Body должен быть первым прямым дочерним элементом.

<env: Envelope xmlns.env = “…”>

<env: Header/>

<env: Body/>

</env: Envelope>

Заголовок SOAP Header – это первый прямой дочерний элемент оболочки. Все прямые дочерние элементы заголовка называются блоками заголовка. Блоки заголовка используются для расширения сообщений децентрализованным способом, путем добавления таких функций как аутентификация, администрирование транзакций и т. д. Все элементы заголовка должны определяться пространствами имен. Блоки заголовка могут иметь атрибуты actor и mustUnderstand.

Пример атрибута заголовка mustUnderstand:

<env: Header>

<authentification xmlns = “https://myDomain/app” env: mustUnderstand = “1”>

<user>Kate</user>

<password>1234</password>

</authentification>

</env: Header>

Тело SOAP используется для инкапсуляции обязательной информации, предназначенной для конечного получателя сообщения. Элемент SOAP Body может иметь несколько прямых дочерних элементов, которые называются блоками тела и воспринимаются как отдельные объекты. Содержимое тела SOAP используется для маршализации вызовов RPC, обмена информационными сообщениями и т. д.

Пример тела:

<env: body>

<test:getMyMethodResponse Xmlns: test = ”https://myDomain/service”>

<test_mess>

<symbol>EDS</symbol>

</test_mess>

</test:getMyMethodResponse>

</env: body>

Ошибка SOAP (тэг Fault ), если она присутствует, должна быть первым блоком тела в оболочке и должна присутствовать в оболочке только один раз. Блок ошибки используется для сообщения об ошибке и предоставления информации о состоянии при обработке сообщения. Блок ошибки может иметь следующие дочерние элементы: faultcode и faultstring. faultcode содержит код ошибки. В спецификации SOAP определен небольшой набор стандартных кодов ошибок. Тэг faultstring предоставляет более детальное описание ошибки. faultactor – определяет узел SOAP, который вызвал ошибку. Тэг detail – используется для предоставления деталей ошибки, например таких, как стек вызова. Пример описания ошибки:

<soap-env.fault>

<faultcode>SOAP-ENV.server</faultcode>

<faultstring>ServerError</faultstring>

<detail>

<e: myxmlns:e = “someURL”>

<message>My App didn’t work </message>

<errorcode>/06/</errorcode>

</e: myxmlns:e >

</detail>

</soap-env.fault>



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: