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