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

  FORUM HardWare.fr
  Programmation
  PHP

  NuSoap addComplexType maxOccurs="unbounded"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

NuSoap addComplexType maxOccurs="unbounded"

n°998428
rompi
Posté le 02-03-2005 à 16:17:03  profilanswer
 

Salut,
J'aimerai savoir si quelqu'un sais comment on fait pour générer un type complexe de ce gout  

Code :
  1. <complexType name="mapItem">
  2. <sequence>
  3. <element name="key" nillable="true" type="xsd:anyType"/>
  4. <element name="value" nillable="true" type="xsd:anyType"/>
  5. </sequence>
  6. </complexType>
  7. <complexType name="Map">
  8. <sequence>
  9. <element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem"/>
  10. </sequence>
  11. </complexType>


avec NuSoap ???
 
En gros ca permet de faire une tableau associatif...
 
Je ne vous cache pas que ce code est générer avec axis (d'ou apachesoap)
et que c'est comme cela qu'il sérialise les HashMap...
 
pour le moment j'arrive a ceci:  

Code :
  1. <xsd:complexType name="profilDataTypeItem">
  2. <xsd:element>
  3. <xsd:element name="key" type="xsd:anyType"/>
  4. <xsd:element name="value" type="xsd:anyType"/>
  5. </xsd:element>
  6. </xsd:complexType>
  7. <xsd:complexType name="profilDataType">
  8. <xsd:sequence>
  9. <xsd:element name="item" type="tns:profilDataTypeItem"/>
  10. </xsd:sequence>
  11. </xsd:complexType>


 
en faisant comme ca:  
 

Code :
  1. $server->wsdl->addComplexType(
  2.     "profilDataTypeItem",
  3.     "complexType",
  4.     "struct",
  5.     "element",
  6.     "",
  7.     array( "key" => array( "type" => "xsd:anyType" ),
  8.      "value" => array( "type" => "xsd:anyType" )),
  9.     array(),
  10.     'xsd:string'
  11.     );
  12. $server->wsdl->addComplexType(
  13.     "profilDataType",
  14.     "complexType",
  15.     "array",
  16.     "sequence",
  17.     "",
  18.     array( "item" => array("type" => "tns:profilDataTypeItem" )),
  19.     array(), // "item" => array("maxOccurs"=> "unbounded", "minOccurs"=>"0" ) ),
  20.     'xsd:string'
  21.     );


 
mais pas possible d'écrire le maxOccurs,
 
un peu d'aide serait le bien venu


Message édité par rompi le 02-03-2005 à 16:18:09
mood
Publicité
Posté le 02-03-2005 à 16:17:03  profilanswer
 

n°999210
rompi
Posté le 03-03-2005 à 09:37:14  profilanswer
 

Quelqu'un fait des services web ici ?

n°999552
rompi
Posté le 03-03-2005 à 14:17:27  profilanswer
 

Bon comme j'ai l'habitude de squater seul les topic que je crée, voilà je donne à tout le monde ma solution a mon problème  :)  
 
 
dans le serveur soap,

Code :
  1. $server->wsdl->addComplexType(
  2.     "mapItem",
  3.     "complexType",
  4.     "struct",
  5.     "all",
  6.     "",
  7.     array( "key" => array( "type" => "xsd:anyType" ),
  8.         "value" => array( "type" => "xsd:anyType" ))
  9.     );
  10. $server->wsdl->addComplexType(
  11.     "Map",
  12.     "complexType",
  13.     "array",
  14.     "",
  15.     "SOAP-ENC:Array",
  16.     array(),
  17.     array(
  18.      array( "ref"=>"SOAP-ENC:arrayType", "wsdl:arrayType"=>"tns:mapItem[]" )),
  19.   "tns:mapItem"
  20.     );
  21. $server->register( "insert",
  22. array("idPartenaire"=>"xsd:integer", "email"=>"xsd:string", "profilData"=>"tns:Map",
  23.  "validationKey"=>"xsd:string" ),
  24. array( "statusCode" => "xsd:integer" ),
  25. NAMESPACE, "rpc", "encoded",
  26. "Web Service d'insertion de profil emailing" );


 
et dans le client, malheuresement j'ai pas mieux,
 
 

Code :
  1. $client = new soapclient(WSDL, true);
  2. $proxy = $client->getProxy( );
  3. $profilMail = "jdupond@hardware.fr";
  4. $profilData[] =  array( "key" => "nom", "value" => "DUPOND" );
  5. $profilData[] =  array( "key" => "prenom", "value" => "Jean" );
  6. $result = $proxy->insert(2,$profilMail,$profilData,sha1($profilMail.MY_KEY));


 
Si quelqu'un un jour sais comment faire un serveur qui attend  
 

Code :
  1. $profilData["nom"] = "DUPOND";
  2. $profilData["prenom"] = "Jean";


 
pour le client, j'attend votre complex type bien volontier...

n°999564
la viper
Posté le 03-03-2005 à 14:25:35  profilanswer
 

j'utilise aussi nuSoap pour mon projet.. mais peut être que dans ton cas il serait mieux d'utiliser la libraire SOAP de PEAR non ?! (elle a l'air un peu plus maintenu)

n°999922
rompi
Posté le 03-03-2005 à 17:50:58  profilanswer
 

Salut la viper,
je regarderai quand j'aurai un peu plus de temps,
mais j'ai l'impression que PEAR::SOAP est moins documenté et moins utiliser, je me trompe p-e
 


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

  NuSoap addComplexType maxOccurs="unbounded"

 

Sujets relatifs
[PHP] création du service web avec nuSoap 
Plus de sujets relatifs à : NuSoap addComplexType maxOccurs="unbounded"


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)