Expert d'importation WSDL

De RAD Studio
Aller à : navigation, rechercher

Remonter à Menu Composant

Composant > Importer WSDL
Fichier > Nouveau > Autre > Projets Delphi [ou Projets C++Builder] > Services Web > Importateur WSDL


Remarque : L'importateur WSDL invoqué depuis Fichier > Nouveau > Autre nécessite la création d'une application avant l'activation de la commande, mais l'importateur WSDL invoqué depuis le menu Composant vous permet d'exécuter l'expert avant de créer une application.

Utilisez cet expert pour importer un document WSDL ou un schéma XML décrivant un service Web. Lorsque vous avez importé le document WSDL ou le schéma XML, l'expert génère toutes les définitions d'interfaces et de classes nécessaires pour appeler les services Web en utilisant un objet interfacé distant (THTTPRIO). Vous pouvez aussi demander à l'expert de générer le code squelette que vous compléterez afin de créer une application service Web (par exemple, si vous voulez implémenter un service Web qui est déjà défini dans un document WSDL).


Page Langage

Si aucun projet n'est ouvert quand vous invoquez l'expert, une page initiale Langage est affichée. Sur cette page, spécifiez si les liaisons générées sont pour :

  • Delphi
  • C/C++


Page Emplacement WSDL

Vous permet de spécifier l'URL du document WSDL à importer (ou de sélectionner une URL déjà stockée) et d'indiquer les informations d'identification (nom d'utilisateur, mot de passe et proxy) utilisées pour accéder au document.

Elément Description

Emplacement du fichier WSDL ou URL

Entrez un nom de fichier WSDL ou l'URL où est publié le document. Cliquez sur le bouton Points de suspension situé à côté de la boîte d'édition pour naviguer jusqu'à l'emplacement d'un fichier. Après la saisie d'un nom de fichier, vous pouvez cliquer sur le bouton Suivant pour accéder à la page Version SOAP.

Nom d'utilisateur

Spécifiez le nom d’utilisateur à utiliser si le document WSDL se trouve sur un serveur sécurisé qui nécessite une authentification.

Mot de passe

Spécifiez le mot de passe à utiliser avec le nom d'utilisateur si le document WSDL se trouve sur un serveur sécurisé qui nécessite une authentification.

Proxy

Spécifiez les noms d'hôtes de tous les serveurs proxy devant transmettre les requêtes à l'URL spécifiée sur la page Source de la boîte de dialogue d'importation des services Web.

Page Version SOAP

Vous permet de spécifier la version SOAP (1.1 ou 1.2) utilisée par le document WSDL ou permet au produit de choisir la dernière version disponible. Notez qu'un service peut supporter 1.1 et 1.2. Pour éviter une version non concordante (pouvant provoquer la génération d'un code source incorrect), vous devez sélectionner typiquement l'option Contrôle de version SOAP automatique.

Sélectionnez l'une des options suivantes :

Elément Description

Contrôle de version SOAP automatique

Vous permet de sélectionner les services SOAP décrits dans le WSDL que vous voulez importer selon la version SOAP supportée. Quand les deux versions 1.1 et 1.2 sont autorisées et disponibles, le produit préfère SOAP 1.2. Voir l'exemple qui suit ce tableau.

Traiter seulement les extensions de liaison WSDL pour le protocole SOAP 1.1

Le processus communique avec le service en utilisant seulement le protocole SOAP 1.1.

Traiter seulement les extensions de liaison WSDL pour le protocole SOAP 1.2

Le processus communique avec le service en utilisant seulement le protocole SOAP 1.2.

Par exemple, supposons que le WSDL décrit la version SOAP supportée par chacun des services définis :

  • CreditCardIssueService SOAP 1.1
  • CreditCardVerifyService SOAP 1.1, 1.2
  • CreditCardRevokeService SOAP 1.2

Si vous sélectionnez Contrôle de version SOAP automatique sur la page Version SOAP, les services suivants sont importés :

  • CreditCardIssueService SOAP 1.1
  • CreditCardVerifyService SOAP 1.2
  • CreditCardRevokeService SOAP 1.2

Ainsi, la version SOAP 1.1 du CreditCardVerifyService n'est pas importée.

Si vous sélectionnez Traiter seulement les extensions de liaison WSDL pour le protocole SOAP 1.1, les services suivants sont alors importés :

  • CreditCardIssueService SOAP 1.1
  • CreditCardVerifyService SOAP 1.1

Ainsi, le CreditCardRevokeService est omis car il supporte seulement SOAP 1.2.

