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