В настоящем стандарте использованы нормативные ссылки на следующие международные стандарты* и документы. Для датированных документов используют только указанное издание. Для недатированных документов используют самое последнее издание ссылочного документа (с учетом всех его изменений).
_______________
* Таблицу соответствия национальных стандартов международным см. по ссылке. - Примечание изготовителя базы данных.
ИСО/МЭК 40210:2014 Информационные технологии. W3C SOAP - Версия 1.2. Часть 1. Основы обмена сообщениями (вторая редакция) (ISO/IEC 40210:2014 Information technology. W3C SOAP Version 1.2 Part 1: Messaging Framework (Second Edition))
Гипертекстовый Протокол передачи - НТТР/1.1 (RFC 2616 Hypertext Transfer Protocol - HTTP/1.1) [RFC 2616]
Ключевые слова, используемые в RFCs, чтобы указать на уровни требования (RFC 2119 Key words for use in RFCs to Indicate Requirement Levels) [RFC 2119]
XML-схема. Часть 1. Структуры. Вторая редакция (XML Schema Part 1: Structures Second Edition) [XML Schema Part 1]
XML-схема. Часть 2. Типы данных. Вторая редакция (XML Schema Part 2: Datatypes Second Edition) [XML Schema Part 2]
Универсальный идентификатор ресурса (URI). Основы синтаксиса (Uniform Resource Identifiers (URI): Generic Syntax) [RFC 3986]
Пространства имен в XML (вторая редакция) (Namespaces in XML (Second Edition)) [Namespaces in XML]
Расширяемый язык разметки (XML) 1.0 (четвертая редакция) (Extensible Markup Language (XML) 1.0 (Fourth Edition)) [XML 1.0]
Информационный набор XML (вторая редакция) (XML Information Set (Second Edition)) [XML InfoSet]
Типы документов XML (XML Media Types) [RFC 3023]
Тип документа "application/soap+xml" (The "application/soap+xml" media type) [RFC 3902]
3 Условные обозначения
Ключевые слова "ДОЛЖЕН" (MUST), "НЕ ДОЛЖЕН" (MUST NOT), "ТРЕБУЕМЫЙ" (REQUIRED), "БУДЕТ" (SHALL), "НЕ БУДЕТ" (SHALL NOT), "СЛЕДУЕТ" (SHOULD), "НЕ СЛЕДУЕТ" (SHOULD NOT), "РЕКОМЕНДУЕМЫЙ" (RECOMMENDED), "МОЖЕТ" (MAY) и "ДОПОЛНИТЕЛЬНЫЙ" (OPTIONAL) в данном документе должны интерпретироваться в соответствии с RFC 2119 (см. [RFC 2119]).
Префиксы пространств имен, использующиеся в данной спецификации, перечислены в таблице 1. Выбор любого префикса пространства имен произволен и не является семантически существенным (см. [XML Info-set]).
Таблица 1 - Префиксы и пространства имен, используемые в данной спецификации
Пре- фикс | Пространство имен | Примечания |
enc | "http://www.w3.org/2003/05/soap-encoding" | Нормативная XML-схема [XML Schema Part 1], документ [XML Schema Part 2] для пространства имен "http://www.w3.org/2003/05/soap-encoding" может быть найден в http://www.w3.org/2003/05/soap-encoding |
env | "http://www.w3.org/2003/05/soap-envelope" | Определен в SOAP 1.2. Часть 1 [ИСО/МЭК 40210] |
rpc | "http://www.w3.org/2003/05/soap-rpc" | Нормативная XML-схема [XML Schema Part 1], документ [XML Schema Part 2] для пространства имен "http://www.w3.org/2003/05/soap-rpc" может быть найден в http://www.w3.org/2003/05/soap-rpc |
xs | "http://www.w3.org/2001/XMLSchema" | Определен в спецификации XML-схемы W3C [XML Schema Part 1], [XML Schema Part 2] |
xsi | "http://www.w3.org/2001/XMLSchema-instance" | Определен в спецификации XML-схемы W3C [XML Schema Part 1], [XML Schema Part 2] |
Имена пространства имен вида "http://example.org/..." и "http://example.com/..." представляют определенные приложением или контекстно-зависимые универсальные идентификаторы ресурсов (URI) (см. [RFC 3986]).
Данная спецификация использует расширенную форму Бэкуса - Наура (РБНФ), определенную в [XML1.0].
Все части настоящей спецификации являются нормативными, за исключением примеров и разделов, отмеченных как "справочное".
4 Модель данных SOAP
Модель данных SOAP представляет определенные приложением структуры данных и значения в виде ориентированного помеченного графа. Компоненты этого графа описаны в следующих подразделах.
Модель данных SOAP предназначена обеспечить отображение данных, не основанных на языке XML, в представлении для передачи по каналам данных. Использование модели данных SOAP, соответствующего кодирования SOAP (см. раздел 5) и/или представления SOAP RPC (см. раздел 6) НЕ ОБЯЗАТЕЛЬНО. Приложения, данные которых уже представлены в XML, могут не использовать модель данных SOAP. Так как модель данных SOAP не является обязательной, данная спецификация не требует, чтобы реализация узла SOAP поддерживала модель данных SOAP, кодирование SOAP и/или представление SOAP RPC.
4.1 Ребра графа
Ребро графа исходит из узла графа и заканчивается в узле графа. Ребро, исходящее из узла графа, называется исходящим ребром данного узла графа. Ребро, заканчивающееся в узле графа, называется входящим ребром данного узла графа. Ребро МОЖЕТ исходить и заканчиваться в одном и том же узле графа. У ребра МОЖЕТ быть только начальный узел графа, такое ребро является только исходящим. У ребра МОЖЕТ быть только завершающий узел графа, такое ребро является только входящим.
Исходящие ребра узла графа МОГУТ различаться меткой или позицией. Позиция задает полный порядок таких ребер. Таким образом, если какие-либо исходящие ребра данного узла различаются позицией, то все исходящие ребра этого узла различаются позицией.
4.1.1 Метки ребер
Метка ребра - квалифицированное имя XML. Две метки ребра равны тогда и только тогда, когда полные имена XML равны, то есть когда выполняются оба следующих утверждения:
1 Значения локальных имен совпадают.
2 Выполнено одно или оба из следующих утверждений:
1 У обоих имен отсутствуют значения пространства имен.
2 У обоих имен присутствуют значения пространства имен, и эти значения совпадают.
В 4.3 описано, как метки ребер и позиции ребер используются для различения элементов закодированных значений. Дополнительная информация о сравнении квалифицированных имен XML представлена в стандарте "Схема XML" [XML Schema Part 2].
4.2 Узлы графа
Количество исходящих ребер узла графа может быть больше или равно нулю. У узла графа, не имеющего исходящих ребер, может быть необязательное дополнительное лексическое значение. У всех узлов графа имеется необязательное дополнительное имя типа, представленное значением типа xs:QName из пространства имен "http://www.w3.org/2001/XML Schema" (см. [XML Schema Part 2]).
4.2.1 Одно- и многоссылочные узлы
Узел графа может быть односсылочным и многоссылочным. У односсылочного узла имеется единственное входящее ребро. У многоссылочного узла число входящих ребер более одного.
4.3 Значения
Простое значение представляется как узел графа с лексическим значением.
Составное значение представляется как узел графа с нулевым или большим количеством исходящих ребер следующим образом:
1 Узел графа, исходящие ребра которого отличаются исключительно метками, называется "структура". Исходящие ребра структуры ДОЛЖНЫ быть маркированы различающимися именами (см. 4.1.1).
2 Узел графа, исходящие ребра которого отличаются исключительно позицией, называется "массив". Исходящие ребра массива НЕ ДОЛЖНЫ быть помечены.
5 Кодирование SOAP
Кодирование SOAP обеспечивает средство кодирования экземпляров данных, которые соответствуют модели данных, описанной в разделе 4. Это кодирование МОЖЕТ использоваться для передачи данных в блоках заголовка SOAP и/или теле SOAP. Другие модели данных, альтернативные кодировки модели данных SOAP, незакодированные данные МОГУТ также использоваться в сообщениях SOAP (спецификация альтернативных стилей кодирования описана в "Атрибут SOAP encodingStyle" [ИСО/МЭК 40210, пункт 8.1.1]; ограничения модели данных и кодирования в удаленных вызовах процедур SOAP (SOAP RPC) описаны в разделе 6).
Правила преобразования в последовательную форму, определенные в этом разделе, описаны в документе, идентифицированном URI "http://www.w3.org/2003/05/soap-encoding". Сообщение SOAP, использующее данное конкретное преобразование в последовательную форму, СЛЕДУЕТ обозначать при помощи информационного объекта-атрибута SOAP encodingStyle [ИСО/МЭК 40210, пункт 8.1.1].
5.1 Отображение между XML и моделью данных SOAP
XML допускает очень гибкое кодирование данных. Кодирование SOAP определяет более узкий набор правил для кодирования графов, описанных в разделе 4. Данный раздел определяет кодирование на высоком уровне, а последующие разделы описывают правила кодирования более подробно. Кодировки, описанные в этом разделе, могут использоваться в сочетании с отображением запросов и ответов RPC, определенных в разделе 6.
Кодировки, описанные ниже, представлены с точки зрения десериализатора. В каждом случае предполагается наличие сериализованного XML и описывается его отображение на соответствующий граф.