В настоящем разделе Профиля даны ссылки на следующие спецификации (или их разделы):
- SOAP 1.1, раздел 4.
SOAP 1.1 определяет структуру для составных сообщений, оболочки. В Профиле установлена обязательность использования этой структуры и следующие ограничения на ее использование:
3.1.1 Структура оболочки SOAP
R9980 ОБОЛОЧКА ДОЛЖНА соответствовать структуре, определенной в SOAP 1.1, раздел 4, "Оболочка SOAP" (вопрос для исправления Профилем).
R9981 ОБОЛОЧКА ДОЛЖНА иметь ровно один дочерний элемент элемента soap: Body или не иметь их совсем.
Хотя комбинация R2201 и R2210 (см. ниже) подразумевает, что у soap:Body может быть не более одного дочернего элемента, в Профиле нет явного требования, озвучивающего это ограничение, что приводит к некоторой путанице.
3.1.2 Пространство имен оболочки SOAP
В SOAP 1.1 установлено, что оболочку с элементом документа, пространство имен которого отлично от "http://schemas.xmlsoap.org/soap/envelope/", следует отбросить. Для обеспечения недвусмысленности операции в Профиле требуется, чтобы вместо этого был сгенерирован отказ.
R1015 ПОЛУЧАТЕЛЬ ДОЛЖЕН сгенерировать отказ, если ему встретилась оболочка, элемент документа которой не является soap:Envelope.
3.1.3 Квалификация пространства имен тела SOAP
Использование неквалифицированных имен элементов может вызвать конфликты имен, следовательно, для потомков soap:Body должны использоваться квалифицированные имена.
R1014 Потомки элемента soap:Body в ОБОЛОЧКЕ ДОЛЖНЫ быть квалифицированным пространством имен.
3.1.4 Запрещенные конструкции
ДТД (декларация типа документа) и ИО (инструкция обработки) XML при их использовании в оболочках могут приводить к уязвимостям безопасности, избыточной обработке и семантической двусмысленности. Поэтому некоторые конструкции XML запрещены разделом 3 SOAP 1.1.
Хотя опубликованная поправка NE05 (см. http://www.w3.org/XML/xml-names-19990114-errata) допускает появление декларации пространства имен xmlns:xml="http://www.w3.org/XML/1998/namespace", некоторые старые процессоры рассматривают такую декларацию как ошибку. Следующие требования обеспечивают, чтобы соответствующие артефакты имели наиболее широко возможную интероперабельность.
R1008 ОБОЛОЧКА НЕ ДОЛЖНА содержать декларацию типа документа. С
R1009 ОБОЛОЧКА НЕ ДОЛЖНА содержать инструкции обработки. С
R1033 ОБОЛОЧКЕ НЕ СЛЕДУЕТ содержать декларацию пространства имен xmlns:xml-"http://www.w3.org/XML/1998/namespace". С
R1034 ОПИСАНИЮ НЕ СЛЕДУЕТ содержать декларацию пространства имен xmlns:xml-"http://www.w3.org/XML/1998/namespace". С
3.1.5 Приложения SOAP
Интерпретация элементов одного уровня, следующих за элементом soap:Body не ясна. Следовательно, такие элементы запрещены.
R1011 ОБОЛОЧКА НЕ ДОЛЖНА иметь дочерних элементов soap:Envelope, следующих за элементом soap:Body
Настоящее требование уточняет расхождение между спецификацией SOAP 1.1 и Схемой XML SOAP 1.1.
Например,
НЕПРАВИЛЬНО: