Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2783 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP-SOAP] Problème de choice

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP-SOAP] Problème de choice

n°2013124
coincoinca​nard
Posté le 30-07-2010 à 10:37:09  profilanswer
 

Bonjour à tous.
 
Je travaille actuellement sur un client SOAP pour un webservice exterieur. Tous mon code est executé sur un serveur Debian Lenny à jour (donc PHP 5.2.6.dfsg.1-1+lenny8).
 
J'ai entre les main un combiné wsdl / xsd fournit par la source. Celui-ci me pose deux problèmes :
 
- Impossible d'utiliser des éléments avec "ref"
 
Lorsque je déclare mon client SOAP en incluant un wsdl contenant des élément avec des référence, php envoie une erreur.
 
Par exemple :
 

Code :
  1. <xsd:element ref="complement_numero" minOccurs="0" />


provoque une erreur :
 


SOAP-ERROR: Parsing Schema: unresolved element 'ref' attribut


Est-ce une limitation de l'implémentation de SOAP dans PHP ?
 
- Incapacité à utiliser des éléments "choice"
 
Certains types complexes de mes xsd comportent des choix.
 
Exemple :
 

Code :
  1. <xsd:element name="personne">
  2.         <xsd:complexType>
  3.             <xsd:choice>
  4.                 <xsd:group name="elgrp_personne_physique_simple" minOccurs="0">
  5.                     <xsd:annotation>
  6.                         <xsd:documentation xml:lang="fr">Definition de l objet personne physique sans les informations de naissance</xsd:documentation>
  7.                     </xsd:annotation>
  8.                     <xsd:sequence>
  9.                         <xsd:element name="nom_naissance" type="etatCivil" />
  10.                         <xsd:element name="prenom" type="etatCivil" />
  11.                         <xsd:element name="nom_usage" type="etatCivil" minOccurs="0" />
  12.                         <xsd:element name="sexe" type="sexe" />
  13.                     </xsd:sequence>
  14.                 </xsd:group>
  15.                 <xsd:group name="elgrp_personne_morale" minOccurs="0">
  16.                     <xsd:annotation>
  17.                         <xsd:documentation xml:lang="fr">Definition de l objet personne morale</xsd:documentation>
  18.                     </xsd:annotation>
  19.                     <xsd:sequence>
  20.                         <xsd:element name="raison_sociale" type="etatCivil" />
  21.                         <xsd:element name="siren" type="eltyp_siren" minOccurs="0" />
  22.                         <xsd:element name="societe_commerciale" type="elty_bool" />
  23.                     </xsd:sequence>
  24.                 </xsd:group>
  25.             </xsd:choice>
  26.         </xsd:complexType>
  27.     </xsd:element>


Lorsque je créer mon contenu SOAP via php, deux cas de figure se présentent :
 

Code :
  1. 'personne' => array (
  2.     'nom_naissance' => "Toto",
  3.     'prenom' => "Tata",
  4.     'sexe' => "M",
  5.     'societe_commerciale' => "oui",
  6.     'raison_sociale' => "TOTO-AUTO-R",
  7.     'siren' => "XXXXXXX"
  8. ),


Ce code me génère un XML valide, contenant ceci :
 

Code :
  1. <ns1:personne>
  2.     <ns1:nom_naissance>Toto</ns1:nom_naissance>
  3.     <ns1:prenom>Tata</ns1:prenom>
  4.     <ns1:sexe>M</ns1:sexe>
  5. </ns1:personne>


Seul le cas de la personne physique est traité, on a aucune info sur une société commerciale. Ce comportement est OK.
 
Par contre,  
 

Code :
  1. 'personne' => array (
  2.     'societe_commerciale' => "oui",
  3.     'raison_sociale' => "TOTO-AUTO-R",
  4.     'siren' => "XXXXXXX"
  5. ),


ce code ne permet pas de générer de XML :
 


SOAP-ERROR: Encoding: object hasn't 'nom_naissance' property


Le choix ne semble donc pas être interprété. Si on n'a pas la première occurrence (personne physique), c'est le drame.
 
Quelqu'un a-t-il déjà été confronté à l'un (ou les deux) de ces problèmes.
 
Par avance merci à vous pour votre aide !

mood
Publicité
Posté le 30-07-2010 à 10:37:09  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP-SOAP] Problème de choice

 

Sujets relatifs
Probleme avec un tableau structuréProblème affichage d'une USERFORM
[PHP] Variables de sessionproblème avec la création d'un fichier php
Convertir du code qui utilise wsdlDriver pour Savon ou Handsoap (SOAP)Déploiement de WebService (problème avec mon WSDL)
problème de div position absolute et IE [RESOLU]Probleme pour convertir une chaine en variable double
Problème de récupération de valeur d'une ListBox dans une procédure 
Plus de sujets relatifs à : [PHP-SOAP] Problème de choice


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR