dmitry Wed Feb 25 09:34:51 2004 EDT
Modified files:
/php-src/ext/soap php_encoding.c
Log:
fix: XMLSchema <choice> support was improved to support elements with minOccurs=0
http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.63&r2=1.64&ty=u
Index: php-src/ext/soap/php_encoding.c
diff -u php-src/ext/soap/php_encoding.c:1.63 php-src/ext/soap/php_encoding.c:1.64
--- php-src/ext/soap/php_encoding.c:1.63 Tue Feb 24 04:02:33 2004
+++ php-src/ext/soap/php_encoding.c Wed Feb 25 09:34:50 2004
@@ -17,7 +17,7 @@
| Dmitry Stogov <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_encoding.c,v 1.63 2004/02/24 09:02:33 dmitry Exp $ */
+/* $Id: php_encoding.c,v 1.64 2004/02/25 14:34:50 dmitry Exp $ */
#include <time.h>
@@ -1056,7 +1056,7 @@
}
return 1;
} else if (model->min_occurs == 0) {
- return 1;
+ return 2;
} else {
if (strict) {
php_error(E_ERROR, "SOAP-ERROR: Encoding:
object hasn't '%s' property",model->u.element->name);
@@ -1080,15 +1080,19 @@
}
case XSD_CONTENT_CHOICE: {
sdlContentModelPtr *tmp;
+ int ret = 0;
zend_hash_internal_pointer_reset(model->u.content);
while (zend_hash_get_current_data(model->u.content,
(void**)&tmp) == SUCCESS) {
- if (model_to_xml_object(node, *tmp, prop, style, 0)) {
+ int tmp_ret = model_to_xml_object(node, *tmp, prop,
style, 0);
+ if (tmp_ret == 1) {
return 1;
+ } else if (tmp_ret != 0) {
+ ret = 1;
}
zend_hash_move_forward(model->u.content);
}
- return 0;
+ return ret;
}
case XSD_CONTENT_GROUP: {
return model_to_xml_object(node, model->u.group->model, prop,
style, model->min_occurs > 0);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php