ГОСТ Р ИСО/МЭК 29361— 2012
Какустанавливает модель обработки SOAP: (а) если пространство имен элемента «Envelope» являет
ся некорректным, тодолжен быть сгенерирован код отказа «VersionMismatch», (Ь) если экземпляр не пони
мает блок заголовка SOAP со значением «1» для атрибута soap:mustUnderstand, то должен быть сгенери
рован отказ «MustUnderstand». Во всехдругих случаях, когда оболочка не согласуется с описанием WSDL,
следует генерировать отказ с кодом «Client».
R2724 Если ЭКЗЕМПЛЯР получает оболочку, которая не согласована с описанием WSDL. то СЛЕ
ДУЕТ генерировать злемвнт soap:Fault скодом отказа «Client» во всех случаях, когда не генерируется
отказ «MustUnderstand» или «VersionMismatch».
R2725 Если ЭКЗЕМПЛЯР получает оболочку, которая не согласована с описанием WSDL. то он
ДОЛЖЕН проверить условия отказов «VersionMismatch»Т«MustUnderstand» и «CHent» вуказанном поряд
ке.
4.7.19 Окружение ответа
WSDL 1.1 раздел 3.5 может быть интерпретирован в том смысле, что охватывающий элемент ответа
RPC должен быть назван идентично имени wsdl:operation.
R2729 ОБОЛОЧКА, описанная с привязкой грс-литврал. которая является ответом. ДОЛЖНА
иметь охватывающий элемент, имя которого есть соответствующее имя wsdLoperation с суффик
сом «Response».
4.7.20Дополнения частей
Для оболочек грс-литерал в WSDL 1.1 не ясно, что является пространством имен, если оно есть,
дополнительных элементов для параметров и возвращаемого значения. В разных реализациях сделан
разный выбор, что приводит к проблемам с интероперабельностью.
R2735 ОБОЛОЧКА, описанная с привязкой грс-литврал. ДОЛЖНА размещать элементы дополне
ний частей для параметров и возвращаемого значения без пространства имен.
R2755 Элемент дополнения частив СООБЩЕНИИ, описанном спривязкой грс-литерал. ДОЛЖЕН
иметь локальное имя с тем же самым значением, что и атрибут пате соответствующего элемента
wsdLpart.
Выбор одной из альтернатив является критическим для достижения интероперабельности. Профиль
помещает элементы дополнения частей вне пространства имен, так как это просто охватывает все случаи и
не приводит клогической несогласованности.
4.7.21 Пространства имен для потомков дополнений частей
Для оболочек грс-литерал в WSDL 1.1 но ясно, что является правильной квалификацией пространства
имен для дочерних элементовдополнений частей, когда соответствующие абстрактные части определены
как имеющие типы из пространств имен, отличных от targetNamespace описания WSDL для абстрактных
частей.
R2737 ОБОЛОЧКА, описанная спривязкой грс-литерал. ДОЛЖНА квалифицироватьпространство
имен потомков элементов дополнительных частей для параметрови возвращаемогозначения так. как
определен схемой, вкоторой определены типы дополнений частей.
WSDL 1.1 раздел 3.5 устанавливает: «Имена, типы и значения частей атрибута пространства имен
являются входом для кодирования, хотя атрибут пространства имен применяется только ксодержимому,
неявноопределенномуабстрактными типами».
Однако, это не устанавливает явно, что содержимое элемента и атрибута абстрактных (complexType)
типовявляется пространством имен, квалифицированным targetNamespace. вкотором определены эти эле
менты и атрибуты. WSDL 1.1 был предназначен для функционирования таким же образом, что и Схема
XML. Следовательно, реализации должны следовать тем же правилам, что и для Схемы XML. Если
complexType, определенный в targetNamespace «А», был импортирован и указан вдекларации элемента в
схеме с targetNamespace «В», то содержимое атрибута и элемента дочерних элементов этого complexType
будут квалифицированы пространством имен «А», а элемент будет квалифицирован пространством имен
«В».
Например.
ПРАВИЛЬНО:
Для данного WSDL. который определяет некоторую схему в пространстве имен «
http://example.org/foo/»
в
разделе wsdktypes, содержащемся в wsdkdefinitions. который имеет атрибут targetNamespace со значе
нием «
http://example.org/bar/»
(следовательно, имеет тил. объявленный водном пространстве имен, и со
держит элемент, определенный вдругом пространстве имен):
26