O Validador do WS-I pode ser utilizado para verificar suas definições WSDL no
Perfil Básico.
Para obter informações adicionais sobre o WS-I Basic Profile, consulte o WS-I e, em específico, o documento WS-I Basic Profile:
É possível utilizar o Validador do WS-I para verificar suas definições WSDL em relação ao Basic Profile; consulte WS-I Basic Profile Versão 1.1.
É possível executar o validador de uma das seguintes maneiras:
- Manualmente em um recurso .wsdl específico no ambiente de trabalho.
Esta opção permite que você investigue e corrija problemas de conformidade
de WS-I; todos os problemas de validação são exibidos como erros e avisos
da lista da tarefas.
- Automaticamente, quando WSDL é importado ou gerado.
É possível importar definições de WSDL usando o assistente
Modelo de Mensagem.
É possível controlar o comportamento do validador, configurando um nível de
conformidade para seu perfil.
- Selecione .
- Clique em Políticas de Serviço e expanda
Conformidade de Perfil.
- Selecione um dos seguintes perfis:
- Nível de conformidade do WS-I AP (WS-I Attachments Profile 1.0)
- Nível de conformidade do WS-I SSBP (WS-I Simple SOAP Binding Profile 1.0)
- Selecione um nível de conformidade:
- Selecione Sugerir Conformidade para executar o validador
com erros tratados como irrecuperáveis, mas avisos somente notificados.
Essa é a definição padrão.
- Selecione Requerer Conformidade para executar o validador com
erros e avisos tratados como irrecuperáveis.
- Selecione Ignorar Conformidade se você não desejar executar o validador.
A seleção de AP se aplica automaticamente ao campo SSBP,
portanto, Ignorar não é explicitamente selecionável, a menos que a seleção de AP
seja configurada para Ignorar.
Os termos a seguir referem-se a três categorias amplas de definição WSDL:
- document-literal significa a combinação de style="document" e use="literal"
- rpc-literal significa a combinação de style="rpc" e use="literal"
- rpc-encoded significa a combinação de style="rpc" e use="encoded"
A seguir são mostrados problemas típicos de validação ao usar a terminologia precedente:
- Seu WSDL é rpc-encoded
- WSDL com use="encoded" não é compatível com WS-I e pode levar a problemas operacionais, pois produtos de diferentes fornecedores podem fazer diferentes suposições sobre a carga útil SOAP esperada.
WS-I: (BP2406) O atributo
use de um soapbind:body, soapbind:fault, soapbind:header e
soapbind:headerfault não tem o valor igual a "literal".
- Seu WSDL é document-literal, mas uma ou mais definições de partes WSDL referem-se a tipos de Esquema XML.
- Em WSDL document-literal, a carga útil do corpo SOAP é o elemento do Esquema XML que é referido pela parte WSDL apropriada.
Se um tipo for especificado, em vez de um elemento, a carga útil SOAP é potencialmente ambígua (o nome da carga útil não é definida) e problemas de interoperabilidade são prováveis.
WS-I: (BP2012) Uma ligação document-literal contém elementos soapbind:body que fazem referência a elementos de partes da mensagem que não têm o atributo element.
- Seu WSDL é rpc-literal ou rpc-encoded, mas uma ou mais definições de partes WSDL referem-se a elementos de Esquema XML.
- Em WSDL rpc-style, a carga útil do corpo SOAP é o nome da operação WSDL e seus filhos são as partes WSDL que são especificadas para a operação.
Se um elemento for especificado em vez de um tipo, a carga útil da mensagem SOAP é potencialmente ambígua (o nome da carga útil pode ser o nome da parte WSDL ou o nome do elemento do Esquema XML), e problemas de interoperabilidade são prováveis.
WS-I: (BP2013)
Uma ligação rpc-literal contém elementos soapbind:body que fazem referência a elementos de partes da mensagem que não têm o atributo tipo.
- Seu WSDL inclui definições SOAP header, headerfault ou fault que fazem referência a tipos do Esquema XML.
- Em WSDL rpc-style, o corpo SOAP é definido corretamente através de tipos do Esquema XML, conforme descrito acima.
No entanto, cabeçalhos e falhas SOAP não correspondem a uma chamada de função rpc da mesma forma que o corpo.
Na verdade, não há nenhum conceito de 'parâmetro' para um cabeçalho ou falha e um cabeçalho ou falha deve sempre ser definido em termos de elementos do Esquema XML para evitar ambigüidade potencial. Efetivamente, as definições de cabeçalho e falha no WSDL são sempre document-literal.
WS-I: (BP2113) Os elementos soapbind:header, soapbind:headerfault ou soapbind:fault referem-se a elementos wsd:part que não são definidos utilizando somente o atributo "element".
- Seu WSDL é rpc-literal ou rpc-encoded, mas nenhum espaço de nomes foi especificado para uma operação.
- Em WSDL rpc-style, a carga útil de mensagem WSDL é o nome da operação WSDL, qualificado por um espaço de nomes que é especificado como parte da ligação WSDL.
Se nenhum espaço de nomes for especificado, então, a carga útil da mensagem SOAP é potencialmente ambígua (o nome da carga útil pode não estar em nenhum espaço de nomes ou pode utilizar como padrão um espaço de nomes diferente, como o espaço de nomes de destino da definição WSDL) e problemas de interoperabilidade provavelmente ocorrerão.
WS-I: (BP2020) Uma ligação rpc-literal contém elementos
soapbind:body que não têm um atributo de espaço de nomes ou têm um valor de atributo de espaço de nomes que não é um URI absoluto.
- Seu WSDL inclui uma ligação SOAP/JMS.
- Se o seu WSDL utilizar um URI de transporte SOAP/JMS, ele não é compatível com WS-I.
É mostrado um erro se a validação restrita com WS-I estiver ativada. Para desativar a validação restrita com
WS-I, clique em e selecione o WS-I BP 1.1: Permitir SOAP/JMS como URI de transporte. Pelo padrão, a validação com restrita com
WS-I está desativada.
A interoperabilidade do serviço da Web é melhorada se você implementar
as seguintes ações:
- Use o WSDL de estilo de documento sempre que possível.
- Use codificação literal, se o WSDL de estilo de RPC for necessário.
- Assegure que as definições da operação de WSDL sejam qualificadas
por um atributo de espaço de nomes válido, se o WSDL codificado para rpc precisar ser usado.