dmitry Thu Sep 29 06:08:19 2005 EDT
Modified files: (Branch: PHP_5_0)
/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.71.2.26&r2=1.71.2.27&ty=u
Index: php-src/ext/soap/php_encoding.c
diff -u php-src/ext/soap/php_encoding.c:1.71.2.26
php-src/ext/soap/php_encoding.c:1.71.2.27
--- php-src/ext/soap/php_encoding.c:1.71.2.26 Tue Sep 20 07:40:33 2005
+++ php-src/ext/soap/php_encoding.c Thu Sep 29 06:08:16 2005
@@ -17,7 +17,7 @@
| Dmitry Stogov <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_encoding.c,v 1.71.2.26 2005/09/20 11:40:33 tony2001 Exp $ */
+/* $Id: php_encoding.c,v 1.71.2.27 2005/09/29 10:08:16 dmitry Exp $ */
#include <time.h>
@@ -1225,7 +1225,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;
@@ -1248,7 +1250,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);
}
@@ -1308,7 +1312,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;
@@ -1503,7 +1509,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