ID:               49577
 Updated by:       j...@php.net
 Reported By:      kim at datatal dot se
-Status:           Open
+Status:           Feedback
 Bug Type:         SOAP related
 Operating System: Windows
 PHP Version:      5.2.10
 New Comment:

Please try using this snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/




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

[2009-09-17 10:08:00] kim at datatal dot se

Description:
------------
Returning from a method invoked over SOAP RPC with a datatype of
anyType 
to a .NET client application will generate an error when the datatype
in 
PHP is an array with values of different types.

As specified in the XML Schema document there something known as
anyType 
which is a close approximation to the urType/ur-type.
Validation fails in the .NET client due to SOAP returning a datatype of

ur-type and not anyType.

It works when all the values in the array is of the same type, since
the 
array will become of the type of the values instead of a 
generic/abstract type.

Reproduce code:
---------------
Create a web service with the following in the WSDL:
<message name="theMethodResponse">
 <part name="theMethodReturn" type="xsd:anyType"/>
</message>
<portType name="thePort">
 <operation name="theMethod">
  <output message="typens:theMethodResponse"/>
 </operation>
</portType>

In the SOAP service implementation:
public function theMethod()
{
 return array("value", 1234);
}

Expected result:
----------------
The expected result returned from the method in C# is a type of 
object[].

Actual result:
--------------
An exception specifying that 'ur-type' is not defined in the XML 
schema in the following response:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-
ENV="http://schemas.xmlsoap.org/soap/envelope/";;
xmlns:ns1="urn:smsservice"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";;
xmlns:xsd="http://www.w3.org/2001/XMLSchema";;
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";;
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>;
<SOAP-ENV:Body>
<ns1:theMethodResponse>
<theMethodReturn SOAP-ENC:arrayType="xsd:ur-type[2]" xsi:type="SOAP-
ENC:Array">
<item xsi:type="xsd:string">value</item>
<item xsi:type="xsd:int">1234</item>
</theMethodReturn>
</ns1: theMethodResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


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


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

Reply via email to