Partager via


Outil Web Services Description Language Tool (Wsdl.exe)

L'outil Web Services Description Language Tool (outil du langage de description des services Web) génère du code pour les services Web XML et les clients de services Web XML à partir des fichiers de contrat WSDL, des schémas XSD et des documents de découverte .discomap.

wsdl [options] {URL | path}
Argument Description

URL

URL vers un fichier de contrat WSDL (.wsdl), un fichier de schéma XSD (.xsd) ou un document de découverte (.disco). Remarquez que vous ne pouvez pas spécifier d'URL vers un document de découverte .discomap.

Chemin d'accès

Chemin d'accès à un fichier de contrat WSDL (.wsdl), un fichier de schéma XSD (.xsd) ou un document de découverte (.disco ou .discomap) situé en local.

Option Description

/appsettingurlkey: clé

ou

/urlkey: clé

Spécifie la clé de configuration à utiliser pour pouvoir lire la valeur par défaut de la propriété URL lors de la génération de code. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <appSettingUrlKey> et contient une chaîne.

/appsettingbaseurl: url_de_base

ou

/baseurl: url_de_base

Spécifie l'URL de base à utiliser lors du calcul du fragment d'URL. L'outil calcule le fragment d'URL en convertissant l'URL relative à partir de l'argument baseurl en URL du document WSDL. Vous devez spécifier /appsettingurlkey avec cette option. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <appSettingBaseUrl> et contient une chaîne.

/d[omain]:domaine

Spécifie le nom de domaine à utiliser lors d'une connexion à un serveur qui requiert une authentification. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <domain> et contient une chaîne.

/l[anguage]:langage

