Utilizzo di WSDL

Questa caratteristica verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Il linguaggio WSDL (Web Service Description Language) determina la definizione dell'interfaccia Web per qualsiasi funzione RPC esposta nell'endpoint HTTP e descrive inoltre le funzionalità batch SQL per l'endpoint. Un client può richiedere una risposta WSDL da un'istanza di SQL Server e utilizzarla per generare richieste RPC e batch SQL nel server utilizzando gli endpoint HTTP configurati per supportare un tipo WSDL. La risposta WSDL è in realtà un documento XML generato in modo dinamico in base alle funzioni RPC associate all'endpoint al momento delle richiesta.

[!NOTA]

Per informazioni di base su WSDL (in lingua inglese), vedere la specifica WSDL 1.1 disponibile nel sito Web di World Wide Web Consortium (W3C) all'indirizzo http://www.w3c.org/.

Negli endpoint HTTP configurati per il supporto di un'opzione WSDL è possibile specificare una delle configurazioni WSDL seguenti da utilizzare nelle risposte ai client che inviano richieste WSDL:

  • WSDL predefinito

  • WSDL personalizzato

Se configurato per l'opzione WSDL predefinita, SQL Server offre supporto per due tipi di WSDL: un formato WSLD predefinito, o esteso, e un formato WSLD semplificato.

Benché uno qualsiasi di tali documenti WSDL descriva i metodi supportati nell'endpoint, il WSDL predefinito utilizza altre funzionalità di uno schema XML (XSD) per consentire una descrizione più precisa di metodi, tipi di dati, parametri e valori restituiti disponibili o esposti dall'endpoint.

Il formato WSDL semplificato, che potrebbe essere necessario per la compatibilità con le versioni precedenti dei client meno recenti, utilizza uno schema XSD di base che richiede solo tipi di dati primitivi. Se né il formato WSDL predefinito, né quello semplificato offrono contenuto WSDL preciso e appropriato per un client specifico, è possibile aggiornare il server per fornire una versione personalizzata di WSDL in base alle esigenze.

Le risposte WSDL vengono generate e restituite da un'istanza di SQL Server durante la connessione iniziale a un endpoint HTTP da parte di un client dei servizi Web che invia una richiesta WSDL.

Supporto di WSDL in SQL Server

Quando viene definito un endpoint, viene utilizzato l'argomento WSDL incluso nell'istruzione CREATE ENDPOINTTransact-SQL per specificare se verrà generata e restituita una risposta WSDL dal server per l'endpoint per descriverne le funzionalità Web programmabili. Se l'endpoint è stato stabilito utilizzando un valore WSDL=NONE, il server non restituirà una risposta WSDL.

Se è stata specificata la generazione WSDL predefinita, indicando ad esempio WSDL=DEFAULT quando è stato creato l'endpoint, il formato della risposta WSDL restituita dal server varierà in base alla stringa URL utilizzata dal client per connettersi all'endpoint HTTP. I client possono utilizzare uno dei formati URL seguenti per inviare una richiesta WSDL:

  • WSDL predefinito

    Si tratta della versione completa della risposta WSDL estesa restituita quando si utilizza l'URL http://server/endpoint_path?wsdl per la connessione all'endpoint. Questo formato utilizza tipi derivati XSD per offrire supporto per il mapping per tipi SQL più complessi. Per ulteriori informazioni, vedere Documento WSDL predefinito.

  • WSDL semplice

    Si tratta di una versione semplificata ridotta del formato WSDL predefinito tramite cui viene eseguito il mapping tra tutti i tipi di dati di sistema di SQL Server e i tipi XSD nativi. Questo formato viene restituito quando si utilizza http://server/endpoint_path?wsdlsimple come URL per la connessione all'endpoint. Per ulteriori informazioni, vedere Documento WSDL semplice.

  • WSDL personalizzato

    Quando qualsiasi versione del formato WSDL, predefinita o semplificata, restituita dall'istanza di SQL Server non è accettabile per i client, è possibile specificare un formato WSDL personalizzato. Per questa opzione, è necessario progettare e implementare ulteriore codice. In questo modo, è possibile utilizzare una stored procedure per generare e restituire il contenuto WSDL personalizzato come risultato ai client che specificano il tipo WSDL personalizzato in una query basata su HTTP. Per ulteriori informazioni, vedere Implementazione di supporto WSDL personalizzato.

Contenuto del documento WSDL

Un'istanza WSDL (Web Services Description Language) è un documento XML che include un elemento <definitions> radice che specifica lo spazio dei nomi WSDL (https://schemas.xmlsoap.org/wsdl) e che definisce un set di servizi Web come raccolta di endpoint di rete, o porte. Un documento WSDL tipico presenta la struttura di livello principale seguente:

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

Come illustrato da questa vista semplificata del formato WSDL, vengono utilizzati diversi elementi per indicare le sezioni principali del documento WSDL. Il ruolo di ogni elemento viene descritto brevemente nella tabella seguente.

Elemento

Descrizione

wsdl:types

Elemento contenitore per le definizioni dei tipi di dati create tramite lo schema XML (XSD) o un altro sistema simile per i tipi di dati.

wsdl:message

Definizione dei dati del messaggio comunicati. Il messaggio può essere composto da più parti e ogni parte può essere di un tipo diverso.

wsdl:portType

Set astratto di operazioni supportate da uno o più endpoint.

wsdl:binding

Protocollo concreto e specifica del formato dei dati per un determinato tipo di porta.

wsdl:service

Insieme di endpoint correlati.

Stored procedure di sistema utilizzate per supportare WSDL

Le stored procedure di sistema seguenti sono incluse nei servizi Web XML nativi di SQL Server per il supporto delle implementazioni di WSDL semplici e predefinite e vengono richiamate in risposta a una richiesta di WSDL:

  • sp_http_generate_wsdl_defaultcomplexorsimple

  • sp_http_generate_wsdl_defaultsimpleorcomplex

  • sp_http_generate_wsdl_complex

  • sp_http_generate_wsdl_simple

Per eseguire queste stored procedure, è richiesta l'appartenenza al ruolo public. Internamente, ognuna di tali stored procedure esegue query sui cataloghi per ottenere informazioni su altre stored procedure esposte tramite gli endpoint come metodi Web. Gli utenti devono disporre delle autorizzazioni solo per queste stored procedure esposte come metodi Web. Per ulteriori informazioni, vedere Esposizione della programmabilità SQL sul Web.