J'écris un SoapServer avec PHP 5.2 pour retourner une liste de postes vacants à une autre application. Mon doc WSDL nécessite un type complexe le long des lignes de:Structurer un tableau PHP pour l'utiliser dans SOAP avec WSDL
<xsd:element name="Vacancies">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Vacancy" type="ns:VacancyType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Ma fonction génère un grand tableau imbriqué pour assembler chaque poste, puis retourner le tableau de tableaux (ex: sièges vacants) au SoapServer.
Malheureusement, chaque tableau est indexé. Ainsi, chaque élément VacancyType dans Vacancies a un index unique. Cela semble désactiver la définition WSDL et les données qui me sont renvoyées provoquent simplement une erreur d'analyse. J'utiliserais normalement des tableaux associatifs pour les valeurs de paires de clés, mais comme j'ai affaire à n instances de VacancyType qui ne fonctionneraient pas car il n'y aurait pas de référence unique. Y at-il une solution de contournement connue pour ce type de scénario (par exemple: peut-être un objet), ou devrais-je retravailler mon document WSDL pour répondre aux tableaux indexés?
Merci
Pouvez-vous expliquer votre structure de données mieux? Quelle est la relation entre Vacancy et Type? Une offre d'emploi peut avoir plusieurs types? Peut-être pourriez-vous ajouter un échantillon de votre tableau à la question. –
Désolé, c'est un peu trompeur, VacancyType fait référence à une définition XSD pour un type complexe (je ne pense pas avoir besoin de le détailler). Pour toutes fins utiles, il pourrait aussi bien s'appeler Vacancy. La réponse à cette fonction devrait retourner quelque chose comme: * * postes vacants VacancyType * données dans ce ... * VacancyType * données dans ce ... * VacancyType * données dans ce ... Je compile ceci avec un tableau et laisse le SoapServer le convertir en une réponse appropriée basée sur le WSDL, mais il est aux prises avec un tableau indexé de VacancyType – johan
Où le problème se produit-il? Marshaling votre tableau à un SOAPRequest? Ne serait-ce pas une série d'objets Vacancy imbriqués? – awithrow