Questa documentazione è stata archiviata e non viene gestita.

Strumento del linguaggio di descrizione dei servizi Web (Wsdl.exe)

Lo strumento del linguaggio di descrizione dei servizi Web consente di generare codice per servizi Web XML e client di servizi Web XML da file di contratto WSDL, schemi XSD e documenti di individuazione DISCOMAP.


wsdl [options] {URL | path}
Argomento Descrizione

URL

URL di un file di contratto WSDL (WSDL), di un file di schema XSD (XSD) o di un documento di individuazione (DISCO). Non è possibile specificare un URL di un documento di individuazione discomap.

Percorso

Percorso di un file di contratto WSDL locale (WSDL), di un file di schema XSD (XSD) o di un documento di individuazione (DISCO o DISCOMAP).

Opzione Descrizione

/appsettingurlkey: chiave

oppure

/urlkey: chiave

Consente di specificare la chiave di configurazione da utilizzare per leggere il valore predefinito della proprietà URL quando si genera codice. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <appSettingUrlKey> e contiene una stringa.

/appsettingbaseurl: urlbase

oppure

/baseurl: urlbase

Consente di specificare l'URL di base da utilizzare quando si calcola il frammento di URL. Lo strumento calcola il frammento di URL convertendo l'URL relativo dall'argomento baseurl nell'URL presente nel documento WSDL. Con questa opzione è necessario specificare l'opzione /appsettingurlkey. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <appSettingBaseUrl> e contiene una stringa.

/[domain]:dominio

Consente di specificare il nome di dominio da utilizzare per il collegamento a un server che richiede l'autenticazione. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <domain> e contiene una stringa.

/[language]:linguaggio