Si vous sélectionnez Traiter seulement les extensions de liaison WSDL pour le protocole SOAP 1.2, les services suivants sont importés :

  • CreditCardVerifyService SOAP 1.2
  • CreditCardRevokeService SOAP 1.2

Ainsi, le CreditCardIssueService est omis car il supporte seulement SOAP 1.1.


Cliquez sur Suivant pour accéder à la page Options d'importation WSDL.

Page Options d'importation WSDL

Utilisez cette page de l'expert pour configurer la façon dont l'expert génère le code pour représenter les définitions d'un document WSDL. Sélectionnez l'une des options décrites ci-dessous. Il est conseillé d'utiliser les options par défaut car elles fournissent la méthode la plus sécurisée pour importer des documents WSDL.


Elément Description

Générer des informations détaillées sur les types et les interfaces

Si cette option est activée, l'importateur WSDL génère des informations en ce qui concerne les espaces de nommage de type, les styles de service, les noms de liaison et divers autres données WSDL exposées.

Un paramètre out est une valeur de retour

Lorsque cette option est cochée, l'importateur mappe les opérations à message de sortie unique en fonctions où le message de sortie est la valeur de retour. Si l'option n'est pas cochée, le message de sortie est mappé en paramètre de sortie.

Générer l'implémentation serveur à la place de l'implémentation client

Lorsque cette option est cochée, l'importateur génère les classes d'implémentation pour les interfaces importées. Utilisez cette option lorsque vous écrivez un serveur implémentant un service Web déjà défini dans un document WSDL.

Unwind des paramètres littéraux

Dans l'encodage littéral d'un document, le service Web ne décrit pas les opérations. Il décrit plutôt deux enregistrements, un présentant l'entrée attendue et l'autre la sortie. Lorsque l'option Unwind des paramètres littéraux est cochée, l'importateur convertit ces deux enregistrements en appels de méthodes.

Emettre les types littéraux

Dans l'encodage littéral d'un document, le service Web ne décrit pas les opérations. Il décrit plutôt deux enregistrements, l'un présentant l'entrée attendue et l'autre la sortie. Lorsque l'option Emettre les types littéraux est cochée, l'importateur génère des définitions de types pour ces deux enregistrements, même s'il les convertit en appels de méthodes (c'est-à-dire même si l'option Unwind des paramètres littéraux est cochée).

Mapper String en WideString

Lorsque cette option est cochée, l'importateur mappe tous les types string en valeurs WideString. Quand cette option est désactivée, l'importateur utilise à la place le type string. Les valeurs WideString peuvent être nécessaires à la gestion des valeurs utilisant des caractères étendus. Si les valeurs des chaînes ne comportent pas de caractères étendus, il est plus efficace d'utiliser le type string.

Générer les destructeurs pour les types distants

Lorsque cette option est cochée, l'importateur génère des destructeurs pour les classes représentant des types. Ces destructeurs libèrent tous les membres imbriqués dont les types sont des classes ou des tableaux de classes. La génération des destructeurs simplifie votre travail de libération des instances des classes représentant des types, car vous n'avez plus besoin de libérer explicitement les membres de classe qui utilisent aussi des classes pour représenter le type distant.

Générer des commentaires d'avertissement

Lorsque cette option est cochée, l'importateur ajoute des messages d'avertissement aux commentaires qu'il place au début des fichiers générés. Ces avertissements décrivent les problèmes s'étant posés alors que l'option Ignorer les erreurs de schéma est cochée, comme la présence de définitions de types incorrectes dans le document WSDL, ou les difficultés survenues lors de l'opération unwind sur des paramètres littéraux si l'option Unwind des paramètres littéraux est cochée, etc.

Mapper les collections pures en types de classes wrapper

Cochez cette option pour permettre à l'importateur WSDL de mapper les types de tableaux importés en classes wrapper. Cette option est principalement fournie pour C++Builder, dans lequel les types tableaux ne peuvent pas être directement mappés en types tableaux WSDL, nécessitant ainsi une classe de collection wrapper.

Ne pas émettre de types inutilisés

Si cette option est cochée, l'importateur WSDL ne génère pas le code pour les types déclarés dans le document WSDL, mais pas utilisés dans les services exposés. Sachez que les classes peuvent ne pas suivre cette règle, car un service peut renvoyer une instance d'une classe dérivée, où la classe de base est attendue. Dans ce cas, le code de la classe de base et de la classe dérivée est généré.

Valider les membres d'énumération

