dmitry Wed Aug 24 07:45:58 2005 EDT
Modified files: (Branch: PHP_5_0)
/php-src/ext/soap php_encoding.c
/php-src/ext/soap/tests/soap12 T52.phpt T77_1.phpt T77_2.phpt
T77_3.phpt
Log:
Fixed boolean encoding (from 0/1 to false/true) to support some buggy soap
SDKs.
Fixed support for missing nillable elements of sequnces.
http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.71.2.24&r2=1.71.2.25&ty=u
Index: php-src/ext/soap/php_encoding.c
diff -u php-src/ext/soap/php_encoding.c:1.71.2.24
php-src/ext/soap/php_encoding.c:1.71.2.25
--- php-src/ext/soap/php_encoding.c:1.71.2.24 Fri Jul 8 03:17:17 2005
+++ php-src/ext/soap/php_encoding.c Wed Aug 24 07:45:57 2005
@@ -17,7 +17,7 @@
| Dmitry Stogov <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_encoding.c,v 1.71.2.24 2005/07/08 07:17:17 dmitry Exp $ */
+/* $Id: php_encoding.c,v 1.71.2.25 2005/08/24 11:45:57 dmitry Exp $ */
#include <time.h>
@@ -835,9 +835,9 @@
}
if (data->value.lval == 1) {
- xmlNodeSetContent(ret, "1");
+ xmlNodeSetContent(ret, "true");
} else {
- xmlNodeSetContent(ret, "0");
+ xmlNodeSetContent(ret, "false");
}
if (data == &tmp) {
@@ -1280,6 +1280,16 @@
}
}
return 1;
+ } else if (strict && model->u.element->nillable) {
+ property =
xmlNewNode(NULL,model->u.element->name);
+ xmlAddChild(node, property);
+ if (style == SOAP_ENCODED) {
+ xmlSetProp(property, "xsi:nil", "1");
+ } else {
+ xmlNsPtr xsi =
encode_add_ns(property,XSI_NAMESPACE);
+ xmlSetNsProp(property, xsi, "nil", "1");
+ }
+ return 1;
} else if (model->min_occurs == 0) {
return 2;
} else {
http://cvs.php.net/diff.php/php-src/ext/soap/tests/soap12/T52.phpt?r1=1.1&r2=1.1.2.1&ty=u
Index: php-src/ext/soap/tests/soap12/T52.phpt
diff -u php-src/ext/soap/tests/soap12/T52.phpt:1.1
php-src/ext/soap/tests/soap12/T52.phpt:1.1.2.1
--- php-src/ext/soap/tests/soap12/T52.phpt:1.1 Fri Jan 30 10:08:52 2004
+++ php-src/ext/soap/tests/soap12/T52.phpt Wed Aug 24 07:45:58 2005
@@ -21,5 +21,5 @@
?>
--EXPECT--
<?xml version="1.0" encoding="UTF-8"?>
-<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://example.org/ts-tests"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body
xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoBooleanResponse
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return
xsi:type="xsd:boolean">1</return></ns1:echoBooleanResponse></env:Body></env:Envelope>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://example.org/ts-tests"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body
xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoBooleanResponse
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return
xsi:type="xsd:boolean">true</return></ns1:echoBooleanResponse></env:Body></env:Envelope>
ok
http://cvs.php.net/diff.php/php-src/ext/soap/tests/soap12/T77_1.phpt?r1=1.1&r2=1.1.2.1&ty=u
Index: php-src/ext/soap/tests/soap12/T77_1.phpt
diff -u php-src/ext/soap/tests/soap12/T77_1.phpt:1.1
php-src/ext/soap/tests/soap12/T77_1.phpt:1.1.2.1
--- php-src/ext/soap/tests/soap12/T77_1.phpt:1.1 Fri Jan 30 10:08:52 2004
+++ php-src/ext/soap/tests/soap12/T77_1.phpt Wed Aug 24 07:45:58 2005
@@ -21,5 +21,5 @@
?>
--EXPECT--
<?xml version="1.0" encoding="UTF-8"?>
-<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://example.org/ts-tests"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body
xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return
xsi:type="xsd:boolean">1</return></ns1:isNilResponse></env:Body></env:Envelope>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://example.org/ts-tests"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body
xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return
xsi:type="xsd:boolean">true</return></ns1:isNilResponse></env:Body></env:Envelope>
ok
http://cvs.php.net/diff.php/php-src/ext/soap/tests/soap12/T77_2.phpt?r1=1.1&r2=1.1.2.1&ty=u
Index: php-src/ext/soap/tests/soap12/T77_2.phpt
diff -u php-src/ext/soap/tests/soap12/T77_2.phpt:1.1
php-src/ext/soap/tests/soap12/T77_2.phpt:1.1.2.1
--- php-src/ext/soap/tests/soap12/T77_2.phpt:1.1 Fri Jan 30 10:08:52 2004
+++ php-src/ext/soap/tests/soap12/T77_2.phpt Wed Aug 24 07:45:58 2005
@@ -20,5 +20,5 @@
?>
--EXPECT--
<?xml version="1.0" encoding="UTF-8"?>
-<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://example.org/ts-tests"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body
xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return
xsi:type="xsd:boolean">1</return></ns1:isNilResponse></env:Body></env:Envelope>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://example.org/ts-tests"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body
xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return
xsi:type="xsd:boolean">true</return></ns1:isNilResponse></env:Body></env:Envelope>
ok
http://cvs.php.net/diff.php/php-src/ext/soap/tests/soap12/T77_3.phpt?r1=1.1&r2=1.1.2.1&ty=u
Index: php-src/ext/soap/tests/soap12/T77_3.phpt
diff -u php-src/ext/soap/tests/soap12/T77_3.phpt:1.1
php-src/ext/soap/tests/soap12/T77_3.phpt:1.1.2.1
--- php-src/ext/soap/tests/soap12/T77_3.phpt:1.1 Fri Jan 30 10:08:52 2004
+++ php-src/ext/soap/tests/soap12/T77_3.phpt Wed Aug 24 07:45:58 2005
@@ -23,5 +23,5 @@
?>
--EXPECT--
<?xml version="1.0" encoding="UTF-8"?>
-<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://example.org/ts-tests"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body
xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return
xsi:type="xsd:boolean">0</return></ns1:isNilResponse></env:Body></env:Envelope>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://example.org/ts-tests"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body
xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse
env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return
xsi:type="xsd:boolean">false</return></ns1:isNilResponse></env:Body></env:Envelope>
ok
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php