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

Reply via email to