Usando WSDL

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

A linguagem WSDL determina a definição da interface da Web para todas as funções RPC expostas no ponto de extremidade HTTP, além de descrever a funcionalidade de lote SQL para o ponto de extremidade. Um cliente pode solicitar uma resposta WSDL em uma instância do SQL Server e usá-la para gerar solicitações de lote RPC e SQL no servidor usando os pontos de extremidade HTTP configurados para oferecer suporte a um tipo WSDL. A resposta WSDL é, na verdade, um documento XML gerado dinamicamente com base nas funções RPC associadas ao ponto de extremidade no momento da solicitação.

ObservaçãoObservação

Para obter informações sobre a linguagem WSDL, consulte a especificação 1.1 da WSDL disponível no site do W3C (World Wide Web Consortium) em http://www.w3c.org.

Os pontos de extremidade HTTP configurados para oferecer suporte a uma opção WSDL podem especificar uma das seguintes configurações a serem usadas para responder clientes que enviam solicitações WSDL:

  • Uma WSDL padrão

  • Uma WSDL personalizada

Quando configurado para fornecer a opção WSDL padrão, o SQL Server oferece suporte a dois tipos WSDL: um padrão, ou WSDL estendida, e um formato WSDL simplificado.

Muito embora qualquer um desses documentos WSDL descreva os métodos para os quais há suporte no ponto de extremidade, a WSDL padrão usa recursos de um XSD (esquema XML) para fornecer uma descrição mais avançada dos métodos, dos tipos de dados, dos parâmetros e dos valores de retorno disponíveis ou expostos pelo ponto de extremidade.

O formato WSDL simplificado, que pode ser obrigatório na compatibilidade de nível inferior com clientes mais antigos, usa um esquema XSD muito básico que exige apenas tipos de dados primitivos. Caso nem a WSDL padrão, nem a simplificada ofereça o conteúdo WSDL exato apropriado a um determinado cliente, é possível atualizar o servidor para fornecer uma versão personalizada da WSDL conforme necessário.

As respostas WSDL são geradas e retornadas por uma instância do SQL Server diante da conexão inicial com um ponto de extremidade HTTP estabelecida por um cliente dos serviços Web que envia uma solicitação WSDL.

Como o SQL Server oferece suporte à linguagem WSDL

Quando um ponto de extremidade é definido, o argumento WSDL na instrução CREATE ENDPOINTTransact-SQL é usado para especificar para o servidor se uma resposta WSDL é gerada e retornada ao ponto de extremidade a fim de descrever os recursos programáveis da Web. Se o ponto de extremidade for estabelecido usando um valor WSDL=NONE, o servidor não retornará uma resposta WSDL.

Se a geração WSDL padrão tiver sido especificada como, por exemplo, se WSDL=DEFAULT fosse especificado durante a criação do ponto de extremidade, o formato da WSDL retornada pelo servidor irá variar de acordo com a cadeia de caracteres da URL usada pelo cliente na conexão com o ponto de extremidade HTTP. Os clientes podem usar um dos seguintes formatos de URL para solicitar a WSDL:

  • WSDL padrão

    Trata-se da versão completa da resposta WSDL estendida retornada quando você usa a URL http://server/endpoint_path?wsdl para se conectar ao ponto de extremidade. Esse formato usa tipos derivados XSD para oferecer suporte a mapeamento para tipos SQL mais complexos. Para obter mais informações, consulte WSDL padrão.

  • WSDL simples

    Trata-se de uma versão simplificada curta da WSDL padrão que mapeia todos os tipos de dados de sistema do SQL Server para tipos XSD nativos. Esse formato é retornado quando você usa http://server/endpoint_path?wsdlsimple como o URL para se conectar ao ponto de extremidade. Para obter mais informações, consulte WSDL simples.

  • WSDL personalizada

    Quando a versão da WSDL que a instância do SQL Server retorna, independentemente de ser a padrão ou a simplificada, ela não é aceitável por parte dos clientes, sendo possível especificar uma opção de WSDL personalizada. Essa opção exige que você crie e implemente código adicional. Dessa forma, um procedimento armazenado pode ser usado para gerar e retornar o conteúdo da linguagem WSDL personalizado para os clientes que especificam o tipo WSDL personalizado em uma consulta baseada no HTTP. Para obter mais informações, consulte Implementando suporte a WSDL personalizado.

Conteúdo da linguagem WSDL

Uma instância da WSDL é um documento XML com um elemento <definitions> raiz que especifica o namespace WSDL (https://schemas.xmlsoap.org/wsdl) e define um conjunto de serviços Web como uma coleção de pontos de extremidade de rede, ou portas. Um documento WSDL típico terá a seguinte estrutura de alto nível:

<wsdl:definitions>
  <wsdl:types>...</wsdl:types>
  <wsdl:message>...<wsdl:message/>
  <wsdl:portType>...</wsdl:portType>
  <wsdl:binding>...</wsdl:binding>
  <wsdl:service>...<wsdl:service>
<wsdl:definitions>

Como essa exibição simplificada do formato WSDL mostra, vários elementos são usados para indicar as principais seções dentro do documento WSDL. A função de cada um deles é descrita brevemente na seguinte tabela.

Elemento

Descrição

wsdl:types

O elemento contêiner das definições do tipo de dados feitas usando XSD ou outro sistema semelhante para tipos de dados.

wsdl:message

Definição dos dados de mensagem comunicada. A mensagem pode ser composta por várias partes e cada uma delas pode ser de um tipo diferente.

wsdl:portType

Conjunto de operações abstrato para o qual um ou mais pontos de extremidade oferecem suporte.

wsdl:binding

Protocolo e especificação do formato de dados concretos de um tipo de porta particular.

wsdl:service

Coleção de pontos de extremidade relacionados.

Procedimentos armazenados do sistema usados para oferecer suporte à WSDL

Os seguintes procedimentos armazenados do sistema estão incluídos nos XML Web Services nativos do SQL Server para oferecer suporte a implementações WSDL padrão e simples, além de serem invocados em resposta a uma solicitação da WSDL:

  • sp_http_generate_wsdl_defaultcomplexorsimple

  • sp_http_generate_wsdl_defaultsimpleorcomplex

  • sp_http_generate_wsdl_complex

  • sp_http_generate_wsdl_simple

A execução desses procedimentos armazenados exige a associação na função pública. Internamente, cada um desses procedimentos armazenados consulta os catálogos para obter informações sobre procedimentos armazenados adicionais expostos por meio dos pontos de extremidade como métodos Web. Os usuários só exigem permissões nesses procedimentos armazenados do método Web. Para obter mais informações, consulte Expondo a programação SQL à Web.