diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index f5535a5e67f..b53cf989378 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -931,9 +931,9 @@ static xmlNodePtr to_xml_bool(encodeTypePtr type, zval *data, int style, xmlNode
}
if (data->value.lval == 1) {
- xmlNodeSetContent(ret, "1");
+ xmlNodeSetContent(ret, "true");
} else {
- xmlNodeSetContent(ret, "0");
+ xmlNodeSetContent(ret, "false");
}
if (data == &tmp) {
@@ -1376,6 +1376,16 @@ static int model_to_xml_object(xmlNodePtr node, sdlContentModelPtr model, zval *
}
}
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 {
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_021p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_021p.phpt
index 132cd0bcb46..69edf346d91 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_021p.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_021p.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-1
+true
-1
+true
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_021s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_021s.phpt
index fce28ed86e1..8f2a66fc50b 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_021s.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_021s.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-1
+true
-1
+true
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_021w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_021w.phpt
index e2ed9979911..1e4cb4ee259 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_021w.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_021w.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-1
+true
-1
+true
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_022p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_022p.phpt
index 1aeb21d90bf..07322b9876e 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_022p.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_022p.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-0
+false
-0
+false
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_022s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_022s.phpt
index 8c43f420a44..9f4309cc31b 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_022s.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_022s.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-0
+false
-0
+false
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_022w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_022w.phpt
index 62b32c45bdf..5add7e5e83f 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_022w.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_022w.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-0
+false
-0
+false
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_023p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_023p.phpt
index 885205e4d5a..65dcad2733e 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_023p.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_023p.phpt
@@ -15,5 +15,5 @@ echo "ok\n";
1
-1
+true
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_023s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_023s.phpt
index f52184a78a2..8985f38f4ac 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_023s.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_023s.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-1
+true
-1
+true
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_023w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_023w.phpt
index 6603e1e312b..ca4eff0fcbc 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_023w.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_023w.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-1
+true
-1
+true
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_024p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_024p.phpt
index 543486df8a0..f55f095019d 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_024p.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_024p.phpt
@@ -15,5 +15,5 @@ echo "ok\n";
0
-0
+false
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_024s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_024s.phpt
index dd3a3520b8a..f10e7629abf 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_024s.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_024s.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-0
+false
-0
+false
ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_024w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_024w.phpt
index 359e6208491..96187fbb030 100644
--- a/ext/soap/tests/interop/Round2/Base/r2_base_024w.phpt
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_024w.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-0
+false
-0
+false
ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_001w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_001w.phpt
index 3a047a93c5f..4b37558d1c3 100644
--- a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_001w.phpt
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_001w.phpt
@@ -22,7 +22,7 @@ echo "ok\n";
?>
--EXPECT--
-3212345
+3212345
-3212345
+3212345
ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound2_001w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound2_001w.phpt
index ee74a962f63..9aa448ce9e0 100644
--- a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound2_001w.phpt
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound2_001w.phpt
@@ -31,7 +31,7 @@ echo "ok\n";
?>
--EXPECT--
-Shane1100000012345
+Shanetrue100000012345
-Shane1100000012345
+Shanetrue100000012345
ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt
index 2b5de618e46..77f3b24d538 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt
@@ -46,6 +46,6 @@ echo "ok\n";
?>
--EXPECT--
-1s111.11s222.22arg-35s333.33arg-351
+1s111.11s222.22arg-35s333.33arg-35true
SOAP-ENV:ServerFault in response to 'echoMultipleFaults2'.s111.11
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt
index 1e4a1a2a2d2..aebb9e9ef5b 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt
@@ -46,6 +46,6 @@ echo "ok\n";
?>
--EXPECT--
-2s111.11s222.22arg-35s333.33arg-351
+2s111.11s222.22arg-35s333.33arg-35true
SOAP-ENV:ServerFault in response to 'echoMultipleFaults2'.s222.22arg-35
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt
index 5993012b039..a27c2ad0125 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt
@@ -46,6 +46,6 @@ echo "ok\n";
?>
--EXPECT--
-3s111.11s222.22arg-35s333.33arg-351
+3s111.11s222.22arg-35s333.33arg-35true
-SOAP-ENV:ServerFault in response to 'echoMultipleFaults2'.s333.33arg-351
+SOAP-ENV:ServerFault in response to 'echoMultipleFaults2'.s333.33arg-35true
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt
index b97f397ec65..adf98fc2596 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt
@@ -46,6 +46,6 @@ echo "ok\n";
?>
--EXPECT--
-4s111.11s222.22arg-35s333.33arg-351
+4s111.11s222.22arg-35s333.33arg-35true
SOAP-ENV:ServerFault in response to 'echoMultipleFaults2'.s111.11
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt
index 5bfe6637604..1184b41e46f 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt
@@ -36,6 +36,6 @@ echo "ok\n";
?>
--EXPECT--
-112.345112.3452arg-3512.3453arg-351
+112.345112.3452arg-3512.3453arg-35true
SOAP-ENV:ServerFault in response to 'echoMultipleFaults2'.12.3451
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt
index a9424cb8a35..0d0a800fa19 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt
@@ -36,6 +36,6 @@ echo "ok\n";
?>
--EXPECT--
-212.345112.3452arg-3512.3453arg-351
+212.345112.3452arg-3512.3453arg-35true
SOAP-ENV:ServerFault in response to 'echoMultipleFaults2'.12.3452arg-35
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt
index c2c4038da12..21f643a5690 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt
@@ -36,6 +36,6 @@ echo "ok\n";
?>
--EXPECT--
-312.345112.3452arg-3512.3453arg-351
+312.345112.3452arg-3512.3453arg-35true
-SOAP-ENV:ServerFault in response to 'echoMultipleFaults2'.12.3453arg-351
+SOAP-ENV:ServerFault in response to 'echoMultipleFaults2'.12.3453arg-35true
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt
index 7099391bd8b..7cf18fb366e 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt
@@ -36,6 +36,6 @@ echo "ok\n";
?>
--EXPECT--
-412.345112.3452arg-3512.3453arg-351
+412.345112.3452arg-3512.3453arg-35true
SOAP-ENV:ServerFault in response to 'echoMultipleFaults2'.12.3451
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_017w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_017w.phpt
index 7661a60eb4f..08900ac5e59 100644
--- a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_017w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_017w.phpt
@@ -13,7 +13,7 @@ echo "ok\n";
?>
--EXPECT--
-1
+true
-1
+true
ok
diff --git a/ext/soap/tests/soap12/T52.phpt b/ext/soap/tests/soap12/T52.phpt
index 3034f0a2977..9d75fb98235 100644
--- a/ext/soap/tests/soap12/T52.phpt
+++ b/ext/soap/tests/soap12/T52.phpt
@@ -21,5 +21,5 @@ include "soap12-test.inc";
?>
--EXPECT--
-return1
+returntrue
ok
diff --git a/ext/soap/tests/soap12/T77_1.phpt b/ext/soap/tests/soap12/T77_1.phpt
index fea616a9be9..d847b6cfd88 100644
--- a/ext/soap/tests/soap12/T77_1.phpt
+++ b/ext/soap/tests/soap12/T77_1.phpt
@@ -21,5 +21,5 @@ include "soap12-test.inc";
?>
--EXPECT--
-return1
+returntrue
ok
diff --git a/ext/soap/tests/soap12/T77_2.phpt b/ext/soap/tests/soap12/T77_2.phpt
index 1e49e8a35e0..c829b57892a 100644
--- a/ext/soap/tests/soap12/T77_2.phpt
+++ b/ext/soap/tests/soap12/T77_2.phpt
@@ -20,5 +20,5 @@ include "soap12-test.inc";
?>
--EXPECT--
-return1
+returntrue
ok
diff --git a/ext/soap/tests/soap12/T77_3.phpt b/ext/soap/tests/soap12/T77_3.phpt
index f404dd0befd..0e1355a5a28 100644
--- a/ext/soap/tests/soap12/T77_3.phpt
+++ b/ext/soap/tests/soap12/T77_3.phpt
@@ -23,5 +23,5 @@ include "soap12-test.inc";
?>
--EXPECT--
-return0
+returnfalse
ok