ГОСТ Р ИСО/МЭК 40210—2014
Приложение А
(справочное)
Переход от версии SOAP/1.1 к SOAP версии 1.2
Это приложение описывает правила управления версией для узла SOAP. Если узел SOAP поддерживает
управление версиями от SOAP 1.1 до SOAP 1-2. то узел SOAP ДОЛЖЕН реализовать правила, описанные в на
стоящем приложении.
Правила для возможной совместной обработки сообщений SOAP/1.1 и SOAP версии 1.2:
1. Узел SOAP/1.1. получающий сообщение SOAP версии 1.2. будет, согласно SOAP/1.1. ге
нерировать отказ SOAP«несоответствиеверсии»на основе логической структурысо
общения SOAP/1.1. Т.е. конверт будет иметь (local name] Envelope и [namespace name]
’http://schemas.xmteoap.org/soap/envelope/’.
2. Для узла SOAP версии 1.2. получающего сообщение SOAP/1.1, возможны варианты:
- МОЖЕТ обработать сообщение как сообщение SOAP/1.1 (если эта версия узлом поддерживается), или
- ДОЛЖЕН сгенерировать отказ SOAP «несоответствие версии» на основе логической структуры сообщения
SOAP/1.1. следуя семантике SOAP/1.1. используя привязку SOAP/1.1 к нижележащему протоколу (см. SOAP 1.1
(SOAP 1.1]). Отказ SOAP ДОЛЖЕН включать блок заголовка SOAP Upgrade, в котором должно быть указание на
поддержку SOAP версии 1.2, как это определено вданной спецификации (см. пункт 8.4.7). Это позволяет узлу-по-
лучэтелю SOAP/1.1 правильно интерпретировать отказ SOAP, сгенерированный узлом SOAP версии 1.2.
Следующий пример демонстрирует отказ «несоответствие версии» SOAP, сгенерированный узлом SOAP
версии 1.2 в результате получения сообщения SOAP/1.1. Сообщение об отказе представляет собой сообщение
SOAP/1.1 с блоком заголовка Upgrade SOAP, указывающим на поддержку SOAP версии 1.2.
Пример-Узел SOAP версии 1.2,генерирующий сообщение отказа «несоответствие версии» SOAP/1.1,
включая блок заголовка Upgrade SOAP, указывающий на поддержку SOAP версии 1.2.
<? версия xml = «1.0»Т>
<env:Envelope xmlns:env =
"http://schemas.xmlsoap.org/soap/envelope/’
>
<env:Header>
<env:Upgrade>
<env:SupportedEnvelope qname = "ns1:Envelope”
xmlns:ns1 = "
http://www.vr3.org/2003/05/soap-envelope’’/
>
</env:Upgrade>
<Jenv:Header>
<env:Body>
<env:Fault>
<faultcode>env:VersionMismatch</faultcode>
<faultstring> Version Mismatch </faultstring>
</env:Fault*
</env:Body>
</env: Envelope*
П ри ме ча ния
1Для того чтобы узлы SOAP поддерживали и SOAP/1.1. и SOAP версии 1.2, необходимо использовать при
вязку протокола, связанную с надлежащей версией SOAP.
2 Нежелательно, чтобыотдельный узел SOAP/1.1. генерирующий отказ несоответствия версии SOAP, указывал,
какие версии он поддерживает с использованием информационного объекта-элемента Upgrade (см. пункт 8.4.7).
Если ничто не указано, то эго означает, что SOAP/1.1 — единственная поддерживаемая версия. Следует отметить,
однако, что несовместимостьмежду привязками нижележащего протокола мота бы препятствовать тому, чтобы узел
SOAP/1.1. получая сообщение SOAP версии 1.2. генерировал быотказ несоответствия версии SOAP. Например, узел
SOAP/1.1. поддерживающий HTTP-привязку SOAP/1.1 (см. SOAP 1.1 [SOAP 1.1]). получив сообщение SOAP версии
1.2 с использованием привязки протокола HTTP SOAP 1.2 (см. SOAP 12 Части 2 [SOAP Часть 2J, Привязка HTTP
SOAP), не смог бы понять различие между этими двумя привязками и в результате сгенерировал бы определенный
ответ HTTP.
28