Spécifie le langage à utiliser pour la classe du proxy généré. Vous pouvez spécifier CS (C#, valeur par défaut), VB (Visual Basic), JS (JScript) ou VJS (Visual J#) comme argument de langage. Vous pouvez également spécifier le nom qualifié complet d'une classe qui implémente la classe System.CodeDom.Compiler.CodeDomProvider. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <language> et contient une chaîne.

/n[amespace]:espace_de_noms

Spécifie l'espace de noms du proxy ou du modèle généré. L'espace de noms par défaut correspond à l'espace de noms global. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <namespace> et contient une chaîne. Cet élément doit se trouver dans le fichier paramètres.

/nologo

Supprime l'affichage de la bannière de démarrage Microsoft. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <nologo> et contient soit true soit false.

/order

Générez des identificateurs d'ordre explicites sur les membres de particule.

/o[ut]:nom_fichier ou nom_répertoire

Spécifie le fichier (ou le répertoire) dans lequel le code du proxy généré doit être enregistré. Vous pouvez également spécifier un répertoire dans lequel créer ce fichier. L'outil extrait le nom de fichier par défaut du nom du service Web XML. Il enregistre les groupes de données générés dans différents fichiers. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <out> et contient une chaîne.

/parameters

Lit les options de ligne de commande à partir du fichier xml spécifié. Utilisez cette option pour passer l'outil Wsdl.exe sur un grand nombre d'options à la fois. La forme abrégée est '/par:'. Les éléments d'option sont contenus à l'intérieur d'un élément <wsdlParameters xmlns="https://microsoft.com/webReference/">. Pour plus d'informations, consultez la section Notes.

/parsableerrors

Affiche des erreurs dans un format semblable au format de rapport d'erreur utilisé par les compilateurs de langage. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <parsableerrors> et est soit true soit false.

/p[assword]:mot_de_passe

Spécifie le mot de passe à utiliser lors d'une connexion à un serveur qui requiert une authentification. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <password> et contient une chaîne.

/protocol: protocole

Spécifie le protocole à implémenter. Vous pouvez indiquer SOAP (valeur par défaut), HttpGet, HttpPost ou un protocole personnalisé spécifié dans le fichier de configuration. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <protocol> et contient une chaîne.

/proxy: URL

Spécifie l'URL du serveur proxy à utiliser pour les demandes HTTP. La valeur par défaut correspond au paramètre du proxy système. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <proxy> et contient une chaîne.

/proxydomain: domaine

ou

/pd: domaine

Spécifie le domaine à utiliser lors d'une connexion à un serveur proxy qui requiert une authentification. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <proxydomain> et contient une chaîne.

/proxypassword: mot_de_passe

ou

/pp: mot_de_passe

Spécifie le mot de passe à utiliser lors d'une connexion à un serveur proxy qui requiert une authentification. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <proxypassword> et contient une chaîne.

/proxyusername: nom_utilisateur

ou

/pu: nom_utilisateur

Spécifie le nom d'utilisateur à utiliser lors d'une connexion à un serveur proxy qui requiert une authentification. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <proxyusername> et contient une chaîne.

/server

Génère une classe abstraite pour un service Web XML en fonction des contrats. La valeur par défaut consiste à générer des classes de proxy clientes. Lors de l'utilisation de l'option /parameters, cette valeur est un élément <style> qui contient "server".

/serverInterface

Génère des interfaces pour l'implémentation côté serveur d'un Service Web ASP.NET. Une interface est générée pour chaque liaison dans le ou les documents WSDL. Le WSDL seul implémente le contrat WSDL (les classes qui implémentent l'interface ne doivent pas inclure les attributs suivants sur les méthodes de classe : attributs Web Service ou attributs Serialization qui modifient le contrat WSDL). La forme abrégée est '/si'. Lors de l'utilisation de l'option <style>, cette valeur est un élément qui contient "servicerInterface".

/sharetypes

Active la fonctionnalité de partage du type. Cette fonctionnalité crée un fichier de code avec une seule définition de type pour les types identiques partagés entre différents services (l'espace de noms, le nom et la signature de fil doivent être identiques). Référencez les services avec des URL "http://" comme paramètres de ligne de commande ou créez un document discomap pour les fichiers locaux. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <sharetypes> et est soit true soit false.

/u[sername]:username

Spécifie le nom d'utilisateur à utiliser lors d'une connexion à un serveur qui requiert une authentification. Lors de l'utilisation de l'option /parameters, cette valeur est l'élément <username> et contient une chaîne.

/?

Affiche la syntaxe et les options de commande de l'outil.

Notes

Un fichier .wsdl est un document XML écrit dans une syntaxe XML appelée langage de description de services Web (WSDL, Web Services Description Language). Ce fichier définit la façon dont un service Web XML doit se comporter et indiquer aux clients son mode d'interaction.

Vous pouvez obtenir des documents de découverte pour un service Web XML à l'aide de l'outil Web Services Discovery Tool (Disco.exe). Les fichiers .discomap, .disco, .wsdl et .xsd produits par cet outil peuvent servir de fichiers d'entrée à Wsdl.exe.

Lorsque vous utilisez Wsdl.exe pour créer une classe proxy, un seul fichier source est créé dans le langage de programmation que vous spécifiez. Dans le processus de génération du code source de la classe proxy, l'outil détermine le meilleur type à utiliser pour les objets spécifiés dans la description de service. Dans certains cas, l'outil utilise une approche « plus petit dénominateur commun » pour effectuer un cast des objets en type. Par conséquent, le type généré dans la classe proxy peut ne pas être ce que le développeur souhaite ou attend. Par exemple, lorsque Wsdl.exe rencontre un type ArrayList dans une description de service, il crée le tableau d'objets dans la classe proxy générée. Pour garantir des casts de type d'objet corrects, ouvrez le fichier contenant la classe proxy générée et remplacez les types d'objets incorrects par le type d'objet attendu.

  • L'option /parameters spécifie un fichier qui contient des éléments qui correspondent à la plupart des options d'invite de commandes. Certaines options d'invite de commandes sont uniquement disponibles dans les formats de fichier /parameters.

Le format de fichier XML accepté par l'option /parameters est une série d'éléments à l'intérieur d'un élément <wsdlParameters xmlns="https://microsoft.com/webReference/"> externe. Si les valeurs d'invite de commandes sont spécifiées et si un /parameters qui contient des options ou des valeurs différentes est utilisé, les valeurs spécifiées à l'invite de commandes sont utilisées. L'élément <wsdlParameters xmlns="https://microsoft.com/webReference/"> doit contenir un élément <nologo>, un élément <parsableerrors> et un élément <sharetypes>.

Plusieurs options sont passées comme éléments enfants de l'élément <webReferenceOptions> qui doit contenir un élément <verbose>. D'autres éléments enfants de <webReferenceOptions> sont :

  • <style>. Contient "client", "server" ou "serverInterface".

  • <schemaImporterExtension>. Contient tout nombre d'éléments <type>.

  • <codeGenerationOptions>. Peut utiliser un ensemble délimité par l'espace des chaînes suivantes.

  • "properties"

  • "newAsync"

  • "oldAsync"

  • "order"

  • "enableDataBinding"

Consultez la section Exemples pour quelques démonstrations de l'option /parameters.

Exemples

La commande suivante crée une classe du proxy client en langage C# pour le service Web XML.

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

La commande suivante crée une classe de proxy cliente en langage C# pour un service Web XML situé à l'URL spécifiée. L'outil enregistre la classe de proxy cliente dans le fichier myProxyClass.cs.

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

La commande suivante crée une classe de proxy cliente en langage Microsoft Visual Basic pour un service Web XML situé à l'URL spécifiée. L'outil enregistre la classe de proxy cliente dans le fichier myProxyClass.vb.

wsdl /language:VB /out:myProxyClass.vb http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
  • L'exemple de code suivant affiche un fichier WSDL /parameters de base avec uniquement les éléments requis écrits pouvant être utilisés en combinaison avec un argument URL à l'invite de commandes.

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

Les documents WSDL sont ajoutés dans le fichier WSDL /parameters à l'aide de l'élément <documents>, comme le montre l'exemple de code suivant. Tout nombre d'éléments <document> peut être utilisé à l'intérieur de l'élément <documents>.

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

Le fichier WSDL /parameters suivant illustre l'utilisation des éléments <codeGenerationOptions> et <style> à l'intérieur de l'élément <webReferenceOptions>. Dans ce cas, le fichier active le nouveau style de liaison de données dans le code proxy et spécifie une extension de l'importateur de schéma ; cette sortie ne doit pas être détaillée et ce Wsdl.exe doit créer un proxy client.

<wsdlParameters xmlns="https://microsoft.com/webReference/">
  <nologo>true</nologo>
  <parsableerrors>true</parsableerrors>
  <sharetypes>true</sharetypes>
  <documents>
    <document>https://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>

Voir aussi

Référence

Outils du .NET Framework
Outil Web Services Discovery Tool (Disco.exe)
Invite de commandes du Kit de développement SDK

Concepts

Création d'un proxy de service Web XML
Description de service Web XML
Vue d'ensemble des services Web XML