Re: [SOAP] Supporting array objects with soapenc:array
[email protected] (superspace) Mon, 06 Jun 2011 11:18:35 +1000
| Newsgroups | php.soap |
|---|---|
| Message-ID | <[email protected]> |
While trying to access:
http://old.nabble.com/file/p31715344/k3mail.wsdl
I get the following error:
ERROR:An error occured [Invalid QName value: Can't resolve prefix
'soapec']
There's something wrong with your wsdl I suspect.
- superspace
On 27/05/11 23:00, crazycoders wrote:
>
> Hi, i've started doing some soap yesterday with PHP and i managed to pull off
> many strings by myself just looking over the net, but that last problem,
> although not critical, would be nice to correct.
>
> I implemented my own SOAP server and SOAP client in my MVC framework using
> the SOAP extension from php SoapServer and SoapClient. I created my own WSDL
> and class mapping and class set. Everything works fine except for the
> conversion of http://old.nabble.com/file/p31715344/ProcessingCode.php
> ProcessingCode.php http://old.nabble.com/file/p31715344/k3mail.wsdl
> k3mail.wsdl StdClass objects to message class object when coming back to the
> SoapClient. Everything else works fine, the arrays work fine too, i can send
> many K3Lite_WebService_Message objects, they get transformed to a<message>
> inside of the soap response but the soap client can't seem to make the
> transition correctly.
>
> Attached is my code for both server and client and the WSDL file. Obviously
> i'm not giving away the full MVC framework, makes no sense.
>
> I think it has something to do with the XSD configuration of the
> soapenc:array. The array portion works but it is not converting the
> k3m:message back to K3Lite_WebService_Message class. Also, if i can point at
> it, the soap enveloppe says that my<response> is of type k3m but my little
> knowledge of SOAP and XML tells me that all sub objects should also be
> namespaced k3m and thats why it is not working.
>
> -----Exert from the SOAP return enveloppe-----
>
> "<?xml version="1.0" encoding="UTF-8"?>
>
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:ns1="urn:k3mail"><SOAP-ENV:Body><ns1:response><message><item
> id="ref1"><code>200</code><info>All ok</info></item><item
> href="#ref1"/><item href="#ref1"/><item
> href="#ref1"/></message><language/><list/></ns1:response></SOAP-ENV:Body></SOAP-ENV:Envelope>
>
> "
>
> ----Excert of a var_dump of my resulting object ----
> object(K3Lite_WebService_Response)#69 (3) {
> ["message"]=>
> array(4) {
> [0]=>
> &object(stdClass)#70 (2) {
> ["code"]=>
> string(3) "200"
> ["info"]=>
> string(6) "All ok"
> }
> [1]=>
> &object(stdClass)#70 (2) {
> ["code"]=>
> string(3) "200"
> ["info"]=>
> string(6) "All ok"
> }
> [2]=>
> &object(stdClass)#70 (2) {
> ["code"]=>
> string(3) "200"
> ["info"]=>
> string(6) "All ok"
> }
> [3]=>
> &object(stdClass)#70 (2) {
> ["code"]=>
> string(3) "200"
> ["info"]=>
> string(6) "All ok"
> }
> }
> ["language"]=>
> array(0) {
> }
> ["list"]=>
> array(0) {
> }
> }