Consente di specificare il linguaggio da utilizzare per la classe proxy generata. Come argomento del linguaggio è possibile specificare CS (C#; impostazione predefinita), VB (Visual Basic), JS (JScript) o VJS (Visual J#). È inoltre possibile specificare il nome completo di una classe che implementa la classe System.CodeDom.Compiler.CodeDomProvider. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <language> e contiene una stringa.

/[namespace]:spazionomi

Consente di specificare lo spazio dei nomi per il modello o il proxy generato. Lo spazio dei nomi predefinito corrisponde allo spazio dei nomi globale. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <namespace> e contiene una stringa. Questo elemento deve essere incluso nel file dei parametri.

/nologo

Evita la visualizzazione del messaggio di avvio Microsoft. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <nologo> e può essere true o false.

/order

Genera identificatori di ordine espliciti sui membri particella.

/[out]:nomefile o nomedirectory

Consente di specificare il file (o la directory) in cui salvare il codice proxy generato. È possibile anche specificare una directory in cui creare questo file. Lo strumento deduce il nome del file predefinito dal nome del servizio Web XML. I set di dati generati vengono salvati in file diversi. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <out> e contiene una stringa.

/parameters

Legge le opzioni della riga di comando dal file XML specificato. Utilizzare questa opzione per passare più opzioni alla volta allo strumento Wsdl.exe. La forma breve è '/par:'. Gli elementi opzione sono contenuti in un elemento <wsdlParameters xmlns="http://microsoft.com/webReference/">. Per informazioni dettagliate, vedere la sezione Osservazioni.

/parsableerrors

Consente di visualizzare gli errori in un formato simile a quello per la segnalazione degli errori utilizzato dai compilatori dei linguaggi. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <parsableerrors> e può essere true o false.

/[password]:password

Consente di specificare la password da utilizzare per il collegamento a un server che richiede l'autenticazione. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <password> e contiene una stringa.

/protocol: protocollo

Consente di specificare il protocollo da implementare. È possibile specificare SOAP (impostazione predefinita), HttpGet, HttpPost o un protocollo personalizzato specificato nel file di configurazione. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <protocol> e contiene una stringa.

/proxy: URL

Consente di specificare l'URL del server proxy da utilizzare per le richieste HTTP. Per impostazione predefinita, viene utilizzato il proxy impostato per il sistema. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <proxy> e contiene una stringa.

/proxydomain: domain

oppure

/pd: domain

Consente di specificare il dominio da utilizzare per il collegamento a un server proxy che richiede l'autenticazione. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <proxydomain> e contiene una stringa.

/proxypassword: password

oppure

/pp: password

Consente di specificare la password da utilizzare per il collegamento a un server proxy che richiede l'autenticazione. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <proxypassword> e contiene una stringa.

/proxyusername: username

oppure

/pu: username

Consente di specificare il nome utente da utilizzare per il collegamento a un server proxy che richiede l'autenticazione. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <proxyusername> e contiene una stringa.

/server

Consente di generare una classe astratta per un servizio Web XML basato su contratti. Per impostazione predefinita, vengono generate classi proxy client. Quando si utilizza l'opzione /parameters, questo valore corrisponde a un elemento <style> contenente "server".

/serverInterface

Consente di generare interfacce per l'implementazione sul lato server di un servizio Web ASP.NET. Un'interfaccia viene generata per ogni associazione nei documenti WSDL. Il WSDL implementa il contratto WSDL. Le classi che implementano l'interfaccia non devono includere nei metodi delle classi attributi Web Service o attributi Serialization che modificano il contratto WSDL. La forma breve è '/si'. Quando si utilizza l'opzione /parameters, questo valore corrisponde a un elemento <style> contenente "servicerInterface".

/sharetypes

Attiva la funzionalità di condivisione dei tipi che consente di creare un file di codice con un'unica definizione di tipo per tipi identici condivisi tra diversi servizi (lo spazio dei nomi, il nome e la firma del wire devono essere identici). Fare riferimento ai servizi con "http://" URLs come parametri della riga di comando oppure creare un documento discomap per i file locali. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <sharetypes> e può essere true o false.

/[username]:nomeutente

Consente di specificare il nome utente da utilizzare per il collegamento a un server che richiede l'autenticazione. Quando si utilizza l'opzione /parameters, questo valore corrisponde all'elemento <username> e contiene una stringa.

/?

Visualizza la sintassi e le opzioni dei comandi dello strumento.

Un file WSDL è un documento XML scritto in una grammatica XML denominata linguaggio di descrizione dei servizi Web (WSDL, Web Service Description Language). In questo file si definisce il comportamento di un servizio Web XML e si indicano ai client le modalità di interazione con il servizio.

Per ottenere documenti di individuazione per un servizio Web XML, è possibile utilizzare lo strumento di individuazione Servizi Web (Disco.exe). I file DISCOMAP, DISCO, WSDL e XSD prodotti da questo strumento possono essere utilizzati come input per Wsdl.exe.

Quando lo strumento Wsdl.exe viene utilizzato per creare una classe proxy, viene generato un singolo file di origine nel linguaggio specificato. Durante la generazione del codice sorgente per la classe proxy, viene determinato il tipo migliore da utilizzare per gli oggetti specificati nella descrizione del servizio. In alcuni casi viene utilizzato l'approccio del minimo comune denominatore per eseguire il cast di oggetti su un tipo. Di conseguenza, il tipo generato nella classe proxy potrebbe non corrispondere alle previsioni o ai desideri dello sviluppatore. Quando ad esempio viene rilevato un tipo ArrayList in una descrizione del servizio, viene creato un Object Array nella classe proxy generata. Per garantire il cast dell'oggetto su un tipo corretto, aprire il file contenente la classe proxy generata e modificare i tipi di oggetti non corretti nel tipo di oggetto previsto.

  • L'opzione /parameters consente di specificare un file contenente elementi che corrispondono alla maggior parte delle opzioni del prompt dei comandi. Alcune di queste sono disponibili solo nei formati di file /parameters.

Il formato di file XML accettato dall'opzione /parameters è costituito da una serie di elementi all'interno di un elemento <wsdlParameters xmlns="http://microsoft.com/webReference/"> più esterno. Se si specificano valori al prompt dei comandi e si utilizza un file /parameters contenente opzioni o valori differenti, verranno utilizzati i valori specificati al prompt dei comandi. L'elemento <wsdlParameters xmlns="http://microsoft.com/webReference/"> deve contenere un'istanza di <nologo>, <parsableerrors> e <sharetypes>.

Diverse opzioni vengono passate come elementi figlio dell'elemento <webReferenceOptions>, che deve contenere un elemento <verbose>. Altri elementi figlio di <webReferenceOptions> comprendono:

  • <style>: contiene "client", "server" o "serverInterface".

  • <schemaImporterExtension>: contiene un numero qualsiasi di elementi <type>.

  • <codeGenerationOptions>: può accettare un insieme delimitato da spazi delle seguenti stringhe:

  • "properties"

  • "newAsync"

  • "oldAsync"

  • "order"

  • "enableDataBinding"

Per alcuni esempi di utilizzo dell'opzione /parameters, vedere la sezione relativa agli esempi.

Il comando riportato di seguito consente di creare una classe proxy client in linguaggio C# per il servizio Web XML.

wsdl http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

Il comando riportato di seguito consente di creare una classe proxy client in linguaggio C# per un servizio Web XML disponibile all'URL specificato. La classe proxy client viene salvata nel file myProxyClass.cs.

wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL

Il comando riportato di seguito consente di creare una classe proxy client in linguaggio Microsoft Visual Basic per un servizio Web XML disponibile all'URL specificato. La classe proxy client viene salvata nel file myProxyClass.vb.

wsdl /language:VB /out:myProxyClass.vb http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
  • Nel codice di esempio riportato di seguito viene illustrato un file WSDL /parameters di base, contenente solo gli elementi obbligatori, che è possibile utilizzare insieme a un argomento URL al prompt dei comandi.

<wsdlParameters xmlns="http://microsoft.com/webReference/">
  <nologo>true</nologo>
  <parsableerrors>true</parsableerrors>
  <sharetypes>true</sharetypes>
</wsdlParameters>

I documenti WSDL vengono aggiunti nel file WSDL /parameters mediante l'elemento <documents>, come illustrato nel seguente esempio di codice. Nell'elemento <documents> è possibile utilizzare un numero qualsiasi di elementi <document>.

<wsdlParameters xmlns="http://microsoft.com/webReference/">
  <nologo>true</nologo>
  <parsableerrors>true</parsableerrors>
  <sharetypes>true</sharetypes>
  <documents>
    <document>http://www.contoso.com/service.asmx?WSDL</document>
  </documents>
</wsdlParameters>

Nel file WSDL /parameters riportato di seguito viene illustrato l'utilizzo degli elementi <codeGenerationOptions> e <style> all'interno di <webReferenceOptions>. In questo caso, nel file sono incluse le opzioni per attivare il nuovo stile di associazione dati (databinding) nel codice proxy, specificare un'estensione di importazione dello schema, impostare la modalità non dettagliata per l'output e richiedere la creazione di un proxy client.

<wsdlParameters xmlns="http://microsoft.com/webReference/">
  <nologo>true</nologo>
  <parsableerrors>true</parsableerrors>
  <sharetypes>true</sharetypes>
  <documents>
    <document>http://www.contoso.com/service.asmx?WSDL</document>
  </documents>
  <webReferenceOptions>
    <verbose>false</verbose>
    <codeGenerationOptions>properties newAsync enableDataBinding</codeGenerationOptions>
    <schemaImporterExtension>
      <type>MyNamespace.MyCustomImporterExtension,ExtensionLibrary</type>
    </schemaImporterExtensions>
    <style>client</style>
  </webReferenceOptions>
</wsdlParameters>
Mostra: