ГОСТ Р ИСО/МЭК 29361— 2012
R2027 Если в ходе обработки описания потребитель встретил элемент расширения WSDL. ко
торый имеет атрибут wsdlrequired с булевским значением «true» и которыйпотребитель не понимает
или не может обработать, то ПОТРЕБИТЕЛЬ ДОЛЖЕН отказать в обработке.
Средства разработки, которые получают описание WSDL и генерируют программное обеспечение
для экземпляра сетевой услуги, могут не иметь встроенного понимания неизвестных расширений WSDL.
Следовательно, следует избегать использования обязательных расширений VVSDL. Использование обяза
тельного расширения WSDL. не имеющегодоступной спецификации его применения и семантики, навязы
вает потенциально непреодолимые проблемы интероперабельности. Использование обязательного расши
рения WSDL. которое имеет доступную спецификацию его применения и семантики, уменьшает, но не
исключает проблемы интероперабельности.
В настоящем Профиле все элементы в пространстве имен
"http://schemas.xmlsoap.org/wsdr
являют
ся расширяемыми через элементы и атрибуты. Для удобства WS-I опубликовала версию схемы WSDL1.1,
которая отражает эти возможности:
http://ws-i.org/profiles/basic/1.1
Avsdl 11.xsd.
4.3 Типы
В настоящем разделе Профиля использованы ссылки на следующие спецификации (или их разде
лы):
• WSDL 1.1. раздел 2.2
Элемент wsdl:types WSDL 1.1 включает в себя определения типовданных, которые относятся копи
сываемой сетевой услуге. В Профиле установлены следующие ограничения, относящиеся к тем частям
содержимого элемента wsdLtypes. на которые ссылаются элементы WSDL, заявляющие о соответствии
Профилю.
4.3.1 Ссылки QName
В Схеме XML требуется, чтобы каждая ссылка QName использовала либо целевое, либо импортиро
ванное пространство имен (явно указанное элементом xsd:import). Ссылки QName на пространства имен,
представленные только в виде вложенных импортов. не допускаются.
В WSDL 1.1 не ясно, какие схемы целевых пространств имен подходятдля ссылокQName из элемен
та WSDL. В Профиле допустимы ссылки QName из элементов WSDL как на целевое пространство имен,
определенное элементом xsd:schema. так и на импортированные пространства имен. Ссылки QName на
пространства имен, определенные только через вложенный импорт, недопустимы.
R2101 ОПИСАНИЕ НЕДОЛЖНО использовать ссылки QName на компоненты WSDL впростран
ствах имен, которые не были ни импортированы, ни определены в ссылающемся документе WSDL.
R2102 Ссылка QName на компонент Схемы в ОПИСАНИИ ДОЛЖНА использовать пространство
имен, определенное в атрибуте targetNamespace элемента xsd:schema. или в атрибуте namespace
элемента xsd.import в элементе xsd:schema.
4.3.2 Структура Схемы targetNamespace
Хорошая практика состоит в требовании атрибута targetNamespace во всех элементах xsd:schema,
являющихся потомками wsdl.types, что минимально обременяет авторов документов WSDL и позволяет
избежать случаев неясных определений.
R2105 Все элементы xsd:schema. содержащиеся в элементе wsdLtypes ОПИСАНИЯ, ДОЛЖНЫ
иметьатрибут targetNamespaceс допустимым иненулевым знамением, еслитолькоэлемент xsd:schema
не имеет xsd.import и/илиxsd:annotation вкачестве вдинстевнного(ых) дочсрнвго(их) элвмента(ов).
4.3.3 soapenc:Array
Рекомендация WSDL 1.1. раздел 2.2. декларация типов массивов интерпретируется различными спо
собами. приводя к проблемам с интероперабельностью. Более того, имеются другие способы декларации
массивов.
R2110 Декларации вОПИСАНИИ НЕДОЛЖНЫ расширять или ограничивать тип soapenc.Array.
R2111 Декларации в ОПИСАНИИ НЕ ДОЛЖНЫ использовать атрибут wsdLarrayType в декларации
типа.
R2112 Элементы в ОПИСАНИИ НЕ СЛЕДУЕТименовать, используя соглашение ArrayOfXXX.
R2113 ОБОЛОЧКА НЕДОЛЖНА включать в себя атрибут soapenc:arrayType.
Например.
НЕПРАВИЛЬНО:
Для данного описания WSDL:
<xsd:element пате=*МуАггау2" type="tns:MyArray2Type’/>
18