ГОСТ Р ИСО/МЭК 29362—2013
3.6 Пересылка дополнительных конвертов SOAP (SOAP Envelopes)
Профиль не накладывает ограничений на содержимое отдельных частей с вложениями. Как
вложения могут передаваться дополнительные документы XML, содержащие конверт SOAP
(soap:Envelope), однако только корневаячасть сообщения MIME должна рассматриваться, как
основной конверт SOAP(soap:Envelope) в пакете MIME.
R2919СООБЩЕНИЕ МОЖЕТ содержать конверты SOAP(soap:Envelope), пересылаемые в
качестве вложений в тех частях сообщения, которые не являются корневой частью.
3.7 Сообщения об ошибках с вложениями
R2920 РЕАЛИЗАЦИЯ (INSTANCE) МОЖЕТ послать сообщение об ошибке с вложением тогда и
только тогда, если элемент wsdl:output описан с использованием привязки WSDL MIME.
3.8 Пространство значений поля заголовка Content-Id
Определение: кодирование идентификатора контента части (content-id part encoding)
«Кодирование идентификатора контента части» представляет собой операцию конкатенации
величин:
• Значения атрибута name элемента wsdl.part. на который ссылается mime:content. и в котором
символы, недопустимые о заголовках Content-Id(не ASCII символы, представленные кодами
большими 0x7F), представлены следующим образом:
о Каждый недопустимый символ преобразован в один или более байтов в соответствии с UTF-8.
о Все байты, соответствующие недопустимому символу, экранируются согласно правилам
экранирования в URI (т.е. преобразованы в %НН, где НН - шестнадцатеричная нотация значения
байта),
о Исходный символ заменяется полученной последовательностью символов .
• Символ ’=’ (0x3D).
• Глобально уникальное значение, такое как UUID.
• Символ(0x40).
•Действительное имя домена, от имени которого создается сообщение.
R2933 Если описание связывает часть wsdl:message с элементом mime:content, то
соответствующее значение поля Content-Id части MIME в СООБЩЕНИИ ДОЛЖНО удовлетворять
правилам кодирования части Content-Id.
Пример:
ПРАВИЛЬНО:
Во фрагменте WSDL далее, имя части, привязанной к mime.content, является
значением, добавленным к значению Content-Id.
<wsdl:message name=”fooMsg’,>
<wsdl:part name-’body” type="ns1:Claim7>
<wsdl:part name-’fooPart" type=*xs:base64binary7>
<Avsdl:message>
<wsdl:binding
<mime:multipartRelated>
<mime:part>
<soapbind:body parts=*body* use="literal7>
</mime:part>
<mime:part>
<mime:content part="fooPart" type="application/octet-stream7>
</mime:part>
</mime:multipartRelated>
<Avsdl:binding>
Вот фрагмент составного пакета, содержащего двоичный поток fooPart, показывающий, как
атрибут «имени» wsdi.part включен в значение Content-Id.
-MIME_boundary
Content-Type: application/octet-stream
Content-Transfer-Encoding: 8bit
7