]> granicus.if.org Git - php/commitdiff
Fixed bug #34788 (SOAP Client not applying correct namespace to generated values)
authorDmitry Stogov <dmitry@php.net>
Sun, 9 Oct 2005 12:41:44 +0000 (12:41 +0000)
committerDmitry Stogov <dmitry@php.net>
Sun, 9 Oct 2005 12:41:44 +0000 (12:41 +0000)
NEWS
ext/soap/php_encoding.c

diff --git a/NEWS b/NEWS
index 445464227b8635a2c197b3abe3a22ece9d2119d7..49f187a57bb76ff74d30a760c4be42b098bef26a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -43,6 +43,8 @@ PHP                                                                        NEWS
 - Fixed "make test" to work for phpized extensions. (Hartmut, Jani)
 - Fixed failing queries (FALSE returned) with mysqli_query() on 64 bit systems.
   (Andrey)
+- Fixed bug #34788 (SOAP Client not applying correct namespace to generated
+  values). (Dmitry)
 - Fixed bug #34787 (SOAP Client not handling boolean types correctly). (Dmitry)
 - Fixed bug #34785 (subclassing of mysqli_stmt does not work). (Georg)
 - Fixed bug #34771 (strtotime() fails with 1-12am/pm). (Derick)
index 7652c1d3918fdafcb705d4c6f9bd800c2b271a13..5905bc2d6abc0e0d96d2d97628686f3aff89fa40 100644 (file)
@@ -1380,7 +1380,7 @@ static int model_to_xml_object(xmlNodePtr node, sdlContentModelPtr model, zval *
                                        }
                                }
                                return 1;
-                       } else if (strict && model->u.element->nillable) {
+                       } else if (strict && model->u.element->nillable && model->min_occurs > 0) {
                                property = xmlNewNode(NULL,model->u.element->name);
                                xmlAddChild(node, property);
                                if (style == SOAP_ENCODED) {
@@ -1389,6 +1389,12 @@ static int model_to_xml_object(xmlNodePtr node, sdlContentModelPtr model, zval *
                                        xmlNsPtr xsi = encode_add_ns(property,XSI_NAMESPACE);
                                        xmlSetNsProp(property, xsi, "nil", "true");
                                }
+                               if (style == SOAP_LITERAL &&
+                                   model->u.element->namens &&
+                                   model->u.element->form == XSD_FORM_QUALIFIED) {
+                                       xmlNsPtr nsp = encode_add_ns(property, model->u.element->namens);
+                                       xmlSetNs(property, nsp);
+                               }
                                return 1;
                        } else if (model->min_occurs == 0) {
                                return 2;