2010-11-27 5 views
4

Pourquoi WSDL introduit wsdl: message? Et les parties de message?Pourquoi WSDL introduit wsdl: message?

Quels avantages peuvent apporter l'utilisation directe du XSD dans les paramètres d'exploitation (entrée, sortie, défaut)? Comment ils (messages wsdl avec des parties de message wsdl) peuvent être plus abstraits que XSD?

Pourquoi est-il pas organisé par exemple de cette façon:

<operation name="GetEndorsingBoarder"> 
    <input type="xsd:string"/> 
    <output type="xsd:string, xsd:int, xsd:boolean"/> 
    <fault "type="xsd:string""/> 
</operation> 
+0

Cher Voodoo, votre réponse est un bon exemple de réponses que je n'accepterai jamais comme réponses, d'accord, peut-être répondez-vous mais pas sur ma question. –

+0

Si vous obtenez beaucoup de réponses que vous considérez hors sujet alors je suggère que vous devriez être discret dans vos questions et regarder les questions que vous posez et assurez-vous qu'elles sont compréhensibles (peut-être utiliser des traducteurs anglais si nécessaire). Par exemple cette question manque presque de membres ... et j'ai essayé de faire de mon mieux, ce qui semble t'avoir contrarié. Alors ignorez-le ou dépréciez-le! – VoodooChild

Répondre

1

Je l'ai:

Les messages ne spécifient que les paramètres de fonctionnement.

Les messages et leurs parties sont référencés dans les liaisons. Il devrait être possible de lier les différentes parties différemment:

<message name="m1"> 
    <part name="body" element="tns:GetCompanyInfo"/> 
</message> 

<message name="m2"> 
    <part name="body" element="tns:GetCompanyInfoResult"/> 
    <part name="docs" type="xsd:string"/> 
    <part name="logo" type="tns:ArrayOfBinary"/> 
</message> 

<portType name="pt1"> 
    <operation name="GetCompanyInfo"> 
     <input message="m1"/> 
     <output message="m2"/> 
    </operation> 
</portType> 

<binding name="b1" type="tns:pt1"> 
     <operation name="GetCompanyInfo"> 
      <soap:operation soapAction="http://example.com/GetCompanyInfo"/> 
      <input> 
       <soap:body use="literal"/> 
      </input> 
      <output> 
       <mime:multipartRelated> 
        <mime:part> 
         <soap:body parts="body" use="literal"/> 
        </mime:part> 
        <mime:part> 
         <mime:content part="docs" type="text/html"/> 
        </mime:part> 
        <mime:part> 
         <mime:content part="logo" type="image/gif"/> 
         <mime:content part="logo" type="image/jpeg"/> 
        </mime:part> 
       </mime:multipartRelated> 
      </output> 
     </operation> 
    </binding> 

J'ai raté cela depuis les liaisons « non SOAP « littéral » » sont si rares.

0

A XSD décrit les DATA aspects, par exemple les données aspects appel webservice alors que le WSDL décrit le but des services Web (appels de méthode). Vous ne pouvez généralement pas comprendre les appels de méthode à partir de vos données uniquement.

Découvrez Cheeso et Marc réponses sur Generating a WSDL from an XSD file

EDIT: source

Le message décrit les données échangées entre le fournisseur de services Web et des consommateurs et chaque service Web a deux messages: 1) entrée : paramètres du service Web 2) sortie: renvoie les données du service Web

Chaque message a zéro ou plusieurs paramètres part (un pour chaque paramètre) ter de la fonction du service Web) Chaque paramètre part est associé à un type concret défini dans l'élément conteneur types.

<message name="SayHelloRequest"> 
     <part name="firstName" type="xsd:string"/> 
    </message> 
    <message name="SayHelloResponse"> 
     <part name="greeting" type="xsd:string"/> 
    </message> 

Ici, deux éléments de message sont définis. Le premier représente un message de demande SayHelloRequest et le second représente un message de réponse SayHelloResponse.

Chacun de ces messages contient un seul élément de pièce. Pour la requête, la pièce spécifie les paramètres de la fonction; dans ce cas, nous spécifions un seul paramètre firstName. Pour la réponse, la partie spécifie les valeurs de retour de la fonction; dans ce cas, nous spécifions une seule valeur de retour de salutation.

+0

Nice. Mais ma question est concrète: pourquoi wsdl indtroduce/need wsdl: messages? –

+0

Je connais la syntaxe. –

+0

pourquoi ce n'est pas ainsi