ID:               37523
 Updated by:       [EMAIL PROTECTED]
 Reported By:      pav at FreeBSD dot org
-Status:           Assigned
+Status:           Closed
 Bug Type:         SOAP related
 Operating System: any
 PHP Version:      5.1.4
 Assigned To:      dmitry
 New Comment:

Fixed in CVS HEAD and PHP_5_2, but not in PHP_5_1.



Previous Comments:
------------------------------------------------------------------------

[2006-05-19 16:49:05] pav at FreeBSD dot org

Description:
------------
Changes made in libxml2 between version 2.6.23 and 2.6.24, exactly rev.
1.366 of tree.c, exactly added return(NULL) in xmlSetProp(), cause
attributes with unknown namespaces to be silently dropped, instead of
added into the document.

PHP SOAP extension, when making a client request, when running in
"encoded" mode, is adding xsi:type attributes to nodes (soap.c line
3948). The xmlns:xsi namespace is added later in that function (soap.c
line 4073).

Paired with the behaviour of a new libxml2 release, this leads to the
xsi:type attribute not being added.

Possible solution is to move if (use == ENCODED) block above the for (i
= 0; i < arg_count; i++) block in serialize_function_call() in soap.c.

Reproduce code:
---------------
$client = new
SoapClient("https://oas.hide.vol.cz:4444/WS-NPLAN-context-root/WS_NPLAN?WSDL";,
array("trace"=>true));
$client->getProfil(4);

Expected result:
----------------
... <ns1:getprofil><profil
xsi:type="xsd:decimal">4</profil></ns1:getprofil> ...

Actual result:
--------------
... <ns1:getprofil><profil>4</profil></ns1:getprofil> ...


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=37523&edit=1

Reply via email to