PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Web Services » SOAP » Bug #6300

Complex types, SOAP envelop error

Details

Submitted2005-12-20 14:00 UTC
Frompatrick at studioemma dot be
StatusNo Feedback
PackageSOAP
PHP Version4.3.3
OSRedhat
Roadmaps(Not assigned)

Comments

[2005-12-20 14:00 UTC] patrick at studioemma dot be

Description:
------------
Problem in 0.91, the envelop contains errors when using complex types. Therefore it's not compat with DOT NET.

An envelope created with PEAR_SOAP 0.81 has this structure:
...
<order_producten xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="ns4:clsBestellingProduct[2]" SOAP-ENC:offset="[0]">
<product xsi:type="ns4:clsBestellingProduct">
<order_id xsi:type="xsd:int">23</order_id>
<product_id xsi:type="xsd:int">22</product_id>
<aantal_besteld xsi:type="xsd:int">3</aantal_besteld>
<aantal_gereserveerd xsi:type="xsd:int">0</aantal_gereserveerd>
<aantal_reedsafgehaald xsi:type="xsd:int">0</aantal_reedsafgehaald></product>
<product xsi:type="ns4:clsBestellingProduct">
<order_id xsi:type="xsd:int">23</order_id>
<product_id xsi:type="xsd:int">22</product_id>
<aantal_besteld xsi:type="xsd:int">3</aantal_besteld>
<aantal_gereserveerd xsi:type="xsd:int">0</aantal_gereserveerd>
<aantal_reedsafgehaald xsi:type="xsd:int">0</aantal_reedsafgehaald></product></order_producten></order></ns5:getOrderResponse>
</SOAP-ENV:Body>

Which is perfectly usable and correct, however PEAR_SOAP 0.91 creates a different (erroneous) envelope with the same piece of code (not ns4:product, it's is unrecognizable):

...
<order_producten xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="ns4:clsBestellingProduct[2]" SOAP-ENC:offset="[0]">
<ns4:product>
<value>
<order_id xsi:type="xsd:int">23</order_id>
<product_id xsi:type="xsd:int">22</product_id>
<aantal_besteld xsi:type="xsd:int">3</aantal_besteld>
<aantal_gereserveerd xsi:type="xsd:int">0</aantal_gereserveerd>
<aantal_reedsafgehaald xsi:type="xsd:int">0</aantal_reedsafgehaald></value>
<name xsi:type="xsd:string">product</name>
<type xsi:type="xsd:string">clsBestellingProduct</type>
<namespace xsi:type="xsd:string"></namespace>
<type_namespace xsi:type="xsd:string">http://soapinterop.org/xsd</type_namespace>
<attributes xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:anyType[0]" xsi:nil="true"/>
<arrayType xsi:type="xsd:string"></arrayType>
<options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:anyType[0]" xsi:nil="true"/>
<nqn>
<name xsi:type="xsd:string">product</name>
<ns xsi:type="xsd:string"></ns>
<namespace xsi:type="xsd:string"></namespace></nqn>
<tqn>
<name xsi:type="xsd:string">clsBestellingProduct</name>
<ns xsi:type="xsd:string"></ns>
<namespace xsi:type="xsd:string">http://soapinterop.org/xsd</namespace></tqn>
<type_prefix xsi:type="xsd:string"></type_prefix></ns4:product>
<ns4:product>
<value>
<order_id xsi:type="xsd:int">23</order_id>
<product_id xsi:type="xsd:int">22</product_id>
<aantal_besteld xsi:type="xsd:int">3</aantal_besteld>
<aantal_gereserveerd xsi:type="xsd:int">0</aantal_gereserveerd>
<aantal_reedsafgehaald xsi:type="xsd:int">0</aantal_reedsafgehaald></value>
<name xsi:type="xsd:string">product</name>
<type xsi:type="xsd:string">clsBestellingProduct</type>
<namespace xsi:type="xsd:string"></namespace>
<type_namespace xsi:type="xsd:string">http://soapinterop.org/xsd</type_namespace>
<attributes xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:anyType[0]" xsi:nil="true"/>
<arrayType xsi:type="xsd:string"></arrayType>
<options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:anyType[0]" xsi:nil="true"/>
<nqn>
<name xsi:type="xsd:string">product</name>
<ns xsi:type="xsd:string"></ns>
<namespace xsi:type="xsd:string"></namespace></nqn>
<tqn>
<name xsi:type="xsd:string">clsBestellingProduct</name>
<ns xsi:type="xsd:string"></ns>
<namespace xsi:type="xsd:string">http://soapinterop.org/xsd</namespace></tqn>
<type_prefix xsi:type="xsd:string"></type_prefix></ns4:product></order_producten></order></ns5:getOrderResponse>
</SOAP-ENV:Body>