dmitry          Thu Sep 29 06:01:01 2005 EDT

  Modified files:              
    /php-src/ext/soap   php_encoding.c 
  Log:
  Fixed wrong array autodetection
  
  
http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.106&r2=1.107&ty=u
Index: php-src/ext/soap/php_encoding.c
diff -u php-src/ext/soap/php_encoding.c:1.106 
php-src/ext/soap/php_encoding.c:1.107
--- php-src/ext/soap/php_encoding.c:1.106       Thu Aug 25 02:50:16 2005
+++ php-src/ext/soap/php_encoding.c     Thu Sep 29 06:00:59 2005
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_encoding.c,v 1.106 2005/08/25 06:50:16 dmitry Exp $ */
+/* $Id: php_encoding.c,v 1.107 2005/09/29 10:00:59 dmitry Exp $ */
 
 #include <time.h>
 
@@ -1322,7 +1322,9 @@
                        data = get_zval_property(object, model->u.element->name 
TSRMLS_CC);
                        if (data) {
                                enc = model->u.element->encode;
-                               if ((model->max_occurs == -1 || 
model->max_occurs > 1) && Z_TYPE_P(data) == IS_ARRAY) {
+                               if ((model->max_occurs == -1 || 
model->max_occurs > 1) &&
+                                   Z_TYPE_P(data) == IS_ARRAY &&
+                                   !is_map(data)) {
                                        HashTable *ht = Z_ARRVAL_P(data);
                                        zval **val;
 
@@ -1345,7 +1347,9 @@
                                                        }
                                                }
                                                xmlNodeSetName(property, 
model->u.element->name);
-                                               if (style == SOAP_LITERAL && 
model->u.element->namens) {
+                                               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);
                                                }
@@ -1405,7 +1409,9 @@
                        data = get_zval_property(object, "any" TSRMLS_CC);
                        if (data) {
                                enc = get_conversion(XSD_ANYXML);
-                               if ((model->max_occurs == -1 || 
model->max_occurs > 1) && Z_TYPE_P(data) == IS_ARRAY) {
+                               if ((model->max_occurs == -1 || 
model->max_occurs > 1) &&
+                                   Z_TYPE_P(data) == IS_ARRAY &&
+                                   !is_map(data)) {
                                        HashTable *ht = Z_ARRVAL_P(data);
                                        zval **val;
 
@@ -1600,7 +1606,9 @@
                                                property = 
master_to_xml(array_el->encode, *val, style, xmlParam);
                                        }
                                        xmlNodeSetName(property, 
array_el->name);
-                                       if (style == SOAP_LITERAL && 
array_el->namens) {
+                                       if (style == SOAP_LITERAL &&
+                                           array_el->namens &&
+                                           array_el->form == 
XSD_FORM_QUALIFIED) {
                                                xmlNsPtr nsp = 
encode_add_ns(property, array_el->namens);
                                                xmlSetNs(property, nsp);
                                        }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to