2010-12-14 85 views
3

je dois tester la procédure d'authentification en utilisant le fichier WADL ci-dessous:WADL: type complexe de xsd externe

<application xmlns="http://research.sun.com/wadl/2006/10" 
     xmlns:sis="http://sis.thecompany.com/" > 
<grammars> 
    <include href="http://localhost/wadl/sis.xsd"/> 
</grammars> 
<resources base="http://192.168.10.139"> 
    <resource path="/user/sign_in"> 
     <method name="POST" id="Authentication"> 
      <request> 
       <param name="user" type="sis:user" required="true"/> 
       <representation mediaType="application/xml" element="sis:user"/> 
      </request> 
      <response status="201"> 
       <representation mediaType="application/xml"/> 
       <fault status="401" /> 
      </response> 
     </method> 
    </resource> 
</resources> 

Après avoir importé ce fichier dans le soapUI Pro je suis pas d'action en cliquant sur demande. La raison en est que soapUI Pro ne voit pas l'élément "sis: user" car il est présent dans xsdand et pense qu'il ne s'agit que d'un seul élément avec un type indéfini. Pouvez-vous nous dire ce qui ne va pas avec le fichier wadl?

est en dessous du schéma sis.xsd utilisé:

<?xml version="1.0" encoding="utf-8"?> <xs:schema id="SIS" targetNamespace="http://sis.thecompany.com/" elementFormDefault="qualified" xmlns="http://sis.thecompany.com/" xmlns:mstns="http://sis.thecompany.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0"> <xs:element name="application"> <xs:complexType> <xs:all> <xs:element name="user" minOccurs="0"> <xs:xs:complexType> <xs:all minOccurs="1"> <xs:element name="login" type="xs:string" /> <xs:element name="password" type="xs:string" /> </xs:all> </xs:complexType> </xs:element> </xs:all> </xs:complexType> </xs:element> </xs:schema>

Et la question suivante. Si soapUI Pro corrigera Parse utilisateur élément complexType de xsd - données POST de soapUI Pro sera le prochain:

<sis:user><sis:login>admin</sis:login><sis:password>admin!</sis:password></sis:user> 

Mais ce sera rejeté par le serveur en raison de préfixe supplémentaire « sis: ». Serveur prend en charge uniquement le format suivant

<user><login>admin</login><password>admin!</password></user> 

Veuillez nous consulter.

Répondre

0

Le meilleur conseil que je peux donner est d'arrêter d'utiliser WADL. Trouvez une bibliothèque HTTP et un analyseur XML décents dans la langue que vous utilisez et créez votre fichier XML et postez-le. Cela ne devrait prendre que quelques lignes de code pour y parvenir. En utilisant WADL et xsd comme vous le faites, tout ce que vous réalisez est de créer un couplage étroit entre le client et le serveur. Cela annulera la majorité des avantages qu'un système REST est supposé apporter. Vous pourriez aussi bien coller avec SOAP, au moins l'outillage est mature.