cvs: php-src /ext/soap php_encoding.c
| From: | Dmitry Stogov | Date: | Thu, 29 Sep 2005 10:01:01 +0000 |
| Subject: | cvs: php-src /ext/soap php_encoding.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-34182@lists.php.net to get a copy of this message | ||
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 <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $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);
}