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

Bibliothèques et frameworks PHP Discussion :

[Web Service][SOAP] les attributs


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut [Web Service][SOAP] les attributs
    Bonjour,

    je cherche à communiquer en SOAP avec un serveur, j'ai un WSDL pour ca.
    j'utilise la commande qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $options = array('connection_timeout' => 2,
    			'trace' => true);
     
    $clientSOAP = new SoapClient('fichier.wsdl', $options);
    Puis je construit un objet avec la classe stdClass de PHP pour enfin faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $soapStructConsultation	= new SoapVar($object, SOAP_ENC_OBJECT);
    $soapParamsConsultation	= new SoapParam($soapStructConsultation, 'fluxConsulterCompteWeb');
    Si j'affiche la requete SOAP j'obtient (je vous remet pas les entete SOAP) un XML du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <foo>bar</foo>
    <foo2>
        <bar2>bar2</bar2>
        <bar3>autre chose</bar3>
    </foo2>
    Le problème c'est que je voudrais avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <foo>bar</foo>
    <foo2 bar2="bar2">
        <bar3>autre chose</bar3>
    </foo2>
    Comment est ce que je peux faire ? :/

    Merci

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Est-ce que vous avez pu faire ce que vous vouliez? Je suis dans le même cas de figure et je n'arrive pas déclarer un attribut dans un element comme me le demande le wsdl.

    Cordialement,

    Thierry

    Citation Envoyé par Nodashi Voir le message
    Bonjour,

    je cherche à communiquer en SOAP avec un serveur, j'ai un WSDL pour ca.
    j'utilise la commande qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $options = array('connection_timeout' => 2,
    			'trace' => true);
     
    $clientSOAP = new SoapClient('fichier.wsdl', $options);
    Puis je construit un objet avec la classe stdClass de PHP pour enfin faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $soapStructConsultation	= new SoapVar($object, SOAP_ENC_OBJECT);
    $soapParamsConsultation	= new SoapParam($soapStructConsultation, 'fluxConsulterCompteWeb');
    Si j'affiche la requete SOAP j'obtient (je vous remet pas les entete SOAP) un XML du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <foo>bar</foo>
    <foo2>
        <bar2>bar2</bar2>
        <bar3>autre chose</bar3>
    </foo2>
    Le problème c'est que je voudrais avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <foo>bar</foo>
    <foo2 bar2="bar2">
        <bar3>autre chose</bar3>
    </foo2>
    Comment est ce que je peux faire ? :/

    Merci

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Points : 133
    Points
    133
    Par défaut
    Salut,

    Voici comment s'y prendre.

    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
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://127.0.0.1:1004/webservice/newXmlSchema"
        elementFormDefault="qualified" xmlns:tns="http://127.0.0.1:1004/webservice/newXmlSchema">
        <xsd:complexType name="produit">
            <xsd:sequence>
                <xsd:element name="id">
                    <xsd:complexType>
                        <xsd:simpleContent>
                            <xsd:extension base="xsd:int">
                                <xsd:attribute name="ref" type="xsd:string"/>
                                <xsd:attribute name="key" type="xsd:string"/>
                            </xsd:extension>
                        </xsd:simpleContent>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element name="version" type="xsd:string"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:schema>

    Il faut faire un tableau pour envoyer les attributs.
    La clef "_", correspond à la valeur de l'élément.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $client->testXml(
                        array(
                                    'id' => array('_' => 2222, 'ref' => 'reférence n°2', 'key' => 'key n°2'),
                                    'version' => 'v 2.0'
                                )
                         );

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 152
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Est ce que dans la réponse précédente le 2222 peut être un array ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'id' => array('_' => array("toto"=>"tata"), 'ref' => 'reférence n°2', 'key' => 'key n°2'),

Discussions similaires

  1. Les web services - SOAP
    Par djibril dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 20/11/2009, 16h28
  2. [Web Service][SOAP] Problème avec les cookies
    Par bilel.1st dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 12/05/2008, 17h30
  3. [Web Service][SOAP] Webservice Nusoap : page blanche
    Par Harry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/01/2007, 16h37
  4. [Web Service][SOAP] Problemes d'envoi de donnée
    Par _Froggy_ dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/03/2006, 16h08
  5. [Web Service][SOAP] NuSOAP Webservice Sur tous serveurs ?
    Par Harry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/01/2006, 14h59

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