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 :

[SOAP] Comment faire passer un schéma XML ?


Sujet :

XML/XSL et SOAP

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut [SOAP] Comment faire passer un schéma XML ?
    Bonjour à vous.
    Désolé pour le titre je n'étais pas très inspiré...

    Voici mon problème, j'ai en ma possession un fichier WSDL, que je dois savoir utiliser. Il y a un truc qui me chagrine c'est ceci :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <s:element name="AllowAccessResponse">
            <s:complexType>
              <s:sequence>
                <s:element minOccurs="0" maxOccurs="1" name="AllowAccessResult">
                  <s:complexType>
                    <s:sequence>
                      <s:element ref="s:schema" />
                      <s:any />
                    </s:sequence>
                  </s:complexType>
                </s:element>
              </s:sequence>
            </s:complexType>
    </s:element>

    Comment récupérer un schéma XML en PHP ? Et le traiter ?
    Si j'ai bien compris de quoi il s'agissait...

    Toutes les recherches que j'ai faite n'ont mené à rien, à part le fait que c'est souvent utilisé sous .NET. Ce qui n'est pas du tout mon cas.

    Merci pour votre aide !

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    En fait je veux remodifier ma question...
    Pourquoi faire comme ceci, le code dans le précédent message, alors qu'on peux faire comme cela par exemple :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <s:element name="AllowAccessResponse">
            <s:complexType>
              <s:sequence>
                <s:element minOccurs="1" maxOccurs="1" name="id_customer" type="s:long" />
                <s:element minOccurs="1" maxOccurs="1" name="id_access" type="s:long" />
              </s:sequence>
            </s:complexType>
          </s:element>

    Puisque dans tout les cas, c'est du XML qui est passé dans l'enveloppe SOAP.

    En quoi les méthodes sont différentes ? Pour sécuriser les données ?
    Je suis dans le flou

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Bon alors j'ai tenté quelque chose sans grande conviction...
    Voici mon code :

    Côté Client :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $client = new SoapClient('Server.wsdl', array ('trace' => 1,'exceptions' => 1));
     
    $params = array ('id_customer' => $id_customer,
    			'id_access' => $id_acces);
     
    $result = $client -> __soapCall('AllowAccess', array ($params));
     
    print "<pre>\n";
    print "Request: \n".htmlspecialchars($client->__getLastRequest()) ."\n";
    print "Response: \n".htmlspecialchars($client->__getLastResponse())."\n";
    print "</pre>";

    Côté serveur, fonction AllowAccess :
    Code php : 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
    function AllowAccess_extern($params)
    {
    	$id_customer = $params->id_customer;
    	$id_access   = $params->id_access;
     
    	$xml_message = '
    		<?xml version="1.0" ?>
    		<access>
    			<id_customer>'.$id_customer.'</id_customer>
    			<id_access>'.$id_access.'</id_access>
    		</access> ';
     
    	$xml_root = simplexml_load_string ($xml_message);
     
    	return array ('AllowAccessResult' => $xml_root);
     
    }
    Pour l'instant je ne traite pas ce qui revient du serveur, puisqu'il n'y a rien dans le message SOAP :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <SOAP-ENV:Body>
      <ns1:AllowAccessResponse>
        <ns1:AllowAccessResult/>
       </ns1:AllowAccessResponse>
    </SOAP-ENV:Body>

    J'ai vraiment besoin d'aide s'il vous plait, ou au moins des pistes, des directions à prendre pour me documenter...

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Bon, toujours pas d'idée sur ceci ?
    fichier wsdl :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <s:element name="AllowAccessResponse">
            <s:complexType>
              <s:sequence>
                <s:element minOccurs="0" maxOccurs="1" name="AllowAccessResult">
                  <s:complexType>
                    <s:sequence>
                      <s:element ref="s:schema" />
                      <s:any />
                    </s:sequence>
                  </s:complexType>
                </s:element>
              </s:sequence>
            </s:complexType>
    </s:element>

    Qu'est-ce qui est passé en paramètre ? de quel type ?

    Marre de faire des monologues

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Apparemment c'est une sorte de typage dynamique. Et le wsdl est généré par .NET.
    Donc comme je ne peux pas toucher au wsdl du serveur, il faut que je change le wsdl du côté client (moi), pour m'accorder avec. J'ai effectué plusieurs tests, mais à chaque fois, le serveur me renvoie rien du tout.

    Si quelqu'un arrive à m'expliquer ce qu'il raconte ici :
    http://xsd.stylusstudio.com/2002Jul/post07019.htm
    Ca serait bien chouette
    C'est pas l'anglais qui m'embête, mais vraiment la signification, son explication.


    Choosing a Data Representation
    A good number of interoperability problems happen due to developer choices, not SOAP toolkits. Here is an example of a developer choice that results in a WSDL-type definition that is hard to use:

    <xsd:complexType>
    <xsd:sequence>
    <xsd:element ref="xsd:schema" />
    <xsd:any />
    </xsd:sequence>
    </xsd:complexType>

    When a client sees this definition, what should they do? It appears that the WSDL has stated something along the lines of "I will send you an XSD and an XML document that corresponds to that XSD." (That wasn't explicitly stated, but that's what this snippet is trying to express.) How do I code against this? Is this code simple or complex? What do I do?
    Source : http://www2.sys-con.com/ITSG/virtual...ely/index.html

    Un lien intéressant aussi :
    http://www-128.ibm.com/developerwork...sdcaution.html


    Même avec tout çà, je n'arrive pas à m'accorder avec le wsdl fourni.

    Personne n'a vraiment d'idées ? Même si ca peut vous paraitre, con, facile, je débute, je suis ouvert à toutes critiques, tous conseils.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    J'essaie de faire changer le WSDL par la personne qui l'a faite. Je l'ai déjà modifié à ma sauce, et définissant des types simples et complexes. Enfin normal quoi... le but d'un WSDL.

    Je retiens juste que ce bout de code de --bip-- est généré automatiquement par .NET, et que ca ne favorise pas du tout l'interopérabilité. D'après ce que j'ai compris en tout cas.

    Merci votre étonnante participation \o/

Discussions similaires

  1. [Ant] comment faire un Ant (build.xml)
    Par mbouguerra dans le forum ANT
    Réponses: 13
    Dernier message: 18/01/2006, 22h10
  2. [Debutant] comment faire passer des donnée ???
    Par cyrill.gremaud dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 17/01/2006, 22h28
  3. Comment faire passer un menu par dessus une autre frame
    Par barthelv dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/11/2005, 11h03
  4. [XML & WebService] Faire "passer" un fic xml
    Par P4dre dans le forum Services Web
    Réponses: 7
    Dernier message: 03/08/2005, 14h47
  5. Réponses: 5
    Dernier message: 08/03/2004, 10h28

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