]> 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:42:06 +0000 (12:42 +0000)
committerDmitry Stogov <dmitry@php.net>
Sun, 9 Oct 2005 12:42:06 +0000 (12:42 +0000)
ext/soap/php_encoding.c

index 58adab43b5dee4076e5e9ec95f84fe12be4a6132..f12776291b689e37404ee1097704ff67fd94ffc0 100644 (file)
@@ -1381,7 +1381,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) {
@@ -1390,6 +1390,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;