ID:               49482
 Updated by:       dmi...@php.net
 Reported By:      joep at clickhere dot nl
-Status:           Open
+Status:           Feedback
 Bug Type:         SOAP related
 Operating System: Ubuntu
 PHP Version:      5.2.10
 Assigned To:      dmitry
 New Comment:

Please provide a woring example code PHP+WSDL.


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

[2009-09-08 12:24:24] joep at clickhere dot nl

Nothing is so obscure as the W3C documents. Therefore, "they"
(microsoft  :-)  convened the WS-I group to come to some type of "best
practices". But document/literal-wrapped is not a part of that. It
became a "de facto" standard because MS uses it,  as do most  Java
implementations. Nowhere this is described clearly (except perhaps in
this document:

http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/

Conclusion seems to be that xsi:type should not be sent.

Here http://jira.codehaus.org/browse/XFIRE-753 someone says that also
perl is in error when it sends "xsi:type".

So we think that the current PHP-implementation is not correct, type
information in document/literal is in the first place only given by the
xml-schema. On the other side the axis server complains about the
xsd:type and should just ignore it in this case to rely on the schema.

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

[2009-09-07 13:24:36] dmi...@php.net

This is not a bug. In case of 'use'='ENCODED' ext/soap always adds type
information and this check would just useless. In this place, it adds
type name specidied in 'classmap' for LITERAL encoding because without
it receiver won't be able to determine the real input type. Correct me
if I'm wrong (I can't be 100% sure as I don't see your code) and
demonstrate it with a small example.

BTW the 'classmap' concept is very limited. It was extended with
'typemap' concept which may give user the full control over generated
XML. Probably you need to use it.

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

[2009-09-06 10:29:52] joep at clickhere dot nl

Description:
------------
I was hunting a bug in our soap-client. 'xsi:type' appears in the xml,
even when the WSDL states 'use="literal"'.

Our client works fine with 5.2.4, but since 5.2.7/5.2.8 its broken
(Also tested 5.2.9)

Came across this fix in ext/soap/php_encoding.c

+    if (encode != enc && style == SOAP_LITERAL) {
        add_type = 1;
-    }

Shouldn't that be:

if (encode != enc && style == SOAP_ENCODED) {
        add_type = 1;                           
}





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


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

Reply via email to