-----Original Message-----
From: Michael Rasmussen [mailto:mi...@miras.org]
Sent: Wednesday, January 18, 2006 11:52 PM
To: so...@lists.php.net
Subject: RE: [SOAP] Re: Java/Oracle server, PHP 5.1.2 client,
array of complexTypes, Deserializer error
On Wed, 18 Jan 2006 11:07:53 +0300, Dmitry Stogov wrote:
This is well known issue, but not a php/soap bug.
The problem that some SOAP implementations don't confirm to SOAP
specification and don't accept types derived from array.
See: http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383522
"SOAP arrays are defined as having a type of "SOAP-ENC:Array" or A
TYPE DERIVED THERE FROM."
Well, basically it is a php/soap bug. When php/soap creates
the request it does not use the appropriate name for the
struct which is specified in the wsdl. For this example the
wsdl specifies that the struct should be named Bar and not
item. So what happens at the server side? The server tries to
find any schema/namespace which specifies how an element item
must be serialized/deserialized, but of course fails since
this is not specified in any schema/namespace. The use of
item to specify structs inside an array was already
deprecated in soap1.1 and is no longer valid in soap1.2. As
of soap1.2 all implementation must follow the specifications
strict if the want to use rpc/encoded or else the only way is
document/literal.
Once again I must emphasize: This is a bug i php/soap which
must be corrected or otherwise you cannot use it for making
client/servers which will connect to Java, C#, C/C++ or any
other statically typed languages.