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