Создание сайтов - статьи


         

Пространства имен


Описания Web-сервиса, как только они согласованы, должны быть зафиксированы. WSDL 1.1 предусматривает необязательное использование целевого пространства имен. Однако, удобно назначать пространство имен для недвусмысленной идентификации сервисов и их версий - как принято делать в случае спецификаций стандартов. Сложность состоит в том, что WSDL 1.1 не очень четок относительно того, что подразумевается под целевым пространством имен. Другими словами, что точно вкладывается в это понятие? По мнению автора, под ним понималось те же правила, что и в W3C XML Schema.

Напомним кратко эти правила: то, что помещается в целевое пространство имен регулируется атрибутом form в элементах element и attribute. При отсутствии такого атрибута управление передается набору значений по умолчанию в атрибутах elementFormDefault и attributeFormDefault, находящихся в корневом элементе schema. При отсутствии явного задания значений по умолчанию в силу вступают неявные значения по умолчанию: к пространству имен относятся только элементы, определенные глобально.

В каком виде эти правила W3C XML Schema нашли свое отражение в WSDL 1.1? Во-первых, в WSDL не задействованы элементы element и attribute. Во-вторых, элементами верхнего уровня в WSDL являются messages, portTypes, bindings и services, являющиеся сущностями (entity), которые должны быть помещены в целевое пространство. Очевидно, в данном случае type не релевантны. В-третьих, несмотря на то, что теоретически атрибут form мог бы использоваться с любыми элементами, определенными в WSDL, это не является принятой практикой. В-четвертых, аналогично сказанному, атрибуты elementFormDefault и attributeFormDefault могли бы использоваться в элементе definitions, но автор с этим не сталкивался.

Таким образом, можно утверждать, что все message, portType, binding и service оказываются в целевом пространстве имен, а их потомки - нет.

Удобно ли это правило? А имеет ли это значение? Это имеет смысл, когда сообщения зашифрованы так, что - за исключением этого правила - пространство описания Web-сервиса могло бы "просочиться" в сообщение.

Содержание  Назад  Вперед