ГОСТ Р ИСО/МЭК 40220—2015
дачи данных в блоках заголовка SOAP и/или теле SOAP. Другие модели данных, альтернативные ко
дировки модели данных SOAP, неэакодированные данные МОГУТ также использоваться в сообщениях
SOAP (спецификация альтернативных стилей кодирования описана в «Атрибут SOAP encodingStyle»
(ИСО/МЭК 40210, пункт 8.1.1]; ограничения модели данных и кодирования в удаленных вызовах про
цедур SOAP (SOAP RPC) описаны в разделе 6).
Правила преобразования в последовательную форму, определенные в этом разделе, описаны
в документе, идентифицированном URI «
http://mv\v.w3.org/2003/0Si’soap-encoding»
. Сообщение SOAP,
использующее данное конкретное преобразование в последовательную форму. СЛЕДУЕТ обозначать
при помощи информационного объекта-атрибута SOAP encodingStyle (ИСО/МЭК 40210, пункт 8.1.1].
5.1 Отображение между XML и моделью данных SOAP
XML допускает очень гибкое кодирование данных. Кодирование SOAP определяет более узкий
набор правил для кодирования графов, описанных в разделе 4. Данный раздел определяет кодиро
вание на высоком уровне, а последующие разделы описывают правила кодирования более подробно.
Кодировки, описанные в этом разделе, могут использоваться в сочетании с отображением запросов и
ответов RPC, определенных в разделе 6.
Кодировки, описанные ниже, представлены с точки зрения десериализатора. В каждом случае
предполагается наличие сериализованного XML и описывается его отображение на соответствующий
граф.
Обычно для заданного графа возможны несколько вариантов кодирования. При сериализации
графа для передачи в сообщении SOAP ДОЛЖНО использоваться представление, десериализация
которого порождает тождественный граф; если возможны несколько разных представлений, МОЖЕТ
использоваться любое из них. При получении закодированного сообщения SOAP ДОЛЖНЫ принимать ся
все представления.
5.1.1 Кодирование робор и узлов графа
Каждое ребро графа кодируется как информационный объокт-элемент. и каждый информаци
онный объект-элемент представляет ребро графа. В 5.1.3 описывается отношение между метками
ребер и свойствами (local name] и (namespace name] таких информационных объектов-элементов.
Узел графа, в котором завершается ребро, определяется при анализе сериализированного XML
следующим образом;
1 Если информационный объект-элемент, представляющий ребро, не имеет среди своих атри
бутов информационного объекта-атрибута ref (см. 5.1.5.2). тогда говорят, что информационный объ
ект-элемент представляет узел графа, и ребро заканчивается в этом узле. В таких случаях инфор
мационный объект-элемент представляет и ребро графа, и узел графа.
2 Если информационный объект-элемент, представляющий ребро, имеет среди своих атрибу
тов информационный объект-атрибут ref (см. 5.1.5.2), то значение этого информационного объекта-
атрибута ДОЛЖНО быть идентично значению ровно одного информационного объекта-атрибута id
(см. 5.1.5.1) втом же конверте. Вэтом случае ребро заканчивается в узле графа, представленном инфор
мационным объектом-элементом, к которому относится информационный объект-атрибут id. Этот
информационный объект-элемент ДОЛЖЕН находиться в области действия атрибута encodingStyle
со значением «
http://mw.w3.org/2003/05/soap-encoding»
(см. [ИСО/МЭК 40210, пункт 8.1.1]).
Все узлы графа кодируются, как описано выше в случае ^Дополнительные входящие ребра для
многоссылочных узлов графа кодируются, как описано выше в случае 2.
5.1.2 Кодирование простых значений
Лексическое значение узла графа, представляющего простое значение, описывается последова
тельностью символов Unicode, идентифицированныхдочерними элементами информационного объек
та-символа информационного объекта-элемента, представляющего данный узел. Информационный
объект-элемент, представляющий узел с простым значением, МОЖЕТ содержать информационный
объект-атрибут nodoType (см. 5.1.7). Необходимо отметить, что определенные символы Unicode не
могут быть представлены в XML [XML 1.0].
5.1.3 Кодирование составных значений
Исходящее ребро узла графа кодируется как дочерний информационный объект-элемент ин
формационного объекта-элемента, представляющего узел (см. 5.1.1). Различные правила применя
ются в зависимости от того, какой вид составного значения представляет узел графа. Эти правила
состоят в следующем:
4