ГОСТ Р ИСО/МЭК 29361— 2012
Односторонние операции не создают ответов SOAP. Следовательно, Профиль запрещает отправлять
оболочку SOAP вответ на одностороннюю операцию. Это означает, что передача односторонней операции
не может привести к ответам или ошибкам уровня обработки. Например, в этой ситуации не может быть
возвращен ответ HTTP «500 Internal Server Error» (внутренняя ошибка сервера), содержащий отказ.
Ответ HTTP на одностороннюю операцию указывает на успех или отказ передачи сообщения. Осно
вываясь на семантике различных ответных кодов статуса, поддерживаемых протоколом HTTP, в Профиле
установлено, что предпочтительными кодами статуса, которые следует ожидать отправителю, являются
«200» и «202», означающими, что одностороннее сообщение было получено. Успешная передача не озна
чает, что уровни обработки SOAP и прикладной логики имели возможность проверить валидность оболочки
или провести ее обработку.
4.7.10 Пространства имен для элементов soapbind
Имеется противоречие в вопросе о том. какое пространство имен ассоциировано с различными до
черними элементами soap.Envelope, что приводит к проблемам интероперабельности. В Профиле уточнен
этот вопрос.
R2716 Привязка документ-литерал в ОПИСАНИИ НЕДОЛЖНА иметь атрибут namespace, специ
фицированный во внутренних элементах soapbind:body. soapbind:header, soapbind:headerfault и
soapbind:fault.
R2717 Привязкагрс-литвралв ОПИСАНИИ ДОЛЖНА иметь вэлементах soapbind:bodyспецифици
рованный атрибут namespace, значением которогоДОЛЖНО быть абсолютное URI.
R2726 Привязка грс-литерал вОПИСАНИИ НЕДОЛЖНА иметь атрибут namespace, специфициро
ванный во внутренних элементах soapbind:header. soapbind.headerfault иsoapbind.fault.
В привязке SOAP документ-литерал сериализованный дочерний элемент элемента soap:Body полу
чает свое пространство имен из атрибута targetNamespace схемы, определяющей элемент. Использование
атрибута namespace элемента soapbind:body изменило бы пространство имен элемента. Профилем это
запрещается.
Напротив, в привязке SOAP грс-литерал сериализованный дочерний элемент элемента soap:Body
состоит из окружающего элемента, пространство имен которого является значением атрибута namespace
элемента soapbind:body, а локальное имя которого является либо именем операции, либо именем операции
с суффиксом «Response». Атрибут namespace является обязательным для обеспечения того, что потомки
элемента soap:Body квалифицированы пространством имен.
4.7.11 Согласованность элементов portType и binding
Описание WSDL должно быть согласованным на уровнях элементов wsdl:portType и vvsdlibinding.
R2718 Элемент wsdl.binding в ОПИСАНИИ ДОЛЖЕН иметь тот же самый набор wsdl.operation,
что и элемент wsdl:portType. к которомуон относится.
4.7.12 Описание элементов headerfault
Имеется несогласованность между текстом спецификации WSDL и схемой WSDL вчасти элемента
soapbindiheadorfautt.
R2719 Элемент wsdl.binding в ОПИСАНИИ МОЖЕТ не содержать элементы soapbind:headerfault.
если нет известных отказов заголовка.
Всхеме WSDL 1.1 элементsoapb»nd:headerfau!t является обязательным вэлементахоперации wsdkinput
и wsdl:output, тогда как в спецификации WSDL 1.1 он является факультативным. Правильным является
утверждение вспецификации.
4.7.13 Нумерация отказов
Описание сетевой услуги должно включать в себя все отказы, известные на момент определения
этой услуги. Также имеется потребность в генерации новых отказов, которые не были идентифицированы на
момент определения сетевой услуги.
R2740 Элементу wsdl.binding в ОПИСАНИИ СЛЕДУЕТ содержать элементы soapbind.fault, описы
вающие каждый известный отказ.
R2741 Элементу wsdl.binding в ОПИСАНИИ СЛЕДУЕТ содержать элементы soapbind:headerfault.
описывающие каждый известный отказ заголовка.
R2742 ОБОЛОЧКА МОЖЕТ содержать отказ с элементом detail, который не описан элементом
soapbind.faultв соответствующем описании WSDL.
R2743 ОБОЛОЧКА МОЖЕТ содержать подробности обработки заголовка, относящиесяк отказу
о блоке заголовка SOAP, который не описан элементом soapbind.headerfault в соответствующем
описании WSDL.
24