Cochez cette option pour garantir que l'importateur WSDL utilise une liste de symboles globaux lors de la génération des membres d'énumération. Cette option empêche les conflits de noms entre les membres d'énumération des types énumérés déclarés dans le document WSDL. Depuis Delphi 2009, nous recommandons de ne jamais décocher cette option.

Importer les types marqués en erreur

Cochez cette option afin que l'importateur WSDL traite les types marqués en erreur.

Importer les types d'en-tête

Cochez cette option pour permettre à l'importateur WSDL de traiter les types marqués comme en-têtes.

Générer les GUIDs d'interface avec COM API

Cochez cette option pour permettre à l'importateur WSDL d'assigner des GUIDs uniques à chaque fois qu'un service est importé. Si cette option est désactivée, le GUID généré à chaque service reste le même à chaque fois que l'importateur WSDL génère du code pour ce service. Dans la plupart des cas, nous recommandons de désactiver cette option.

Traiter les schémas inclus et importés

Cochez cette option afin que l'importateur WSDL traite les schémas inclus et importés.

Générer les alias de classe comme des types de classe

Cochez cette option afin que l'importateur WSDL génère des types de classe au lieu d'alias faibles. Cette option garantit que les classes d'alias générées ont des informations RTTI (Run-Time Type Information, Informations de type à l'exécution) distinctes du type de base.

Autoriser les paramètres out

Cette option contrôle si l'importateur WSDL génère des méthodes qui utilisent des paramètres out lors du renvoi de parties multiples d'un message SOAP. Si cette option est désactivée, les paramètres out ne sont pas générés ; l'importateur WSDL génère des classes wrapper pour les messages SOAP multi-parties.

Utiliser les accesseurs en lecture et en écriture des propriétés

Par défaut, l'importateur WSDL génère des propriétés qui sont mappées directement en champs dans les classes générées. En activant cette option, vous pouvez forcer l'importateur WSDL à générer à la place des méthodes d'accès en lecture (getter) et en écriture (setter) des propriétés.

Traiter les éléments facultatifs / initialisables à nil

Cochez cette option afin que l'importateur WSDL génère des informations applicables aux propriétés facultatives et initialisables à nil. Ces informations sont utilisées par le runtime SOAP afin que certaines propriétés puissent prendre la valeur nil.

Utiliser TXSString pour les types simples initialisables à nil

Le standard WSDL permet aux types simples d'être à nil dans Delphi, ou à NULL dans C++, tandis que Delphi et C++ ne le permettent pas. Cochez cette option afin que l'importateur WSDL surmonte cette limitation en utilisant des instances de classes wrapper.

Générer des énumérations de portée

Quand cette option est cochée, des énumérations de portée seront générées. Cochez cette option si le document WSDL contient différentes énumérations qui définissent des valeurs avec le même nom.

Cliquez sur Terminer dans la page Options d'importation WSDL pour traiter la génération du code source.

Messages d'erreur

Les messages d'erreur suivants peuvent être générés par l'expert d'importation WSDL.

  • Impossible de charger l'emplacement/fichier WSDL : <URL non valide>. Erreur [Document vide].
  • Ce message d'erreur indique typiquement une URL non valide. C'est-à-dire une URL qui ne renvoie pas de contenu.
  • Impossible de charger l'emplacement/fichier WSDL : <url>. Erreur [Les espaces ne sont pas autorisés à cet emplacement]
  • Cette erreur indique une URL qui a renvoyé un contenu texte ou HTML (c'est-à-dire une URL qui n'a pas renvoyé un contenu XML)
  • Impossible de charger l'emplacement/fichier WSDL : <url>. Erreur [La balise de fin 'ul' ne correspond pas à la balise de début 'p']
  • Cette erreur indique aussi une URL qui a renvoyé un contenu HTML. Ce message est fréquent si vous avez oublié la chaîne de requête '?wsdl' généralement utilisée par certains services Web. Par exemple, si vous utilisez http://<domaine>.com/service.asmx au lieu de http://<domaine>.com/service.asmx?wsdl pour un service Web .NET.
  • Cette erreur indique que l'URL a renvoyé un contenu XML qui ne contient pas l'élément <définition> racine attendu pour un fichier WSDL. Ceci peut se produire si vous importez le schéma utilisé par un WSDL au lieu du document WSDL lui-même, par exemple.

Dépannage

Un moyen simple de résoudre votre URL consiste à visualiser l'URL WSDL dans votre navigateur. Si vous voyez une page HTML, il s'agit d'une URL incorrecte. Vous devez voir du XML dans un document WSDL.

Voir aussi