gschlossnagle           Thu Oct  6 18:30:24 2005 EDT

  Modified files:              (Branch: PHP_5_1)
    /php-src/ext/soap   php_encoding.c 
  Log:
  MFH: support complex types in restrictions and extensions
  
http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.103.2.3&r2=1.103.2.4&ty=u
Index: php-src/ext/soap/php_encoding.c
diff -u php-src/ext/soap/php_encoding.c:1.103.2.3 
php-src/ext/soap/php_encoding.c:1.103.2.4
--- php-src/ext/soap/php_encoding.c:1.103.2.3   Thu Sep 29 06:02:11 2005
+++ php-src/ext/soap/php_encoding.c     Thu Oct  6 18:30:24 2005
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_encoding.c,v 1.103.2.3 2005/09/29 10:02:11 dmitry Exp $ */
+/* $Id: php_encoding.c,v 1.103.2.4 2005/10/06 22:30:24 gschlossnagle Exp $ */
 
 #include <time.h>
 
@@ -319,6 +319,10 @@
                        node = encode->to_xml_after(&encode->details, node, 
style);
                }
        }
+       if(!node) {
+               node = xmlNewNode(NULL,"BOGUS");
+               xmlAddChild(parent, node);
+       }
        return node;
 }
 
@@ -1512,7 +1516,6 @@
        int i;
        sdlTypePtr sdlType = type->sdl_type;
        TSRMLS_FETCH();
-
        if (!data || Z_TYPE_P(data) == IS_NULL) {
                xmlParam = xmlNewNode(NULL,"BOGUS");
                xmlAddChild(parent, xmlParam);
@@ -1535,6 +1538,7 @@
 
                        enc = sdlType->encode;
                        while (enc && enc->details.sdl_type &&
+                              enc->details.sdl_type->kind != 
XSD_TYPEKIND_COMPLEX &&
                               enc->details.sdl_type->kind != 
XSD_TYPEKIND_SIMPLE &&
                               enc->details.sdl_type->kind != XSD_TYPEKIND_LIST 
&&
                               enc->details.sdl_type->kind != 
XSD_TYPEKIND_UNION) {
@@ -1544,12 +1548,9 @@
                                zval *tmp = get_zval_property(data, "_" 
TSRMLS_CC);
                                if (tmp) {
                                        xmlParam = master_to_xml(enc, tmp, 
style, parent);
-                               } else if (prop == NULL) {
-                                       xmlParam = master_to_xml(enc, data, 
style, parent);
                                } else {
-                                       xmlParam = xmlNewNode(NULL,"BOGUS");
-                                       xmlAddChild(parent, xmlParam);
-                               }
+                                       xmlParam = master_to_xml(enc, data, 
style, parent);
+                               } 
                        } else {
                                xmlParam = xmlNewNode(NULL,"BOGUS");
                                xmlAddChild(parent, xmlParam);
@@ -1557,6 +1558,7 @@
                } else if (sdlType->kind == XSD_TYPEKIND_EXTENSION &&
                           sdlType->encode && type != 
&sdlType->encode->details) {
                        if (sdlType->encode->details.sdl_type &&
+                           sdlType->encode->details.sdl_type->kind != 
XSD_TYPEKIND_COMPLEX &&
                            sdlType->encode->details.sdl_type->kind != 
XSD_TYPEKIND_SIMPLE &&
                            sdlType->encode->details.sdl_type->kind != 
XSD_TYPEKIND_LIST &&
                            sdlType->encode->details.sdl_type->kind != 
XSD_TYPEKIND_UNION) {
@@ -1566,11 +1568,8 @@
 
                                if (tmp) {
                                        xmlParam = 
master_to_xml(sdlType->encode, tmp, style, parent);
-                               } else if (prop == NULL) {
-                                       xmlParam = 
master_to_xml(sdlType->encode, data, style, parent);
                                } else {
-                                       xmlParam = xmlNewNode(NULL,"BOGUS");
-                                       xmlAddChild(parent, xmlParam);
+                                       xmlParam = 
master_to_xml(sdlType->encode, data, style, parent);
                                }
                        }
                } else {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to