#40922 [Opn]: parse_packet_soap does not decode objects properties from local message schema
| From: | php dot ajr at vitalphone dot net | 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