IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

[XML] Probleme WSDL: the part has an invalid value


Sujet :

XML/XSL et SOAP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [XML] Probleme WSDL: the part has an invalid value
    Bonjour tout le monde
    J'essaye de créer un wsdl mais je n'arrive pas à le faire marcher

    J'ai utilisé plusieurs tutoriaux dont le très bon tutorial de Mickael Baron
    http://mbaron.developpez.com/soa/wsdl/

    Mais malgré cela, je n'arrive pas à régler ces problèmes:
    1/
    this part 'GetDataResult has an invalid value ScrappedObject' defined for it's element. Elment declarations must refer to valid values defined in a schema
    Même message pour GetDataXpath et GetDataXpathResponse

    2/
    une autre erreur dans le binding apparait également:
    The operation specified for the 'WesSoapBinding' binding is not defined for port type 'WesSoap'

    Je ne comprends pas cette erreur vu que je les ai bien défini dans portType

    Voici le code du wsdl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions name="Wes" targetNamespace="http://www.fff.com/Interfaces/Wes"
     
     
    	xmlns:tns="http://www.fff.com/Interfaces/Wes"
     
    	xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
    	xmlns:s="http://www.w3.org/2001/XMLSchema"
    	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
     
    	<wsdl:types>	
    		<schema xmlns="http://www.w3.org/2001/XMLSchema">
    			<import namespace="http://www.fff.com/Interfaces/Wes" schemaLocation="scrappingModel.xsd" />
    		</schema>
    	</wsdl:types>
     
     
    	<wsdl:message name="getData" />
    	<wsdl:message name="getDataResponse">
    		<wsdl:part name="getDataResult" element="ScrappedObject"/>
    	</wsdl:message>		
     
    	<wsdl:message name="getDataXpath">
    		<wsdl:part name="getDataXpathResult" type="string"/>
    	</wsdl:message>
     
    	<wsdl:message name="getDataXpathResponse">
    		<wsdl:part name="getDataResult" element="ScrappedObject"/>
    	</wsdl:message>		
     
     
    	<wsdl:portType name="WesSoap">
     
    		<wsdl:operation name="getData">
    			<wsdl:input message="tns:getData" />
    			<wsdl:output message="tns:getDataResponse" />
    		</wsdl:operation>
     
    		<wsdl:operation name="getDataXpath">
    			<wsdl:input message="tns:getDataXpath" />
    			<wsdl:output message="tns:getDataXpathResponse" />
    		</wsdl:operation>
    	</wsdl:portType>
     
     
    	<wsdl:binding name="WesSoapBinding"	type="tns:WesSoap">
    		<wsdlsoap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    		<wsdl:operation name="getData">
    			<wsdlsoap:operation soapAction="" />
    			<wsdl:output name="getDataResponse">
    				<wsdlsoap:body use="literal" />
    			</wsdl:output>
    		</wsdl:operation>
    		<wsdl:operation name="getDataXpath">
    			<wsdlsoap:operation soapAction="" />
    			<wsdl:output name="getDataXpathResponse">
    				<wsdlsoap:body use="literal" />
    			</wsdl:output>
    		</wsdl:operation>
    	</wsdl:binding>
     
     
    	<wsdl:service name="WesSoapService">
    		<wsdl:port name="WesSoapPort"
    			binding="tns:WesSoapBinding">
    			<wsdlsoap:address
    				location="http://localhost:9000/myappli/services/wes-1.0" />
    		</wsdl:port>
    	</wsdl:service>
    </wsdl:definitions>
    et voici le fichier xsd correspondant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <schema 
    	xmlns="http://www.w3.org/2001/XMLSchema"
    	targetNamespace="http://www.fff.com/Interfaces/Wes"
    	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    	xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
    	xmlns:tns="http://www.fff.com/Interfaces/Wes"
    	elementFormDefault="qualified"
    	attributeFormDefault="qualified">
     
    	<!-- common structure for model -->
     
    	<element name="ScrappedObject">
    		<complexType>			
    			<sequence>
    				<element name="data" type="string" />
    			</sequence>			
    		</complexType>
    	</element>
     
    </schema>

    Je vous remercie par avance de votre aide!

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Les attributs élément et type dans wsdl:part devraient être qualifiés, comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	<wsdl:message name="getData" />
    	<wsdl:message name="getDataResponse">
    		<wsdl:part name="getDataResult" element="tns:ScrappedObject"/>
    	</wsdl:message>		
     
    	<wsdl:message name="getDataXpath">
    		<wsdl:part name="getDataXpathResult" type="s:string"/>
    	</wsdl:message>
     
    	<wsdl:message name="getDataXpathResponse">
    		<wsdl:part name="getDataResult" element="tns:ScrappedObject"/>
    	</wsdl:message>

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Déjà je te remercie pour té réponse.
    Ensuite, après avoir fait las changement que tu as proposé, le problème s'est déplacé plus bas, au niveau du binding:
    à ces 2 lignes : ligne 16 et 22

    the opperation specified for the 'wesPortBinding" is not defined for port type 'WesSoap'. All operations specified in this binding must be defined in port type 'WesSoap'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    	<wsdl:portType name="WesSoap">
    		<wsdl:operation name="getData">
    			<wsdl:input message="getData" />
    			<wsdl:output message="getDataResponse" />
    		</wsdl:operation>
     
    		<wsdl:operation name="getDataXpath">
    			<wsdl:input message="getDataXpath" />
    			<wsdl:output message="getDataXpathResponse" />
    		</wsdl:operation>
    	</wsdl:portType>
     
    	<wsdl:binding name="wesPortBinding"	type="WesSoap">
    		<wsdlsoap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    		<wsdl:operation name="getData">
    			<wsdlsoap:operation soapAction=""/>
    			<wsdl:output name="getDataResponse">
    				<wsdlsoap:body namespace="http://www.fff.com/Interfaces/Wes" use="literal" />
    			</wsdl:output>
    		</wsdl:operation>
    		<wsdl:operation name="getDataXpath">
    			<wsdlsoap:operation soapAction="" />
    			<wsdl:input name="getDataXpath">
    				<wsdlsoap:body namespace="http://www.fff.com/Interfaces/Wes" use="literal" />
    			</wsdl:input>
    			<wsdl:output name="getDataXpathResponse">
    				<wsdlsoap:body use="literal" />
    			</wsdl:output>
    		</wsdl:operation>
    	</wsdl:binding>

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Citation Envoyé par Kyozo Voir le message
    the opperation specified for the 'wesPortBinding" is not defined for port type 'WesSoap'. All operations specified in this binding must be defined in port type 'WesSoap'
    J'observe que wsdl:operation pour getDataXpath a quelque peu changé. Mais peu import pour le moment.

    Le type de wsdl:binding doit être qualifié (la ligne #14 desus) pointant au portType en question.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	<wsdl:binding name="wesPortBinding"	type="tns:WesSoap">

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    merci pour ton aide!
    J'ai réussi à le faire marché finalement en remettant tout à plat et en m'aidant de l'onglet "design" du wsdl sous Eclipse

    Par contre, me cvoici face à un autre problèmes, j'importe un element ScrappedObject créé dans ScrappingModel.xsd avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <import namespace="http://www.fff.com/Interfaces/Wes" schemaLocation="ScrappingModel.xsd" />
    je ne sais pas comment spécifié à une message d'utiliser cet élément pour son input/output!
    Il me semble que c'est un problème de namespace mais en fait je ne vois pas vraiment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <wsdl:message name="getDirectoryInfosRequest">
    		<wsdl:part name="getDirectoryInfosRequest" element="tns:ScrappedObject"></wsdl:part>
    	</wsdl:message>
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <wsdl:message name="getDirectoryInfosRequest">
    		<wsdl:part name="getDirectoryInfosRequest" element="xsd:ScrappedObject"></wsdl:part>
    	</wsdl:message>
    xsd, tns ...? je ne sais pas quoi mettre à ce niveau là

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Importer ou expliciter dans wsdl:types importe peu, ça vaut la même. Comment utiliser? hélas, ça ne s'apprend pas par imagination... D'ailleurs, les messages semblent changer tout le temps comme qu'est ce que c'est getDirectoryInfosRequest, apparu soudainement? Mais, peu importe.

    Dit-on l'élément ScrappedObject: si elle paraître dans soapenv:Body, elle peut s'écrire comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <ns:ScrappedObject xmlns:ns="http://www.fff.com/Interfaces/Wes">
        <ns:data>abc</ns:data>
    </ns:ScrappedObject>
    étant enveloppé dans une élément précisant qu'elle soit une requête ou une réponse etc... et de quelle requête ou réponse etc...

    Mais tout ça, ça ne s'imagine pas. Et il est plus souvent que non que vous ne l'écrit pas directement en tant que xml explicitement. En tout cas, il vaut mieux lire, lire et lire d'abord. J"ai mal même à tapper ce message pour ne pas faire intentionner de vous apprendre quoi que ce soit.

Discussions similaires

  1. Erreur "nbproject\build-impl.xml:1045: The module has not been deployed."
    Par isl69 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 27/08/2014, 15h32
  2. Réponses: 1
    Dernier message: 20/04/2010, 16h41
  3. [vb.net][xml] probleme de lecture de fichier
    Par graphicsxp dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/07/2005, 11h51
  4. [xml]probleme de lecture
    Par mavina dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 22/07/2005, 08h34
  5. Transformation xhtml -> xml (probleme xmlns)
    Par yos dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 08/06/2005, 18h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo