#40922 [Opn]: parse_packet_soap does not decode objects properties from local message schema

From: Date: Sat, 31 Mar 2007 16:10:49 +0000
Subject: #40922 [Opn]: parse_packet_soap does not decode objects properties from local message schema
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-110979@lists.php.net to get a copy of this message
ID: 40922 User updated by: php dot ajr at vitalphone dot net Reported By: php dot ajr at vitalphone dot net Status: Open -Bug Type: Systems problem +Bug Type: SOAP related Operating System: Mandriva Linux 2007.0 PHP Version: 5.1.6 New Comment: Best category about this bug or featur Previous Comments: ------------------------------------------------------------------------ [2007-03-26 15:00:43] php dot ajr at vitalphone dot net Removed version at the first time. ------------------------------------------------------------------------ [2007-03-26 14:42:11] php dot ajr at vitalphone dot net Description: ------------ Hi, Our script are using PHP5/SOAP functionality. It interoperates with .Net Webservices. The server WSDL does not content the description of object properties. The Microsoft Server return the XML Schema for the object properties into the response with the data in the "Diffgr" contener like : <xs:element name="InfoEligibilite"> -<xs:complexType> --<xs:sequence> ---<xs:element name="offercode" type="xs:string"/> ---<xs:element name="bandwidthadsl1" type="xs:string"/> ---<xs:element name="bandwidthadsl2plus" type="xs:string"/> ---<xs:element name="upload" type="xs:string"/> ---<xs:element name="accesstype" type="xs:string"/> --</xs:sequence> -</xs:complexType> </xs:element> and <diffgr:diffgram> -<WSSignup_Dataset> --<InfoEligibilite diffgr:id="InfoEligibilite1" msdata:rowOrder="0"> ---<offercode>DSLFMTIF</offercode> ---<bandwidthadsl1>6048</bandwidthadsl1> ---<bandwidthadsl2plus>14528</bandwidthadsl2plus> ---<upload>256</upload> ---<accesstype>SHARED</accesstype> --</InfoEligibilite> --<InfoEligibilite diffgr:id="InfoEligibilite2" msdata:rowOrder="1"> ---<offercode>DSLFMDTTIF</offercode> ---<bandwidthadsl1>6048</bandwidthadsl1> ---<bandwidthadsl2plus>14528</bandwidthadsl2plus> ---<upload>256</upload> ---<accesstype>FULL</accesstype> --</InfoEligibilite> -</WSSignup_Dataset> </diffgr:diffgram> The parse_packet_soap.c programm decodes the object properties only from the WSDL schema, see the lines between 257 and 342. For the compatibility with all webservice form, it is necessary to add the property decoding from the response XML schema. Reproduce code: --------------- $client = new SoapClient('http://test.isdbwssignup.telecomitalia-entreprises.fr/WSSignup.asmx?WSDL', array('trace' => 1, 'soap_version' => SOAP_1_1)); $resultat = $client->GetInfoEligibility($parametres); // // Affichage du resultat // echo '</br />Analyse du resultat</br />'; var_dump($resultat); Expected result: ---------------- <diffgr:diffgram> -<WSSignup_Dataset> --<InfoEligibilite diffgr:id="InfoEligibilite1" msdata:rowOrder="0"> ---<offercode>DSLFMTIF</offercode> ---<bandwidthadsl1>6048</bandwidthadsl1> ---<bandwidthadsl2plus>14528</bandwidthadsl2plus> ---<upload>256</upload> ---<accesstype>SHARED</accesstype> --</InfoEligibilite> --<InfoEligibilite diffgr:id="InfoEligibilite2" msdata:rowOrder="1"> ---<offercode>DSLFMDTTIF</offercode> ---<bandwidthadsl1>6048</bandwidthadsl1> ---<bandwidthadsl2plus>14528</bandwidthadsl2plus> ---<upload>256</upload> ---<accesstype>FULL</accesstype> --</InfoEligibilite> -</WSSignup_Dataset> </diffgr:diffgram> Actual result: -------------- object(stdClass)#3 (1) { ["GetInfoEligibilityResult"]=> object(stdClass)#4 (1) { ["any"]=> string(10418) "DSLFMTIF604814528256SHAREDDSLFMDTTIF604814528256FULL" } } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=40922&edit=1

« previous php.bugs (#110979) next »