summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorGeorge Schlossnagle <gschlossnagle@php.net>2005-04-03 15:51:22 (GMT)
committerGeorge Schlossnagle <gschlossnagle@php.net>2005-04-03 15:51:22 (GMT)
commit1d25fc5c7b62f763b66a4c745d5e29894419aca9 (patch)
tree63afdb9686589873e5866d140fa4eaa7fc5e48de /ext
parent55c25c7275d659488479845b1f358f026c596782 (diff)
downloadphp-1d25fc5c7b62f763b66a4c745d5e29894419aca9.tar.gz
actually commit the SOAP interop tests this time.
Diffstat (limited to 'ext')
-rw-r--r--ext/soap/tests/interop/Round2/Base/phpt.40ea5092ecda91
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_001p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_001s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_002p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_002s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_002w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_003p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_003s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_003w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_004p.phpt21
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_004s.phpt21
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_004w.phpt21
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_005p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_005s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_005w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_006p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_006s.phpt23
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_006w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_007p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_007s.phpt22
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_007w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_008p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_008s.phpt21
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_008w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_009p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_009s.phpt20
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_009w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_010p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_010s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_010w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_011p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_011s.phpt24
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_011w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_012p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_012s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_012w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_013p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_013s.phpt24
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_013w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_014p.phpt27
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_014s.phpt24
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_014w.phpt27
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_015p.phpt28
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_015s.phpt38
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_015w.phpt28
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_016p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_016s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_016w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_017p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_017s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_017w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_018p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_018s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_018w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_019p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_019s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_019w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_020p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_020s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_020w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_021p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_021s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_021w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_022p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_022s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_022w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_023p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_023s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_023w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_024p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_024s.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/r2_base_024w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/Base/round2_base.inc80
-rw-r--r--ext/soap/tests/interop/Round2/Base/round2_base.wsdl332
-rw-r--r--ext/soap/tests/interop/Round2/Base/skipif.inc3
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_001p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_001s.phpt24
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_002p.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_002s.phpt22
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_002w.phpt19
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_003p.phpt22
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_003s.phpt31
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_003w.phpt22
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_004p.phpt29
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_004s.phpt29
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_004w.phpt29
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_005p.phpt24
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_005s.phpt29
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/r2_groupB_005w.phpt24
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/round2_groupB.inc37
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/round2_groupB.wsdl192
-rw-r--r--ext/soap/tests/interop/Round2/GroupB/skipif.inc3
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_001w.phpt28
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_002w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.diff4
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.exp5
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.log14
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.out5
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.php8
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound2_001w.phpt37
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_002w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_003w.phpt27
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_004w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_002w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_003w.phpt27
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_004w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_emptysa_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_import1_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_import2_001w.phpt27
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_import3_001w.phpt27
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_import3_002w.phpt27
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_002w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_003w.phpt27
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_004w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound1.inc17
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound1.wsdl85
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound2.inc12
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound2.wsdl65
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclit.inc28
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclit.wsdl135
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclitparams.inc29
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclitparams.wsdl175
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_emptysa.inc14
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_emptysa.wsdl37
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_import1.inc14
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_import1.wsdl26
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2.inc14
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2.wsdl26
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2_absolute.wsdl26
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_import3.inc19
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_import3.wsdl75
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_rpcenc.inc28
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/round3_groupD_rpcenc.wsdl126
-rw-r--r--ext/soap/tests/interop/Round3/GroupD/skipif.inc3
-rw-r--r--ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_001w.phpt35
-rw-r--r--ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_002w.phpt42
-rw-r--r--ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_003w.phpt49
-rw-r--r--ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_004w.phpt28
-rw-r--r--ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_005w.phpt50
-rw-r--r--ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_006w.phpt50
-rw-r--r--ext/soap/tests/interop/Round3/GroupE/round3_groupE_list.inc17
-rw-r--r--ext/soap/tests/interop/Round3/GroupE/round3_groupE_list.wsdl61
-rw-r--r--ext/soap/tests/interop/Round3/GroupE/skipif.inc3
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/r3_groupF_ext_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/r3_groupF_extreq_001w.phpt15
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_002w.phpt20
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_003w.phpt20
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_004w.phpt23
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/round3_groupF_ext.inc14
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/round3_groupF_ext.wsdl72
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/round3_groupF_extreq.wsdl73
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/round3_groupF_headers.inc22
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/round3_groupF_headers.wsdl70
-rw-r--r--ext/soap/tests/interop/Round3/GroupF/skipif.inc3
-rw-r--r--ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimedoc.inc33
-rw-r--r--ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimedoc.wsdl216
-rw-r--r--ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimerpc.inc33
-rw-r--r--ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimerpc.wsdl171
-rw-r--r--ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimedoc.inc25
-rw-r--r--ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimedoc.wsdl185
-rw-r--r--ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimerpc.inc25
-rw-r--r--ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimerpc.wsdl151
-rw-r--r--ext/soap/tests/interop/Round4/GroupG/skipif.inc3
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_001w.phpt26
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_002w.phpt32
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_003w.phpt40
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_004w.phpt35
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_005w.phpt35
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_006w.phpt35
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt51
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt51
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt51
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt51
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_001w.phpt26
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_002w.phpt25
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_003w.phpt33
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_004w.phpt33
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_005w.phpt33
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_006w.phpt33
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt41
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt41
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt41
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt41
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_001w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_002w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_003w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_004w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_005w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_006w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_007w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_008w.phpt21
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_009w.phpt21
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_010w.phpt21
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_011w.phpt21
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_012w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_013w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_014w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_015w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_016w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_017w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_001w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_002w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_003w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_004w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_005w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_006w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_007w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_008w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_009w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_010w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_011w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_012w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_013w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_014w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_015w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_016w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_017w.phpt18
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_002w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_003w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_004w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_doclit.inc38
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_doclit.wsdl329
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_rpcenc.inc38
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_rpcenc.wsdl301
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_doclit.inc56
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_doclit.wsdl418
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_rpcenc.inc56
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_rpcenc.wsdl408
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/round4_groupH_soapfault.inc22
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/round4_groupH_soapfault.wsdl81
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/skipif.inc3
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_001w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_002w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_003w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_004w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_005w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_006w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_007w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_008w.phpt27
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_009w.phpt28
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_010w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_011w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_012w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_013w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_014w.phpt27
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_015w.phpt27
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_016w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_017w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_018w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_019w.phpt27
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_020w.phpt28
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_021w.phpt21
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_022w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_023w.phpt35
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_024w.phpt29
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_025w.phpt28
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_026w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_027w.phpt19
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_028w.phpt27
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_029w.phpt15
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_030w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_031w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_032w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_033w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_034w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_035w.phpt20
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/round4_groupI_xsd.inc198
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/round4_groupI_xsd.wsdl1113
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/skipif.inc3
277 files changed, 10773 insertions, 0 deletions
diff --git a/ext/soap/tests/interop/Round2/Base/phpt.40ea5092ecda9 b/ext/soap/tests/interop/Round2/Base/phpt.40ea5092ecda9
new file mode 100644
index 0000000..352c84b
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/phpt.40ea5092ecda9
@@ -0,0 +1 @@
+<?php require_once('skipif.inc'); ?>
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_001p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_001p.phpt
new file mode 100644
index 0000000..f88cddd
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_001p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 001 (php/direct): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString", array("Hello World!"), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><param0 xsi:type="xsd:string">Hello World!</param0></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string">Hello World!</outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_001s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_001s.phpt
new file mode 100644
index 0000000..a25eea5
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_001s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 001 (soap/direct): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString", array(new SoapParam(new SoapVar("Hello World!",XSD_STRING),"inputString")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><inputString xsi:type="xsd:string">Hello World!</inputString></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string">Hello World!</outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_001w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_001w.phpt
new file mode 100644
index 0000000..ea9dc86
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 001 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString("Hello World!");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><inputString xsi:type="xsd:string">Hello World!</inputString></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string">Hello World!</outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_002p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_002p.phpt
new file mode 100644
index 0000000..a5c6242
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_002p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 002 (php/direct): echoString(empty)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString", array(""), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><param0 xsi:type="xsd:string"></param0></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string"></outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_002s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_002s.phpt
new file mode 100644
index 0000000..3a25624
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_002s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 002 (soap/direct): echoString(empty)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString", array(new SoapParam(new SoapVar("",XSD_STRING),"inputString")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><inputString xsi:type="xsd:string"></inputString></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string"></outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_002w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_002w.phpt
new file mode 100644
index 0000000..4761df6
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_002w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 002 (php/wsdl): echoString(empty)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString("");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><inputString xsi:type="xsd:string"></inputString></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string"></outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_003p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_003p.phpt
new file mode 100644
index 0000000..353c547
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_003p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 003 (php/direct): echoString(NULL)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString", array(NULL), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><param0 xsi:nil="1"/></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:nil="1"/></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_003s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_003s.phpt
new file mode 100644
index 0000000..ef5211e
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_003s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 003 (soap/direct): echoString(NULL)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString", array(new SoapParam(new SoapVar(NULL,XSD_STRING),"inputString")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><inputString xsi:nil="1"/></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:nil="1"/></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_003w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_003w.phpt
new file mode 100644
index 0000000..88489bb
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_003w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 003 (php/wsdl): echoString(NULL)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString(NULL);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><inputString xsi:nil="1"/></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:nil="1"/></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_004p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_004p.phpt
new file mode 100644
index 0000000..cb56ce6
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_004p.phpt
@@ -0,0 +1,21 @@
+--TEST--
+SOAP Interop Round2 base 004 (php/direct): echoString(entities)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString", array(">,<,&,\",',\\,\n"), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><param0 xsi:type="xsd:string">&gt;,&lt;,&amp;,",',\,
+</param0></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string">&gt;,&lt;,&amp;,",',\,
+</outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_004s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_004s.phpt
new file mode 100644
index 0000000..20c899e
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_004s.phpt
@@ -0,0 +1,21 @@
+--TEST--
+SOAP Interop Round2 base 004 (soap/direct): echoString(entities)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString", array(new SoapParam(new SoapVar(">,<,&,\",',\\,\n",XSD_STRING),"inputString")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><inputString xsi:type="xsd:string">&gt;,&lt;,&amp;,",',\,
+</inputString></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string">&gt;,&lt;,&amp;,",',\,
+</outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_004w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_004w.phpt
new file mode 100644
index 0000000..69b3afd
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_004w.phpt
@@ -0,0 +1,21 @@
+--TEST--
+SOAP Interop Round2 base 004 (php/wsdl): echoString(entities)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString(">,<,&,\",',\\,\n");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><inputString xsi:type="xsd:string">&gt;,&lt;,&amp;,",',\,
+</inputString></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string">&gt;,&lt;,&amp;,",',\,
+</outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_005p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_005p.phpt
new file mode 100644
index 0000000..d8f91d3
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_005p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 005 (php/direct): echoString(utf-8)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString", array(utf8_encode('ỗÈéóÒ₧⅜ỗỸ')), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><param0 xsi:type="xsd:string">ỗÈéóÒ₧⅜ỗỸ</param0></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string">ỗÈéóÒ₧⅜ỗỸ</outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_005s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_005s.phpt
new file mode 100644
index 0000000..116e14f
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_005s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 005 (soap/direct): echoString(utf-8)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString", array(new SoapParam(new SoapVar(utf8_encode('ỗÈéóÒ₧⅜ỗỸ'),XSD_STRING),"inputString")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><inputString xsi:type="xsd:string">ỗÈéóÒ₧⅜ỗỸ</inputString></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string">ỗÈéóÒ₧⅜ỗỸ</outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_005w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_005w.phpt
new file mode 100644
index 0000000..64f03df
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_005w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 005 (php/wsdl): echoString(utf-8)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString(utf8_encode('ỗÈéóÒ₧⅜ỗỸ'));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><inputString xsi:type="xsd:string">ỗÈéóÒ₧⅜ỗỸ</inputString></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><outputString xsi:type="xsd:string">ỗÈéóÒ₧⅜ỗỸ</outputString></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_006p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_006p.phpt
new file mode 100644
index 0000000..f332a82
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_006p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 006 (php/direct): echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStringArray", array(array('good','bad')), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><param0 SOAP-ENC:arrayType="xsd:string[2]" xsi:type="SOAP-ENC:Array"><item xsi:type="xsd:string">good</item><item xsi:type="xsd:string">bad</item></param0></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray SOAP-ENC:arrayType="xsd:string[2]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">good</item><item xsi:type="xsd:string">bad</item></outputStringArray></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_006s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_006s.phpt
new file mode 100644
index 0000000..de822b2
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_006s.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP Interop Round2 base 006 (soap/direct): echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(array(
+ new SoapVar('good', XSD_STRING),
+ new SoapVar('bad', XSD_STRING)
+ ), SOAP_ENC_ARRAY, "ArrayOfstring","http://soapinterop.org/xsd"), "inputStringArray");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStringArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><inputStringArray SOAP-ENC:arrayType="xsd:string[2]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">good</item><item xsi:type="xsd:string">bad</item></inputStringArray></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray SOAP-ENC:arrayType="xsd:string[2]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">good</item><item xsi:type="xsd:string">bad</item></outputStringArray></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_006w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_006w.phpt
new file mode 100644
index 0000000..7844d4a
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_006w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 006 (php/wsdl): echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringArray(array('good','bad'));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><inputStringArray SOAP-ENC:arrayType="xsd:string[2]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">good</item><item xsi:type="xsd:string">bad</item></inputStringArray></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray SOAP-ENC:arrayType="xsd:string[2]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">good</item><item xsi:type="xsd:string">bad</item></outputStringArray></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_007p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_007p.phpt
new file mode 100644
index 0000000..ddf9879
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_007p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 007 (php/direct): echoStringArray(one)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStringArray", array(array('good')), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><param0 SOAP-ENC:arrayType="xsd:string[1]" xsi:type="SOAP-ENC:Array"><item xsi:type="xsd:string">good</item></param0></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray SOAP-ENC:arrayType="xsd:string[1]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">good</item></outputStringArray></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_007s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_007s.phpt
new file mode 100644
index 0000000..778446a
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_007s.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SOAP Interop Round2 base 007 (soap/direct): echoStringArray(one)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(array(
+ new SoapVar('good', XSD_STRING)
+ ), SOAP_ENC_ARRAY, "ArrayOfstring","http://soapinterop.org/xsd"), "inputStringArray");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStringArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><inputStringArray SOAP-ENC:arrayType="xsd:string[1]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">good</item></inputStringArray></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray SOAP-ENC:arrayType="xsd:string[1]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">good</item></outputStringArray></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_007w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_007w.phpt
new file mode 100644
index 0000000..89bf6ea
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_007w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 007 (php/wsdl): echoStringArray(one)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringArray(array('good'));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><inputStringArray SOAP-ENC:arrayType="xsd:string[1]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">good</item></inputStringArray></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray SOAP-ENC:arrayType="xsd:string[1]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">good</item></outputStringArray></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_008p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_008p.phpt
new file mode 100644
index 0000000..28eae3d
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_008p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 008 (php/direct): echoStringArray(empty)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStringArray", array(array()), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><param0 SOAP-ENC:arrayType="xsd:ur-type[0]" xsi:type="SOAP-ENC:Array"/></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray SOAP-ENC:arrayType="xsd:string[0]" xsi:type="ns2:ArrayOfstring"/></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_008s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_008s.phpt
new file mode 100644
index 0000000..b23dda4
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_008s.phpt
@@ -0,0 +1,21 @@
+--TEST--
+SOAP Interop Round2 base 008 (soap/direct): echoStringArray(empty)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(array(
+ ), SOAP_ENC_ARRAY, "ArrayOfstring","http://soapinterop.org/xsd"), "inputStringArray");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStringArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><inputStringArray SOAP-ENC:arrayType="xsd:ur-type[0]" xsi:type="ns2:ArrayOfstring"/></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray SOAP-ENC:arrayType="xsd:string[0]" xsi:type="ns2:ArrayOfstring"/></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_008w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_008w.phpt
new file mode 100644
index 0000000..25de154
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_008w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 008 (php/wsdl): echoStringArray(empty)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringArray(array());
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><inputStringArray SOAP-ENC:arrayType="xsd:string[0]" xsi:type="ns2:ArrayOfstring"/></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray SOAP-ENC:arrayType="xsd:string[0]" xsi:type="ns2:ArrayOfstring"/></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_009p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_009p.phpt
new file mode 100644
index 0000000..77f89af
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_009p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 009 (php/direct): echoStringArray(NULL)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStringArray", array(NULL), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><param0 xsi:nil="1"/></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray xsi:nil="1" xsi:type="ns2:ArrayOfstring"/></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_009s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_009s.phpt
new file mode 100644
index 0000000..e8478e1
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_009s.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round2 base 009 (soap/direct): echoStringArray(NULL)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(NULL, SOAP_ENC_ARRAY, "ArrayOfstring","http://soapinterop.org/xsd"), "inputStringArray");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStringArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><inputStringArray xsi:nil="1" xsi:type="ns2:ArrayOfstring"/></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray xsi:nil="1" xsi:type="ns2:ArrayOfstring"/></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_009w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_009w.phpt
new file mode 100644
index 0000000..34cb728
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_009w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 009 (php/wsdl): echoStringArray(NULL)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringArray(NULL);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><inputStringArray xsi:nil="1" xsi:type="ns2:ArrayOfstring"/></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><outputStringArray xsi:nil="1" xsi:type="ns2:ArrayOfstring"/></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_010p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_010p.phpt
new file mode 100644
index 0000000..9c2aa0f
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_010p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 010 (php/direct): echoInteger
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoInteger", array(34345), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoInteger><param0 xsi:type="xsd:int">34345</param0></ns1:echoInteger></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntegerResponse><outputInteger xsi:type="xsd:int">34345</outputInteger></ns1:echoIntegerResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_010s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_010s.phpt
new file mode 100644
index 0000000..1f012ca
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_010s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 010 (soap/direct): echoInteger
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoInteger", array(new SoapParam(new soapVar(34345, XSD_INT), "inputInteger")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoInteger><inputInteger xsi:type="xsd:int">34345</inputInteger></ns1:echoInteger></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntegerResponse><outputInteger xsi:type="xsd:int">34345</outputInteger></ns1:echoIntegerResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_010w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_010w.phpt
new file mode 100644
index 0000000..b32d94f
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_010w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 010 (php/wsdl): echoInteger
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoInteger(34345);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoInteger><inputInteger xsi:type="xsd:int">34345</inputInteger></ns1:echoInteger></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntegerResponse><outputInteger xsi:type="xsd:int">34345</outputInteger></ns1:echoIntegerResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_011p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_011p.phpt
new file mode 100644
index 0000000..7a6b147
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_011p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 011 (php/direct): echoIntegerArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoIntegerArray", array(array(1,234324324,2)), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntegerArray><param0 SOAP-ENC:arrayType="xsd:int[3]" xsi:type="SOAP-ENC:Array"><item xsi:type="xsd:int">1</item><item xsi:type="xsd:int">234324324</item><item xsi:type="xsd:int">2</item></param0></ns1:echoIntegerArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntegerArrayResponse><outputIntegerArray SOAP-ENC:arrayType="xsd:int[3]" xsi:type="ns2:ArrayOfint"><item xsi:type="xsd:int">1</item><item xsi:type="xsd:int">234324324</item><item xsi:type="xsd:int">2</item></outputIntegerArray></ns1:echoIntegerArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_011s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_011s.phpt
new file mode 100644
index 0000000..f892147
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_011s.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP Interop Round2 base 011 (soap/direct): echoIntegerArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(array(
+ new SoapVar(1,XSD_INT),
+ new SoapVar(234324324,XSD_INT),
+ new SoapVar(2,XSD_INT)
+ ), SOAP_ENC_ARRAY, "ArrayOfint","http://soapinterop.org/xsd"), "inputIntegerArray");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoIntegerArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntegerArray><inputIntegerArray SOAP-ENC:arrayType="xsd:int[3]" xsi:type="ns2:ArrayOfint"><item xsi:type="xsd:int">1</item><item xsi:type="xsd:int">234324324</item><item xsi:type="xsd:int">2</item></inputIntegerArray></ns1:echoIntegerArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntegerArrayResponse><outputIntegerArray SOAP-ENC:arrayType="xsd:int[3]" xsi:type="ns2:ArrayOfint"><item xsi:type="xsd:int">1</item><item xsi:type="xsd:int">234324324</item><item xsi:type="xsd:int">2</item></outputIntegerArray></ns1:echoIntegerArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_011w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_011w.phpt
new file mode 100644
index 0000000..20686b2
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_011w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 011 (php/wsdl): echoIntegerArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoIntegerArray(array(1,234324324,2));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntegerArray><inputIntegerArray SOAP-ENC:arrayType="xsd:int[3]" xsi:type="ns2:ArrayOfint"><item xsi:type="xsd:int">1</item><item xsi:type="xsd:int">234324324</item><item xsi:type="xsd:int">2</item></inputIntegerArray></ns1:echoIntegerArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntegerArrayResponse><outputIntegerArray SOAP-ENC:arrayType="xsd:int[3]" xsi:type="ns2:ArrayOfint"><item xsi:type="xsd:int">1</item><item xsi:type="xsd:int">234324324</item><item xsi:type="xsd:int">2</item></outputIntegerArray></ns1:echoIntegerArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_012p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_012p.phpt
new file mode 100644
index 0000000..2da25b2
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_012p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 012 (php/direct): echoFloat
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoFloat", array(342.23), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloat><param0 xsi:type="xsd:float">342.23</param0></ns1:echoFloat></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloatResponse><outputFloat xsi:type="xsd:float">342.23</outputFloat></ns1:echoFloatResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_012s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_012s.phpt
new file mode 100644
index 0000000..bd62edd
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_012s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 012 (soap/direct): echoFloat
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoFloat", array(new SoapParam(new SoapVar(342.23,XSD_FLOAT),"inputFloat")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloat><inputFloat xsi:type="xsd:float">342.23</inputFloat></ns1:echoFloat></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloatResponse><outputFloat xsi:type="xsd:float">342.23</outputFloat></ns1:echoFloatResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_012w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_012w.phpt
new file mode 100644
index 0000000..05aad06
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_012w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 012 (php/wsdl): echoFloat
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoFloat(342.23);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloat><inputFloat xsi:type="xsd:float">342.23</inputFloat></ns1:echoFloat></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloatResponse><outputFloat xsi:type="xsd:float">342.23</outputFloat></ns1:echoFloatResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_013p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_013p.phpt
new file mode 100644
index 0000000..815b4df
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_013p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 013 (php/direct): echoFloatArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoFloatArray", array(array(1.3223,34.2,325.325)), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloatArray><param0 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="SOAP-ENC:Array"><item xsi:type="xsd:float">1.3223</item><item xsi:type="xsd:float">34.2</item><item xsi:type="xsd:float">325.325</item></param0></ns1:echoFloatArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloatArrayResponse><outputFloatArray SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOffloat"><item xsi:type="xsd:float">1.3223</item><item xsi:type="xsd:float">34.2</item><item xsi:type="xsd:float">325.325</item></outputFloatArray></ns1:echoFloatArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_013s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_013s.phpt
new file mode 100644
index 0000000..72124be
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_013s.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP Interop Round2 base 013 (soap/direct): echoFloatArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(array(
+ new SoapVar(1.3223, XSD_FLOAT),
+ new SoapVar(34.2, XSD_FLOAT),
+ new SoapVar(325.325, XSD_FLOAT)
+ ), SOAP_ENC_ARRAY, "ArrayOffloat","http://soapinterop.org/xsd"), "inputFloatArray");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoFloatArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloatArray><inputFloatArray SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOffloat"><item xsi:type="xsd:float">1.3223</item><item xsi:type="xsd:float">34.2</item><item xsi:type="xsd:float">325.325</item></inputFloatArray></ns1:echoFloatArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloatArrayResponse><outputFloatArray SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOffloat"><item xsi:type="xsd:float">1.3223</item><item xsi:type="xsd:float">34.2</item><item xsi:type="xsd:float">325.325</item></outputFloatArray></ns1:echoFloatArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_013w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_013w.phpt
new file mode 100644
index 0000000..e4291ab
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_013w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 013 (php/wsdl): echoFloatArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoFloatArray(array(1.3223,34.2,325.325));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloatArray><inputFloatArray SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOffloat"><item xsi:type="xsd:float">1.3223</item><item xsi:type="xsd:float">34.2</item><item xsi:type="xsd:float">325.325</item></inputFloatArray></ns1:echoFloatArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoFloatArrayResponse><outputFloatArray SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOffloat"><item xsi:type="xsd:float">1.3223</item><item xsi:type="xsd:float">34.2</item><item xsi:type="xsd:float">325.325</item></outputFloatArray></ns1:echoFloatArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_014p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_014p.phpt
new file mode 100644
index 0000000..107f953
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_014p.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round2 base 014 (php/direct): echoStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStruct", array(new SOAPStruct('arg',34,325.325)), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStruct><param0 xsi:type="SOAP-ENC:Struct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></param0></ns1:echoStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructResponse><outputStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></outputStruct></ns1:echoStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_014s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_014s.phpt
new file mode 100644
index 0000000..b15dc30
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_014s.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP Interop Round2 base 014 (soap/direct): echoStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(array(
+ new SoapVar('arg', XSD_STRING, null, null, 'varString'),
+ new SoapVar('34', XSD_INT, null, null, 'varInt'),
+ new SoapVar('325.325', XSD_FLOAT, null, null, 'varFloat')
+ ),SOAP_ENC_OBJECT,"SOAPStruct","http://soapinterop.org/xsd"), "inputStruct");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStruct", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStruct><inputStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></inputStruct></ns1:echoStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructResponse><outputStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></outputStruct></ns1:echoStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_014w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_014w.phpt
new file mode 100644
index 0000000..8c0f29f
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_014w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round2 base 014 (php/wsdl): echoStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStruct(new SOAPStruct('arg',34,325.325));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStruct><inputStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></inputStruct></ns1:echoStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructResponse><outputStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></outputStruct></ns1:echoStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_015p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_015p.phpt
new file mode 100644
index 0000000..3162c26
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_015p.phpt
@@ -0,0 +1,28 @@
+--TEST--
+SOAP Interop Round2 base 015 (php/direct): echoStructArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStructArray", array(array($struct,$struct)), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructArray><param0 SOAP-ENC:arrayType="SOAP-ENC:Struct[2]" xsi:type="SOAP-ENC:Array"><item xsi:type="SOAP-ENC:Struct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item><item xsi:type="SOAP-ENC:Struct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item></param0></ns1:echoStructArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructArrayResponse><outputStructArray SOAP-ENC:arrayType="ns2:SOAPStruct[2]" xsi:type="ns2:ArrayOfSOAPStruct"><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item></outputStructArray></ns1:echoStructArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_015s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_015s.phpt
new file mode 100644
index 0000000..47a270b
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_015s.phpt
@@ -0,0 +1,38 @@
+--TEST--
+SOAP Interop Round2 base 015 (soap/direct): echoStructArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+
+$struct = new SoapVar(array(
+ new SoapVar('arg', XSD_STRING, null, null, 'varString'),
+ new SoapVar('34', XSD_INT, null, null, 'varInt'),
+ new SoapVar('325.325', XSD_FLOAT, null, null, 'varFloat')
+ ),SOAP_ENC_OBJECT,"SOAPStruct","http://soapinterop.org/xsd");
+
+$param = new SoapParam(new SoapVar(array(
+ $struct,
+ $struct
+ ),SOAP_ENC_ARRAY,"ArrayOfSOAPStruct","http://soapinterop.org/xsd"), "inputStructArray");
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStructArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructArray><inputStructArray SOAP-ENC:arrayType="ns2:SOAPStruct[2]" xsi:type="ns2:ArrayOfSOAPStruct"><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item></inputStructArray></ns1:echoStructArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructArrayResponse><outputStructArray SOAP-ENC:arrayType="ns2:SOAPStruct[2]" xsi:type="ns2:ArrayOfSOAPStruct"><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item></outputStructArray></ns1:echoStructArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_015w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_015w.phpt
new file mode 100644
index 0000000..3b7e61d
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_015w.phpt
@@ -0,0 +1,28 @@
+--TEST--
+SOAP Interop Round2 base 015 (php/wsdl): echoStructArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStructArray(array($struct,$struct));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructArray><inputStructArray SOAP-ENC:arrayType="ns2:SOAPStruct[2]" xsi:type="ns2:ArrayOfSOAPStruct"><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item></inputStructArray></ns1:echoStructArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructArrayResponse><outputStructArray SOAP-ENC:arrayType="ns2:SOAPStruct[2]" xsi:type="ns2:ArrayOfSOAPStruct"><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item></outputStructArray></ns1:echoStructArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_016p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_016p.phpt
new file mode 100644
index 0000000..ab00416
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_016p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 016 (php/direct): echoVoid
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoVoid", array(), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVoid/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVoidResponse/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_016s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_016s.phpt
new file mode 100644
index 0000000..e64fde8
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_016s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 016 (soap/direct): echoVoid
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoVoid", array(), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVoid/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVoidResponse/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_016w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_016w.phpt
new file mode 100644
index 0000000..b3647a5
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_016w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 016 (php/wsdl): echoVoid
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoVoid();
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVoid/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVoidResponse/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_017p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_017p.phpt
new file mode 100644
index 0000000..92261b6
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_017p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 017 (php/direct): echoBase64
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoBase64", array('TmVicmFza2E='), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBase64><param0 xsi:type="xsd:string">TmVicmFza2E=</param0></ns1:echoBase64></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBase64Response><outputBase64 xsi:type="xsd:base64Binary">TmVicmFza2E=</outputBase64></ns1:echoBase64Response></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_017s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_017s.phpt
new file mode 100644
index 0000000..21b5f61
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_017s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 017 (soap/direct): echoBase64
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoBase64", array(new SoapParam(new SoapVar('TmVicmFza2E=',XSD_BASE64BINARY),"inputBase64")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBase64><inputBase64 xsi:type="xsd:base64Binary">TmVicmFza2E=</inputBase64></ns1:echoBase64></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBase64Response><outputBase64 xsi:type="xsd:base64Binary">TmVicmFza2E=</outputBase64></ns1:echoBase64Response></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_017w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_017w.phpt
new file mode 100644
index 0000000..af351b5
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_017w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 017 (php/wsdl): echoBase64
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoBase64('TmVicmFza2E=');
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBase64><inputBase64 xsi:type="xsd:base64Binary">TmVicmFza2E=</inputBase64></ns1:echoBase64></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBase64Response><outputBase64 xsi:type="xsd:base64Binary">TmVicmFza2E=</outputBase64></ns1:echoBase64Response></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_018p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_018p.phpt
new file mode 100644
index 0000000..a42b328
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_018p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 018 (php/direct): echoHexBinary
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoHexBinary", array('736F61707834'), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoHexBinary><param0 xsi:type="xsd:string">736F61707834</param0></ns1:echoHexBinary></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoHexBinaryResponse><outputHexBinary xsi:type="xsd:hexBinary">736F61707834</outputHexBinary></ns1:echoHexBinaryResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_018s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_018s.phpt
new file mode 100644
index 0000000..0d2f17c
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_018s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 018 (soap/direct): echoHexBinary
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoHexBinary", array(new SoapParam(new SoapVar('736F61707834',XSD_HEXBINARY),"inputHexBinary")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoHexBinary><inputHexBinary xsi:type="xsd:hexBinary">736F61707834</inputHexBinary></ns1:echoHexBinary></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoHexBinaryResponse><outputHexBinary xsi:type="xsd:hexBinary">736F61707834</outputHexBinary></ns1:echoHexBinaryResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_018w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_018w.phpt
new file mode 100644
index 0000000..4df9b4f
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_018w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 018 (php/wsdl): echoHexBinary
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoHexBinary('736F61707834');
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoHexBinary><inputHexBinary xsi:type="xsd:hexBinary">736F61707834</inputHexBinary></ns1:echoHexBinary></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoHexBinaryResponse><outputHexBinary xsi:type="xsd:hexBinary">736F61707834</outputHexBinary></ns1:echoHexBinaryResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_019p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_019p.phpt
new file mode 100644
index 0000000..a767301
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_019p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 019 (php/direct): echoDecimal
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoDecimal", array('12345.67890'), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDecimal><param0 xsi:type="xsd:string">12345.67890</param0></ns1:echoDecimal></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDecimalResponse><outputDecimal xsi:type="xsd:decimal">12345.67890</outputDecimal></ns1:echoDecimalResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_019s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_019s.phpt
new file mode 100644
index 0000000..56bea8b
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_019s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 019 (soap/direct): echoDecimal
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoDecimal", array(new SoapParam(new SoapVar('12345.67890',XSD_DECIMAL), "inputDecimal")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDecimal><inputDecimal xsi:type="xsd:decimal">12345.67890</inputDecimal></ns1:echoDecimal></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDecimalResponse><outputDecimal xsi:type="xsd:decimal">12345.67890</outputDecimal></ns1:echoDecimalResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_019w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_019w.phpt
new file mode 100644
index 0000000..3f56155
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_019w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 019 (php/wsdl): echoDecimal
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoDecimal('12345.67890');
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDecimal><inputDecimal xsi:type="xsd:decimal">12345.67890</inputDecimal></ns1:echoDecimal></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDecimalResponse><outputDecimal xsi:type="xsd:decimal">12345.67890</outputDecimal></ns1:echoDecimalResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_020p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_020p.phpt
new file mode 100644
index 0000000..4afe922
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_020p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 020 (php/direct): echoDate
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoDate", array('2001-05-24T17:31:41Z'), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDate><param0 xsi:type="xsd:string">2001-05-24T17:31:41Z</param0></ns1:echoDate></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDateResponse><outputDate xsi:type="xsd:dateTime">2001-05-24T17:31:41Z</outputDate></ns1:echoDateResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_020s.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_020s.phpt
new file mode 100644
index 0000000..6ced748
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_020s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 020 (soap/direct): echoDate
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoDate", array(new SoapParam(new SoapVar('2001-05-24T17:31:41Z', XSD_DATETIME), "inputDate")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDate><inputDate xsi:type="xsd:dateTime">2001-05-24T17:31:41Z</inputDate></ns1:echoDate></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDateResponse><outputDate xsi:type="xsd:dateTime">2001-05-24T17:31:41Z</outputDate></ns1:echoDateResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_020w.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_020w.phpt
new file mode 100644
index 0000000..47d3a9d
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_020w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 020 (php/wsdl): echoDate
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoDate('2001-05-24T17:31:41Z');
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDate><inputDate xsi:type="xsd:dateTime">2001-05-24T17:31:41Z</inputDate></ns1:echoDate></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoDateResponse><outputDate xsi:type="xsd:dateTime">2001-05-24T17:31:41Z</outputDate></ns1:echoDateResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/r2_base_021p.phpt b/ext/soap/tests/interop/Round2/Base/r2_base_021p.phpt
new file mode 100644
index 0000000..132cd0b
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_021p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 021 (php/direct): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoBoolean", array(true), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><param0 xsi:type="xsd:boolean">1</param0></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">1</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..fce28ed
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_021s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 021 (soap/direct): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoBoolean", array(new SoapParam(new SoapVar(true, XSD_BOOLEAN), "inputBoolean")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><inputBoolean xsi:type="xsd:boolean">1</inputBoolean></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">1</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..e2ed997
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_021w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 021 (php/wsdl): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoBoolean(true);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><inputBoolean xsi:type="xsd:boolean">1</inputBoolean></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">1</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..1aeb21d
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_022p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 022 (php/direct): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoBoolean", array(false), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><param0 xsi:type="xsd:boolean">0</param0></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">0</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..8c43f42
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_022s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 022 (soap/direct): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoBoolean", array(new SoapParam(new SoapVar(false, XSD_BOOLEAN), "inputBoolean")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><inputBoolean xsi:type="xsd:boolean">0</inputBoolean></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">0</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..62b32c4
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_022w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 022 (php/wsdl): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoBoolean(false);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><inputBoolean xsi:type="xsd:boolean">0</inputBoolean></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">0</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..885205e
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_023p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 023 (php/direct): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoBoolean", array(1), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><param0 xsi:type="xsd:int">1</param0></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">1</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..f52184a
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_023s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 023 (soap/direct): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoBoolean", array(new SoapParam(new SoapVar(1, XSD_BOOLEAN), "inputBoolean")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><inputBoolean xsi:type="xsd:boolean">1</inputBoolean></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">1</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..6603e1e
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_023w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 023 (php/wsdl): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoBoolean(1);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><inputBoolean xsi:type="xsd:boolean">1</inputBoolean></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">1</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..543486d
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_024p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 024 (php/direct): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoBoolean", array(0), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><param0 xsi:type="xsd:int">0</param0></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">0</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..dd3a352
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_024s.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 024 (soap/direct): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoBoolean", array(new SoapParam(new SoapVar(0, XSD_BOOLEAN), "inputBoolean")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><inputBoolean xsi:type="xsd:boolean">0</inputBoolean></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">0</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..359e620
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/r2_base_024w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 base 024 (php/wsdl): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_base.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoBoolean(0);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_base.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBoolean><inputBoolean xsi:type="xsd:boolean">0</inputBoolean></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBooleanResponse><outputBoolean xsi:type="xsd:boolean">0</outputBoolean></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/Base/round2_base.inc b/ext/soap/tests/interop/Round2/Base/round2_base.inc
new file mode 100644
index 0000000..b197f5b
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/round2_base.inc
@@ -0,0 +1,80 @@
+<?php
+class SOAP_Interop_Base {
+
+ function echoString($inputString)
+ {
+ return $inputString;
+ }
+
+ function echoStringArray($inputStringArray)
+ {
+ return $inputStringArray;
+ }
+
+
+ function echoInteger($inputInteger)
+ {
+ return $inputInteger;
+ }
+
+ function echoIntegerArray($inputIntegerArray)
+ {
+ return $inputIntegerArray;
+ }
+
+ function echoFloat($inputFloat)
+ {
+ return $inputFloat;
+ }
+
+ function echoFloatArray($inputFloatArray)
+ {
+ return $inputFloatArray;
+ }
+
+ function echoStruct($inputStruct)
+ {
+ return $inputStruct;
+ }
+
+ function echoStructArray($inputStructArray)
+ {
+ return $inputStructArray;
+ }
+
+ function echoVoid()
+ {
+ return NULL;
+ }
+
+ function echoBase64($b_encoded)
+ {
+ return $b_encoded;
+ }
+
+ function echoDate($timeInstant)
+ {
+ return $timeInstant;
+ }
+
+ function echoHexBinary($hb)
+ {
+ return $hb;
+ }
+
+ function echoDecimal($dec)
+ {
+ return $dec;
+ }
+
+ function echoBoolean($boolean)
+ {
+ return $boolean;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round2_base.wsdl");
+$server->setClass("SOAP_Interop_Base");
+$server->handle();
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round2/Base/round2_base.wsdl b/ext/soap/tests/interop/Round2/Base/round2_base.wsdl
new file mode 100644
index 0000000..c7c7031
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/round2_base.wsdl
@@ -0,0 +1,332 @@
+<?xml version="1.0"?>
+<definitions name="InteropTest"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:tns="http://soapinterop.org/"
+ xmlns:s="http://soapinterop.org/xsd"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ targetNamespace="http://soapinterop.org/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
+ <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
+ <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
+ <xsd:complexType name="ArrayOfstring">
+ <xsd:complexContent>
+ <xsd:restriction base="SOAP-ENC:Array">
+ <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ArrayOfint">
+ <xsd:complexContent>
+ <xsd:restriction base="SOAP-ENC:Array">
+ <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="ArrayOffloat">
+ <xsd:complexContent>
+ <xsd:restriction base="SOAP-ENC:Array">
+ <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="SOAPStruct">
+ <xsd:all>
+ <xsd:element name="varString" type="string"/>
+ <xsd:element name="varInt" type="int"/>
+ <xsd:element name="varFloat" type="float"/>
+ </xsd:all>
+ </xsd:complexType>
+ <xsd:complexType name="ArrayOfSOAPStruct">
+ <xsd:complexContent>
+ <xsd:restriction base="SOAP-ENC:Array">
+ <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </schema>
+ </types>
+
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string" />
+ </message>
+ <message name="echoStringResponse">
+ <part name="outputString" type="xsd:string" />
+ </message>
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="s:ArrayOfstring" />
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="outputStringArray" type="s:ArrayOfstring" />
+ </message>
+ <message name="echoIntegerRequest">
+ <part name="inputInteger" type="xsd:int" />
+ </message>
+ <message name="echoIntegerResponse">
+ <part name="outputInteger" type="xsd:int" />
+ </message>
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="s:ArrayOfint" />
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="outputIntegerArray" type="s:ArrayOfint" />
+ </message>
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float" />
+ </message>
+ <message name="echoFloatResponse">
+ <part name="outputFloat" type="xsd:float" />
+ </message>
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="s:ArrayOffloat" />
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="outputFloatArray" type="s:ArrayOffloat" />
+ </message>
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="s:SOAPStruct" />
+ </message>
+ <message name="echoStructResponse">
+ <part name="outputStruct" type="s:SOAPStruct" />
+ </message>
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="s:ArrayOfSOAPStruct" />
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="outputStructArray" type="s:ArrayOfSOAPStruct" />
+ </message>
+ <message name="echoVoidRequest">
+ </message>
+ <message name="echoVoidResponse">
+ </message>
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary" />
+ </message>
+ <message name="echoBase64Response">
+ <part name="outputBase64" type="xsd:base64Binary" />
+ </message>
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime" />
+ </message>
+ <message name="echoDateResponse">
+ <part name="outputDate" type="xsd:dateTime" />
+ </message>
+ <message name="echoHexBinaryRequest">
+ <part name="inputHexBinary" type="xsd:hexBinary" />
+ </message>
+ <message name="echoHexBinaryResponse">
+ <part name="outputHexBinary" type="xsd:hexBinary" />
+ </message>
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal" />
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="outputDecimal" type="xsd:decimal" />
+ </message>
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean" />
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="outputBoolean" type="xsd:boolean" />
+ </message>
+
+ <portType name="InteropTestPortType">
+ <operation name="echoString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoInteger">
+ <input message="tns:echoIntegerRequest"/>
+ <output message="tns:echoIntegerResponse"/>
+ </operation>
+ <operation name="echoIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+ <operation name="echoFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+ <operation name="echoFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+ <operation name="echoStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+ <operation name="echoStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ <operation name="echoBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+ <operation name="echoDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+ <operation name="echoHexBinary">
+ <input message="tns:echoHexBinaryRequest"/>
+ <output message="tns:echoHexBinaryResponse"/>
+ </operation>
+ <operation name="echoDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+ <operation name="echoBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestBinding" type="tns:InteropTestPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoInteger">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoIntegerArray">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloat">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoFloatArray">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBase64">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDate">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoHexBinary">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoDecimal">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoBoolean">
+ <soap:operation soapAction="http://" style="rpc"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="InteropTest">
+ <port name="InteropTestPort" binding="tns:InteropTestBinding">
+ <soap:address location="round2_base.inc"/>
+ </port>
+ </service>
+
+</definitions>
diff --git a/ext/soap/tests/interop/Round2/Base/skipif.inc b/ext/soap/tests/interop/Round2/Base/skipif.inc
new file mode 100644
index 0000000..fa8574e
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/Base/skipif.inc
@@ -0,0 +1,3 @@
+<?php
+ if (!extension_loaded('soap')) die('skip soap extension not available');
+?>
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_001p.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_001p.phpt
new file mode 100644
index 0000000..5047a99
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_001p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 groupB 001 (php/direct): echoStructAsSimpleTypes
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStructAsSimpleTypes", array((object)array('varString'=>"arg",'varInt'=>34,'varFloat'=>34.345)), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructAsSimpleTypes><param0 xsi:type="SOAP-ENC:Struct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">34.345</varFloat></param0></ns1:echoStructAsSimpleTypes></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructAsSimpleTypesResponse><outputString xsi:type="xsd:string">arg</outputString><outputInteger xsi:type="xsd:int">34</outputInteger><outputFloat xsi:type="xsd:float">34.345</outputFloat></ns1:echoStructAsSimpleTypesResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_001s.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_001s.phpt
new file mode 100644
index 0000000..9b66707
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_001s.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP Interop Round2 groupB 001 (soap/direct): echoStructAsSimpleTypes
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(array(
+ new SoapVar("arg", XSD_STRING, null, null, "varString"),
+ new SoapVar(34, XSD_INT, null, null, "varInt"),
+ new SoapVar(34.345, XSD_FLOAT, null, null, "varFloat")
+ ), SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd"), "inputStruct");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoStructAsSimpleTypes", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructAsSimpleTypes><inputStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">34.345</varFloat></inputStruct></ns1:echoStructAsSimpleTypes></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructAsSimpleTypesResponse><outputString xsi:type="xsd:string">arg</outputString><outputInteger xsi:type="xsd:int">34</outputInteger><outputFloat xsi:type="xsd:float">34.345</outputFloat></ns1:echoStructAsSimpleTypesResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_001w.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_001w.phpt
new file mode 100644
index 0000000..8fd4333
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 groupB 001 (php/wsdl): echoStructAsSimpleTypes
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_groupB.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStructAsSimpleTypes((object)array('varString'=>"arg",'varInt'=>34,'varFloat'=>34.345));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructAsSimpleTypes><inputStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">34.345</varFloat></inputStruct></ns1:echoStructAsSimpleTypes></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructAsSimpleTypesResponse><outputString xsi:type="xsd:string">arg</outputString><outputInteger xsi:type="xsd:int">34</outputInteger><outputFloat xsi:type="xsd:float">34.345</outputFloat></ns1:echoStructAsSimpleTypesResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_002p.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_002p.phpt
new file mode 100644
index 0000000..6ea475c
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_002p.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 groupB 002 (php/direct): echoSimpleTypesAsStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoSimpleTypesAsStruct", array("arg",34,34.345), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoSimpleTypesAsStruct><param0 xsi:type="xsd:string">arg</param0><param1 xsi:type="xsd:int">34</param1><param2 xsi:type="xsd:float">34.345</param2></ns1:echoSimpleTypesAsStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoSimpleTypesAsStructResponse><return xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">34.345</varFloat></return></ns1:echoSimpleTypesAsStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_002s.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_002s.phpt
new file mode 100644
index 0000000..3fcf6de
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_002s.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SOAP Interop Round2 groupB 002 (soap/direct): echoSimpleTypesAsStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoSimpleTypesAsStruct", array(
+ new SoapParam(new SoapVar("arg",XSD_STRING), "inputString"),
+ new SoapParam(new SoapVar(34,XSD_INT), "inputInteger"),
+ new SoapParam(new SoapVar(34.345,XSD_FLOAT), "inputFloat")), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoSimpleTypesAsStruct><inputString xsi:type="xsd:string">arg</inputString><inputInteger xsi:type="xsd:int">34</inputInteger><inputFloat xsi:type="xsd:float">34.345</inputFloat></ns1:echoSimpleTypesAsStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoSimpleTypesAsStructResponse><return xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">34.345</varFloat></return></ns1:echoSimpleTypesAsStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_002w.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_002w.phpt
new file mode 100644
index 0000000..97fece7
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_002w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round2 groupB 002 (php/wsdl): echoSimpleTypesAsStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round2_groupB.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoSimpleTypesAsStruct("arg",34,34.345);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoSimpleTypesAsStruct><inputString xsi:type="xsd:string">arg</inputString><inputInteger xsi:type="xsd:int">34</inputInteger><inputFloat xsi:type="xsd:float">34.345</inputFloat></ns1:echoSimpleTypesAsStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoSimpleTypesAsStructResponse><return xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">34.345</varFloat></return></ns1:echoSimpleTypesAsStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_003p.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_003p.phpt
new file mode 100644
index 0000000..80dff6d
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_003p.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SOAP Interop Round2 groupB 003 (php/direct): echo2DStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = array(
+ array('row0col0', 'row0col1', 'row0col2'),
+ array('row1col0', 'row1col1', 'row1col2'));
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echo2DStringArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echo2DStringArray><param0 SOAP-ENC:arrayType="SOAP-ENC:Array[2]" xsi:type="SOAP-ENC:Array"><item SOAP-ENC:arrayType="xsd:string[3]" xsi:type="SOAP-ENC:Array"><item xsi:type="xsd:string">row0col0</item><item xsi:type="xsd:string">row0col1</item><item xsi:type="xsd:string">row0col2</item></item><item SOAP-ENC:arrayType="xsd:string[3]" xsi:type="SOAP-ENC:Array"><item xsi:type="xsd:string">row1col0</item><item xsi:type="xsd:string">row1col1</item><item xsi:type="xsd:string">row1col2</item></item></param0></ns1:echo2DStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echo2DStringArrayResponse><return SOAP-ENC:arrayType="xsd:string[2,3]" xsi:type="ns2:ArrayOfString2D"><item xsi:type="xsd:string">row0col0</item><item xsi:type="xsd:string">row0col1</item><item xsi:type="xsd:string">row0col2</item><item xsi:type="xsd:string">row1col0</item><item xsi:type="xsd:string">row1col1</item><item xsi:type="xsd:string">row1col2</item></return></ns1:echo2DStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_003s.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_003s.phpt
new file mode 100644
index 0000000..5161144
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_003s.phpt
@@ -0,0 +1,31 @@
+--TEST--
+SOAP Interop Round2 groupB 003 (soap/direct): echo2DStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(array(
+ new SoapVar(array(
+ new SoapVar('row0col0', XSD_STRING),
+ new SoapVar('row0col1', XSD_STRING),
+ new SoapVar('row0col2', XSD_STRING)
+ ), SOAP_ENC_ARRAY),
+ new SoapVar(array(
+ new SoapVar('row1col0', XSD_STRING),
+ new SoapVar('row1col1', XSD_STRING),
+ new SoapVar('row1col2', XSD_STRING)
+ ), SOAP_ENC_ARRAY)
+ ), SOAP_ENC_ARRAY, "ArrayOfString2D", "http://soapinterop.org/xsd"),"input2DStringArray");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echo2DStringArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echo2DStringArray><input2DStringArray SOAP-ENC:arrayType="SOAP-ENC:Array[2]" xsi:type="ns2:ArrayOfString2D"><item SOAP-ENC:arrayType="xsd:string[3]" xsi:type="SOAP-ENC:Array"><item xsi:type="xsd:string">row0col0</item><item xsi:type="xsd:string">row0col1</item><item xsi:type="xsd:string">row0col2</item></item><item SOAP-ENC:arrayType="xsd:string[3]" xsi:type="SOAP-ENC:Array"><item xsi:type="xsd:string">row1col0</item><item xsi:type="xsd:string">row1col1</item><item xsi:type="xsd:string">row1col2</item></item></input2DStringArray></ns1:echo2DStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echo2DStringArrayResponse><return SOAP-ENC:arrayType="xsd:string[2,3]" xsi:type="ns2:ArrayOfString2D"><item xsi:type="xsd:string">row0col0</item><item xsi:type="xsd:string">row0col1</item><item xsi:type="xsd:string">row0col2</item><item xsi:type="xsd:string">row1col0</item><item xsi:type="xsd:string">row1col1</item><item xsi:type="xsd:string">row1col2</item></return></ns1:echo2DStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_003w.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_003w.phpt
new file mode 100644
index 0000000..5d4ad0c
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_003w.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SOAP Interop Round2 groupB 003 (php/wsdl): echo2DStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = array(
+ array('row0col0', 'row0col1', 'row0col2'),
+ array('row1col0', 'row1col1', 'row1col2'));
+$client = new SoapClient(dirname(__FILE__)."/round2_groupB.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echo2DStringArray($param);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echo2DStringArray><input2DStringArray SOAP-ENC:arrayType="xsd:string[2,3]" xsi:type="ns2:ArrayOfString2D"><item xsi:type="xsd:string">row0col0</item><item xsi:type="xsd:string">row0col1</item><item xsi:type="xsd:string">row0col2</item><item xsi:type="xsd:string">row1col0</item><item xsi:type="xsd:string">row1col1</item><item xsi:type="xsd:string">row1col2</item></input2DStringArray></ns1:echo2DStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echo2DStringArrayResponse><return SOAP-ENC:arrayType="xsd:string[2,3]" xsi:type="ns2:ArrayOfString2D"><item xsi:type="xsd:string">row0col0</item><item xsi:type="xsd:string">row0col1</item><item xsi:type="xsd:string">row0col2</item><item xsi:type="xsd:string">row1col0</item><item xsi:type="xsd:string">row1col1</item><item xsi:type="xsd:string">row1col2</item></return></ns1:echo2DStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_004p.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_004p.phpt
new file mode 100644
index 0000000..fbeb9af
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_004p.phpt
@@ -0,0 +1,29 @@
+--TEST--
+SOAP Interop Round2 groupB 004 (php/direct): echoNestedStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = (object)array(
+ 'varString' => "arg",
+ 'varInt' => 34,
+ 'varFloat' => 123.45,
+ 'varStruct' => (object)array(
+ 'varString' => "arg2",
+ 'varInt' => 342,
+ 'varFloat' => 123.452,
+ ));
+
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoNestedStruct", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedStruct><param0 xsi:type="SOAP-ENC:Struct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">123.45</varFloat><varStruct xsi:type="SOAP-ENC:Struct"><varString xsi:type="xsd:string">arg2</varString><varInt xsi:type="xsd:int">342</varInt><varFloat xsi:type="xsd:float">123.452</varFloat></varStruct></param0></ns1:echoNestedStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedStructResponse><return xsi:type="ns2:SOAPStructStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">123.45</varFloat><varStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg2</varString><varInt xsi:type="xsd:int">342</varInt><varFloat xsi:type="xsd:float">123.452</varFloat></varStruct></return></ns1:echoNestedStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_004s.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_004s.phpt
new file mode 100644
index 0000000..ad18c2b
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_004s.phpt
@@ -0,0 +1,29 @@
+--TEST--
+SOAP Interop Round2 groupB 004 (soap/direct): echoNestedStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(array(
+ new SoapVar("arg", XSD_STRING, null, null, "varString"),
+ new SoapVar(34, XSD_INT, null, null, "varInt"),
+ new SoapVar(123.45, XSD_FLOAT, null, null, "varFloat"),
+ new SoapVar(array(
+ new SoapVar("arg2", XSD_STRING, null, null, "varString"),
+ new SoapVar(342, XSD_INT, null, null, "varInt"),
+ new SoapVar(123.452, XSD_FLOAT, null, null, "varFloat")
+ ), SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd", 'varStruct')
+ ), SOAP_ENC_OBJECT, "SOAPStructStruct", "http://soapinterop.org/xsd"), "inputStruct");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoNestedStruct", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedStruct><inputStruct xsi:type="ns2:SOAPStructStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">123.45</varFloat><varStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg2</varString><varInt xsi:type="xsd:int">342</varInt><varFloat xsi:type="xsd:float">123.452</varFloat></varStruct></inputStruct></ns1:echoNestedStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedStructResponse><return xsi:type="ns2:SOAPStructStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">123.45</varFloat><varStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg2</varString><varInt xsi:type="xsd:int">342</varInt><varFloat xsi:type="xsd:float">123.452</varFloat></varStruct></return></ns1:echoNestedStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_004w.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_004w.phpt
new file mode 100644
index 0000000..4bbc51f
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_004w.phpt
@@ -0,0 +1,29 @@
+--TEST--
+SOAP Interop Round2 groupB 004 (php/wsdl): echoNestedStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = (object)array(
+ 'varString' => "arg",
+ 'varInt' => 34,
+ 'varFloat' => 123.45,
+ 'varStruct' => (object)array(
+ 'varString' => "arg2",
+ 'varInt' => 342,
+ 'varFloat' => 123.452,
+ ));
+
+$client = new SoapClient(dirname(__FILE__)."/round2_groupB.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoNestedStruct($param);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedStruct><inputStruct xsi:type="ns2:SOAPStructStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">123.45</varFloat><varStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg2</varString><varInt xsi:type="xsd:int">342</varInt><varFloat xsi:type="xsd:float">123.452</varFloat></varStruct></inputStruct></ns1:echoNestedStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedStructResponse><return xsi:type="ns2:SOAPStructStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">123.45</varFloat><varStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg2</varString><varInt xsi:type="xsd:int">342</varInt><varFloat xsi:type="xsd:float">123.452</varFloat></varStruct></return></ns1:echoNestedStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_005p.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_005p.phpt
new file mode 100644
index 0000000..6129838
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_005p.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP Interop Round2 groupB 005 (php/direct): echoNestedArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = (object)array(
+ 'varString'=>'arg',
+ 'varInt'=>34,
+ 'varFloat'=>325.325,
+ 'varArray' => array('red','blue','green'));
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoNestedArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedArray><param0 xsi:type="SOAP-ENC:Struct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat><varArray SOAP-ENC:arrayType="xsd:string[3]" xsi:type="SOAP-ENC:Array"><item xsi:type="xsd:string">red</item><item xsi:type="xsd:string">blue</item><item xsi:type="xsd:string">green</item></varArray></param0></ns1:echoNestedArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedArrayResponse><return xsi:type="ns2:SOAPArrayStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat><varArray SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">red</item><item xsi:type="xsd:string">blue</item><item xsi:type="xsd:string">green</item></varArray></return></ns1:echoNestedArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_005s.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_005s.phpt
new file mode 100644
index 0000000..fcb5990
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_005s.phpt
@@ -0,0 +1,29 @@
+--TEST--
+SOAP Interop Round2 groupB 005 (soap/direct): echoNestedArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = new SoapParam(new SoapVar(array(
+ new SoapVar("arg", XSD_STRING, null, null, "varString"),
+ new SoapVar(34, XSD_INT, null, null, "varInt"),
+ new SoapVar(325.325, XSD_FLOAT, null, null, "varFloat"),
+ new SoapVar(array(
+ new SoapVar("red", XSD_STRING),
+ new SoapVar("blue", XSD_STRING),
+ new SoapVar("green", XSD_STRING),
+ ), SOAP_ENC_ARRAY, "ArrayOfString", "http://soapinterop.org/xsd", 'varArray')
+ ), SOAP_ENC_OBJECT, "SOAPArrayStruct", "http://soapinterop.org/xsd"), "inputStruct");
+$client = new SoapClient(NULL,array("location"=>"test://","uri"=>"http://soapinterop.org/","trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoNestedArray", array($param), array("soapaction"=>"http://soapinterop.org/","uri"=>"http://soapinterop.org/"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedArray><inputStruct xsi:type="ns2:SOAPArrayStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat><varArray SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfString"><item xsi:type="xsd:string">red</item><item xsi:type="xsd:string">blue</item><item xsi:type="xsd:string">green</item></varArray></inputStruct></ns1:echoNestedArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedArrayResponse><return xsi:type="ns2:SOAPArrayStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat><varArray SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">red</item><item xsi:type="xsd:string">blue</item><item xsi:type="xsd:string">green</item></varArray></return></ns1:echoNestedArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/r2_groupB_005w.phpt b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_005w.phpt
new file mode 100644
index 0000000..206fca8
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/r2_groupB_005w.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP Interop Round2 groupB 005 (php/wsdl): echoNestedArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$param = (object)array(
+ 'varString'=>'arg',
+ 'varInt'=>34,
+ 'varFloat'=>325.325,
+ 'varArray' => array('red','blue','green'));
+$client = new SoapClient(dirname(__FILE__)."/round2_groupB.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoNestedArray($param);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round2_groupB.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedArray><inputStruct xsi:type="ns2:SOAPArrayStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat><varArray SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">red</item><item xsi:type="xsd:string">blue</item><item xsi:type="xsd:string">green</item></varArray></inputStruct></ns1:echoNestedArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoNestedArrayResponse><return xsi:type="ns2:SOAPArrayStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat><varArray SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">red</item><item xsi:type="xsd:string">blue</item><item xsi:type="xsd:string">green</item></varArray></return></ns1:echoNestedArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round2/GroupB/round2_groupB.inc b/ext/soap/tests/interop/Round2/GroupB/round2_groupB.inc
new file mode 100644
index 0000000..ef00e3b
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/round2_groupB.inc
@@ -0,0 +1,37 @@
+<?php
+class SOAP_Interop_GroupB {
+
+ function echoStructAsSimpleTypes ($struct)
+ {
+ return array('outputString' => $struct->varString,
+ 'outputInteger' => $struct->varInt,
+ 'outputFloat' => $struct->varFloat);
+ }
+
+ function echoSimpleTypesAsStruct($string, $int, $float)
+ {
+ return (object)array("varString" => $string,
+ "varInt" => $int,
+ "varFloat" => $float);
+ }
+
+ function echoNestedStruct($struct)
+ {
+ return $struct;
+ }
+
+ function echo2DStringArray($ary)
+ {
+ return $ary;
+ }
+
+ function echoNestedArray($ary)
+ {
+ return $ary;
+ }
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round2_groupB.wsdl");
+$server->setClass("SOAP_Interop_GroupB");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round2/GroupB/round2_groupB.wsdl b/ext/soap/tests/interop/Round2/GroupB/round2_groupB.wsdl
new file mode 100644
index 0000000..8fc2a1b
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/round2_groupB.wsdl
@@ -0,0 +1,192 @@
+<?xml version="1.0"?>
+<definitions name="InteropTest"
+ targetNamespace="http://soapinterop.org/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:tns="http://soapinterop.org/"
+ xmlns:s="http://soapinterop.org/xsd"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://soapinterop.org/xsd">
+
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
+
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="string" nillable="true"/>
+ <element name="varInt" type="int" nillable="true"/>
+ <element name="varFloat" type="float" nillable="true"/>
+ </all>
+ </complexType>
+ <complexType name="SOAPStructStruct">
+ <all>
+ <element name="varString" type="string" nillable="true"/>
+ <element name="varInt" type="int" nillable="true"/>
+ <element name="varFloat" type="float" nillable="true"/>
+ <element name="varStruct" type="s:SOAPStruct"/>
+ </all>
+ </complexType>
+ <complexType name="SOAPArrayStruct">
+ <all>
+ <element name="varString" type="string" nillable="true"/>
+ <element name="varInt" type="int" nillable="true"/>
+ <element name="varFloat" type="float" nillable="true"/>
+ <element name="varArray" type="s:ArrayOfstring"/>
+ </all>
+ </complexType>
+ <complexType name="ArrayOfString2D">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[,]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoStructAsSimpleTypesRequest">
+ <part name="inputStruct" type="s:SOAPStruct"/>
+ </message>
+ <message name="echoStructAsSimpleTypesResponse">
+ <part name="outputString" type="xsd:string"/>
+ <part name="outputInteger" type="xsd:int"/>
+ <part name="outputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoSimpleTypesAsStructRequest">
+ <part name="inputString" type="xsd:string"/>
+ <part name="inputInteger" type="xsd:int"/>
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoSimpleTypesAsStructResponse">
+ <part name="return" type="s:SOAPStruct"/>
+ </message>
+ <message name="echo2DStringArrayRequest">
+ <part name="input2DStringArray" type="s:ArrayOfString2D"/>
+ </message>
+ <message name="echo2DStringArrayResponse">
+ <part name="return" type="s:ArrayOfString2D"/>
+ </message>
+ <message name="echoNestedStructRequest">
+ <part name="inputStruct" type="s:SOAPStructStruct"/>
+ </message>
+ <message name="echoNestedStructResponse">
+ <part name="return" type="s:SOAPStructStruct"/>
+ </message>
+ <message name="echoNestedArrayRequest">
+ <part name="inputStruct" type="s:SOAPArrayStruct"/>
+ </message>
+ <message name="echoNestedArrayResponse">
+ <part name="return" type="s:SOAPArrayStruct"/>
+ </message>
+
+ <portType name="InteropTestPortTypeB">
+ <operation name="echoStructAsSimpleTypes" parameterOrder="inputStruct outputString outputInteger outputFloat">
+ <input message="tns:echoStructAsSimpleTypesRequest" name="echoStructAsSimpleTypes"/>
+ <output message="tns:echoStructAsSimpleTypesResponse" name="echoStructAsSimpleTypesResponse"/>
+ </operation>
+ <operation name="echoSimpleTypesAsStruct" parameterOrder="inputString inputInteger inputFloat">
+ <input message="tns:echoSimpleTypesAsStructRequest" name="echoSimpleTypesAsStruct"/>
+ <output message="tns:echoSimpleTypesAsStructResponse" name="echoSimpleTypesAsStructResponse"/>
+ </operation>
+ <operation name="echo2DStringArray" parameterOrder="input2DStringArray">
+ <input message="tns:echo2DStringArrayRequest" name="echo2DStringArray"/>
+ <output message="tns:echo2DStringArrayResponse" name="echo2DStringArrayResponse"/>
+ </operation>
+ <operation name="echoNestedStruct" parameterOrder="inputStruct">
+ <input message="tns:echoNestedStructRequest" name="echoNestedStruct"/>
+ <output message="tns:echoNestedStructResponse" name="echoNestedStructResponse"/>
+ </operation>
+ <operation name="echoNestedArray" parameterOrder="inputStruct">
+ <input message="tns:echoNestedArrayRequest" name="echoNestedArray"/>
+ <output message="tns:echoNestedArrayResponse" name="echoNestedArrayResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="InteropTestSoapBindingB" type="tns:InteropTestPortTypeB">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoStructAsSimpleTypes">
+ <soap:operation soapAction="http://soapinterop.org/"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoSimpleTypesAsStruct">
+ <soap:operation soapAction="http://soapinterop.org/"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echo2DStringArray">
+ <soap:operation soapAction="http://soapinterop.org/"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoNestedStruct">
+ <soap:operation soapAction="http://soapinterop.org/"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoNestedArray">
+ <soap:operation soapAction="http://soapinterop.org/"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="interopLabB">
+ <port name="interopTestPortB" binding="tns:InteropTestSoapBindingB">
+ <soap:address location="round2_groupB.inc"/>
+ </port>
+ </service>
+
+</definitions>
diff --git a/ext/soap/tests/interop/Round2/GroupB/skipif.inc b/ext/soap/tests/interop/Round2/GroupB/skipif.inc
new file mode 100644
index 0000000..fa8574e
--- /dev/null
+++ b/ext/soap/tests/interop/Round2/GroupB/skipif.inc
@@ -0,0 +1,3 @@
+<?php
+ if (!extension_loaded('soap')) die('skip soap extension not available');
+?>
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
new file mode 100644
index 0000000..3a047a9
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_001w.phpt
@@ -0,0 +1,28 @@
+--TEST--
+SOAP Interop Round3 GroupD Compound1 001 (php/wsdl): echoPerson
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class Person {
+ function Person($a=NULL, $i=NULL, $n=NULL, $m=NULL) {
+ $this->Age = $a;
+ $this->ID = $i;
+ $this->Name = $n;
+ $this->Male = $m;
+ }
+}
+$person = new Person(32,12345,'Shane',TRUE);
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_compound1.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoPerson($person);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_compound1.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:x_Person Name="Shane" Male="1"><ns1:Age>32</ns1:Age><ns1:ID>12345</ns1:ID></ns1:x_Person></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:result_Person Name="Shane" Male="1"><ns1:Age>32</ns1:Age><ns1:ID>12345</ns1:ID></ns1:result_Person></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_002w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_002w.phpt
new file mode 100644
index 0000000..ab9a44a
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_002w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD Compound1 002 (php/wsdl): echoDocument
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_compound1.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoDocument("Test Document Here");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_compound1.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:x_Document>Test Document Here</ns1:x_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:result_Document>Test Document Here</ns1:result_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.diff b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.diff
new file mode 100644
index 0000000..7e7e6cf
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.diff
@@ -0,0 +1,4 @@
+002+ <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:x_Document ID="1">Test Document Here</ns1:x_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+002- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:x_Document ns1:ID="1">Test Document Here</ns1:x_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+004+ <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:result_Document ID="1">Test Document Here</ns1:result_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+004- <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:result_Document ns1:ID="1">Test Document Here</ns1:result_Document></SOAP-ENV:Body></SOAP-ENV:Envelope> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.exp b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.exp
new file mode 100644
index 0000000..d832c04
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.exp
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:x_Document ns1:ID="1">Test Document Here</ns1:x_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:result_Document ns1:ID="1">Test Document Here</ns1:result_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.log b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.log
new file mode 100644
index 0000000..6ae8422
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.log
@@ -0,0 +1,14 @@
+
+---- EXPECTED OUTPUT
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:x_Document ns1:ID="1">Test Document Here</ns1:x_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:result_Document ns1:ID="1">Test Document Here</ns1:result_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
+---- ACTUAL OUTPUT
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:x_Document ID="1">Test Document Here</ns1:x_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:result_Document ID="1">Test Document Here</ns1:result_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
+---- FAILED
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.out b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.out
new file mode 100644
index 0000000..798b0fe
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.out
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:x_Document ID="1">Test Document Here</ns1:x_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:result_Document ID="1">Test Document Here</ns1:result_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.php b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.php
new file mode 100644
index 0000000..d414a5a
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.php
@@ -0,0 +1,8 @@
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_compound1.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoDocument((object)array("_"=>"Test Document Here","ID"=>1));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_compound1.inc");
+echo "ok\n";
+?>
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.phpt
new file mode 100644
index 0000000..a3e7ff0
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound1_003w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD Compound1 003 (php/wsdl): echoDocument
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_compound1.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoDocument((object)array("_"=>"Test Document Here","ID"=>1));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_compound1.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:x_Document ns1:ID="1">Test Document Here</ns1:x_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:result_Document ns1:ID="1">Test Document Here</ns1:result_Document></SOAP-ENV:Body></SOAP-ENV:Envelope>
+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
new file mode 100644
index 0000000..ee74a96
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_compound2_001w.phpt
@@ -0,0 +1,37 @@
+--TEST--
+SOAP Interop Round3 GroupD Compound2 001 (php/wsdl): echoEmployee
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class Person {
+ function Person($a=NULL, $i=NULL, $n=NULL, $m=NULL) {
+ $this->Age = $a;
+ $this->ID = $i;
+ $this->Name = $n;
+ $this->Male = $m;
+ }
+}
+class Employee {
+ function Employee($person=NULL,$id=NULL,$salary=NULL) {
+ $this->person = $person;
+ $this->ID = $id;
+ $this->salary = $salary;
+ }
+}
+$person = new Person(32,12345,'Shane',TRUE);
+$employee = new Employee($person,12345,1000000.00);
+
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_compound2.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoEmployee($employee);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_compound2.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/person" xmlns:ns2="http://soapinterop.org/employee"><SOAP-ENV:Body><ns2:x_Employee><ns2:person><ns1:Name>Shane</ns1:Name><ns1:Male>1</ns1:Male></ns2:person><ns2:salary>1000000</ns2:salary><ns2:ID>12345</ns2:ID></ns2:x_Employee></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/person" xmlns:ns2="http://soapinterop.org/employee"><SOAP-ENV:Body><ns2:result_Employee><ns2:person><ns1:Name>Shane</ns1:Name><ns1:Male>1</ns1:Male></ns2:person><ns2:salary>1000000</ns2:salary><ns2:ID>12345</ns2:ID></ns2:result_Employee></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_001w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_001w.phpt
new file mode 100644
index 0000000..ed9fb50
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD Doc Lit 001 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString("Hello World");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringParam>Hello World</ns1:echoStringParam></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringReturn>Hello World</ns1:echoStringReturn></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_002w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_002w.phpt
new file mode 100644
index 0000000..ec00544
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_002w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD Doc Lit 002 (php/wsdl): echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringArray(array("one","two","three"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringArrayParam><ns1:string>one</ns1:string><ns1:string>two</ns1:string><ns1:string>three</ns1:string></ns1:echoStringArrayParam></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringArrayReturn><ns1:string>one</ns1:string><ns1:string>two</ns1:string><ns1:string>three</ns1:string></ns1:echoStringArrayReturn></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_003w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_003w.phpt
new file mode 100644
index 0000000..36b26ce
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_003w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round3 GroupD Doc Lit 003 (php/wsdl): echoStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStruct($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStructParam><ns1:varFloat>325.325</ns1:varFloat><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString></ns1:echoStructParam></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStructReturn><ns1:varFloat>325.325</ns1:varFloat><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString></ns1:echoStructReturn></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_004w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_004w.phpt
new file mode 100644
index 0000000..ecd6bf0
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclit_004w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD Doc Lit 004 (php/wsdl): echoVoid
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoVoid();
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body/></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body/></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_001w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_001w.phpt
new file mode 100644
index 0000000..fa5269a
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD Doc Lit Parameters 001 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_doclitparams.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString(array("param0"=>"Hello World"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_doclitparams.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoString><ns1:param0>Hello World</ns1:param0></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringResponse><ns1:return>Hello World</ns1:return></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_002w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_002w.phpt
new file mode 100644
index 0000000..be1b51b
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_002w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD Doc Lit Parameters 002 (php/wsdl): echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_doclitparams.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringArray(array("param0"=>array("one","two","three")));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_doclitparams.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringArray><ns1:param0><ns1:string>one</ns1:string><ns1:string>two</ns1:string><ns1:string>three</ns1:string></ns1:param0></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringArrayResponse><ns1:return><ns1:string>one</ns1:string><ns1:string>two</ns1:string><ns1:string>three</ns1:string></ns1:return></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_003w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_003w.phpt
new file mode 100644
index 0000000..da94ced
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_003w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round3 GroupD Doc Lit Parameters 003 (php/wsdl): echoStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_doclitparams.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStruct(array("param0"=>$struct));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_doclitparams.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStruct><ns1:param0><ns1:varFloat>325.325</ns1:varFloat><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString></ns1:param0></ns1:echoStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStructResponse><ns1:return><ns1:varFloat>325.325</ns1:varFloat><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString></ns1:return></ns1:echoStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_004w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_004w.phpt
new file mode 100644
index 0000000..fcad376
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_doclitparams_004w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD Doc Lit Parameters 004 (php/wsdl): echoVoid
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_doclitparams.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoVoid();
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_doclitparams.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoVoid/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoVoidResponse/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_emptysa_001w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_emptysa_001w.phpt
new file mode 100644
index 0000000..1f74fe6
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_emptysa_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD EmptySA 001 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_emptysa.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString("Hello World");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_emptysa.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><a xsi:type="xsd:string">Hello World</a></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><Result xsi:type="xsd:string">Hello World</Result></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import1_001w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import1_001w.phpt
new file mode 100644
index 0000000..8c760cc
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import1_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD Import1 001 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_import1.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString("Hello World");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_import1.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop/echoString/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><x xsi:type="xsd:string">Hello World</x></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop/echoStringResponse/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><Result xsi:type="xsd:string">Hello World</Result></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import2_001w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import2_001w.phpt
new file mode 100644
index 0000000..53ac18b
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import2_001w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round3 GroupD Import2 001 (php/wsdl): echoStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_import2.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStruct($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_import2.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStruct><inputStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></inputStruct></ns1:echoStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructResponse><Result xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></Result></ns1:echoStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import3_001w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import3_001w.phpt
new file mode 100644
index 0000000..2a4d656
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import3_001w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round3 GroupD Import3 001 (php/wsdl): echoStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_import3.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStruct($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_import3.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStruct><inputStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></inputStruct></ns1:echoStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructResponse><Result xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></Result></ns1:echoStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import3_002w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import3_002w.phpt
new file mode 100644
index 0000000..b3e2d7b
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_import3_002w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round3 GroupD Import3 002 (php/wsdl): echoStructArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_import3.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStructArray(array($struct,$struct));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_import3.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns3="http://soapinterop.org/xsd2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructArray><inputArray SOAP-ENC:arrayType="ns2:SOAPStruct[2]" xsi:type="ns3:ArrayOfSOAPStruct"><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item></inputArray></ns1:echoStructArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop/" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns3="http://soapinterop.org/xsd2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructArrayResponse><Result SOAP-ENC:arrayType="ns2:SOAPStruct[2]" xsi:type="ns3:ArrayOfSOAPStruct"><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></item></Result></ns1:echoStructArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_001w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_001w.phpt
new file mode 100644
index 0000000..3bc4b4e
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD RPC Encoded 001 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString("Hello World");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoString><param0 xsi:type="xsd:string">Hello World</param0></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringResponse><return xsi:type="xsd:string">Hello World</return></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_002w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_002w.phpt
new file mode 100644
index 0000000..a3fc99d
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_002w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD RPC Encoded 002 (php/wsdl): echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringArray(array("one","two","three"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArray><param0 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></param0></ns1:echoStringArray></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringArrayResponse><return SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></return></ns1:echoStringArrayResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_003w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_003w.phpt
new file mode 100644
index 0000000..2ebd90b
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_003w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round3 GroupD RPC Encoded 003 (php/wsdl): echoStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStruct($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStruct><param0 xsi:type="ns2:SOAPStruct"><varFloat xsi:type="xsd:float">325.325</varFloat><varInt xsi:type="xsd:int">34</varInt><varString xsi:type="xsd:string">arg</varString></param0></ns1:echoStruct></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStructResponse><return xsi:type="ns2:SOAPStruct"><varFloat xsi:type="xsd:float">325.325</varFloat><varInt xsi:type="xsd:int">34</varInt><varString xsi:type="xsd:string">arg</varString></return></ns1:echoStructResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_004w.phpt b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_004w.phpt
new file mode 100644
index 0000000..732dfcc
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/r3_groupD_rpcenc_004w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupD RPC Encoded 004 (php/wsdl): echoVoid
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupD_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoVoid();
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupD_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVoid/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVoidResponse/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound1.inc b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound1.inc
new file mode 100644
index 0000000..0525b0b
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound1.inc
@@ -0,0 +1,17 @@
+<?php
+class SOAP_Interop_GroupD {
+ function echoPerson($person)
+ {
+ return $person;
+ }
+
+ function echoDocument($doc)
+ {
+ return $doc;
+ }
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupD_compound1.wsdl");
+$server->setClass("SOAP_Interop_GroupD");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound1.wsdl b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound1.wsdl
new file mode 100644
index 0000000..6a8f851
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound1.wsdl
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="SoapInteropCompound"
+ targetNamespace="http://soapinterop.org/"
+ xmlns:wsdlns="http://soapinterop.org/"
+ xmlns:typens="http://soapinterop.org/xsd"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <schema targetNamespace="http://soapinterop.org/xsd"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ >
+ <complexType name="Person">
+ <sequence>
+ <element minOccurs="1" maxOccurs="1" name="Age" type="double"/>
+ <element minOccurs="1" maxOccurs="1" name="ID" type="xsd:float"/>
+ </sequence>
+ <attribute name="Name" type="string"/>
+ <attribute name="Male" type="boolean"/>
+ </complexType>
+ <element name="x_Person" type="typens:Person"/>
+ <element name="result_Person" type="typens:Person"/>
+
+ <complexType name="Document">
+ <simpleContent>
+ <extension base="string">
+ <xsd:attribute name ="ID" type="string"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+ <element name="x_Document" type="typens:Document"/>
+ <element name="result_Document" type="typens:Document"/>
+ </schema>
+ </types>
+ <message name="echoPerson">
+ <part name="x" element="typens:x_Person"/>
+ </message>
+ <message name="echoPersonResponse">
+ <part name="Result" element="typens:result_Person"/>
+ </message>
+ <message name="echoDocument">
+ <part name="x" element="typens:x_Document"/>
+ </message>
+ <message name="echoDocumentResponse">
+ <part name="Result" element="typens:result_Document"/>
+ </message>
+ <portType name="SoapInteropCompound1PortType">
+ <operation name="echoPerson" parameterOrder="x">
+ <input message="wsdlns:echoPerson"/>
+ <output message="wsdlns:echoPersonResponse"/>
+ </operation>
+ <operation name="echoDocument" parameterOrder="x">
+ <input message="wsdlns:echoDocument"/>
+ <output message="wsdlns:echoDocumentResponse"/>
+ </operation>
+ </portType>
+ <binding name="SoapInteropCompound1Binding" type="wsdlns:SoapInteropCompound1PortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoPerson">
+ <soap:operation soapAction="http://soapinterop/echoPerson"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="echoDocument">
+ <soap:operation soapAction="http://soapinterop/echoDocument"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+
+ </binding>
+ <service name="Compound1">
+ <port name="SoapInteropCompound1Port" binding="wsdlns:SoapInteropCompound1Binding">
+ <soap:address location="round3_groupD_compound1.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound2.inc b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound2.inc
new file mode 100644
index 0000000..81b96cd
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound2.inc
@@ -0,0 +1,12 @@
+<?php
+class SOAP_Interop_GroupD {
+ function echoEmployee($employee)
+ {
+ return $employee;
+ }
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupD_compound2.wsdl");
+$server->setClass("SOAP_Interop_GroupD");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound2.wsdl b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound2.wsdl
new file mode 100644
index 0000000..e8b63e0
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_compound2.wsdl
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="SoapInteropCompound" targetNamespace="http://soapinterop.org/"
+ xmlns:wsdlns="http://soapinterop.org/"
+ xmlns:emp="http://soapinterop.org/employee"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <schema targetNamespace="http://soapinterop.org/person"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+
+ <complexType name="Person">
+ <sequence>
+ <element minOccurs="1" maxOccurs="1" name="Name" type="string"/>
+ <element minOccurs="1" maxOccurs="1" name="Male" type="boolean"/>
+ </sequence>
+ </complexType>
+ </schema>
+ <schema targetNamespace = "http://soapinterop.org/employee"
+ xmlns:prs = "http://soapinterop.org/person"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+ <import namespace="http://soapinterop.org/person" />
+ <complexType name="Employee">
+ <sequence>
+ <element minOccurs="1" maxOccurs="1" name="person" type="prs:Person"/>
+ <element minOccurs="1" maxOccurs="1" name="salary" type="double"/>
+ <element minOccurs="1" maxOccurs="1" name="ID" type="int"/>
+ </sequence>
+ </complexType>
+ <element name="x_Employee" type="emp:Employee"/>
+ <element name="result_Employee" type="emp:Employee"/>
+ </schema>
+ </types>
+ <message name="echoEmployee">
+ <part name="x" element="emp:x_Employee"/>
+ </message>
+ <message name="echoEmployeeResponse">
+ <part name="result" element="emp:result_Employee"/>
+ </message>
+ <portType name="SoapInteropCompound2PortType">
+ <operation name="echoEmployee" parameterOrder="x">
+ <input message="wsdlns:echoEmployee"/>
+ <output message="wsdlns:echoEmployeeResponse"/>
+ </operation>
+ </portType>
+ <binding name="SoapInteropCompound2Binding" type="wsdlns:SoapInteropCompound2PortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoEmployee">
+ <soap:operation soapAction="#echoEmployee"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="Compound2">
+ <port name="SoapInteropCompound2Port" binding="wsdlns:SoapInteropCompound2Binding">
+ <soap:address location="round3_groupD_compound2.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclit.inc b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclit.inc
new file mode 100644
index 0000000..8ca0338
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclit.inc
@@ -0,0 +1,28 @@
+<?php
+class SOAP_Interop_GroupD {
+
+ function echoString($inputString)
+ {
+ return $inputString;
+ }
+
+ function echoStringArray($inputStringArray)
+ {
+ return $inputStringArray;
+ }
+
+ function echoStruct($inputStruct)
+ {
+ return $inputStruct;
+ }
+
+ function echoVoid()
+ {
+ return NULL;
+ }
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupD_doclit.wsdl");
+$server->setClass("SOAP_Interop_GroupD");
+$server->handle();
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclit.wsdl b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclit.wsdl
new file mode 100644
index 0000000..4febca8
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclit.wsdl
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="WSDLInteropTestDocLitService"
+ targetNamespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://soapinterop.org/WSDLInteropTestDocLit"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd1="http://soapinterop.org/xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <types>
+ <schema targetNamespace="http://soapinterop.org/xsd"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ elementFormDefault="qualified">
+ <complexType name="ArrayOfstring_literal">
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="1" name="string" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varFloat" type="xsd:float"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varString" type="xsd:string"/>
+ </all>
+ </complexType>
+
+ <element name="echoStringParam" type="xsd:string"/>
+
+ <element name="echoStringReturn" type="xsd:string"/>
+ <element name="echoStringArrayParam" type="xsd1:ArrayOfstring_literal"/>
+
+ <element name="echoStringArrayReturn" type="xsd1:ArrayOfstring_literal"/>
+
+ <element name="echoStructParam" type="xsd1:SOAPStruct"/>
+
+ <element name="echoStructReturn" type="xsd1:SOAPStruct"/>
+ </schema>
+ </types>
+ <message name="echoString">
+ <part element="xsd1:echoStringParam" name="a"/>
+ </message>
+ <message name="echoStringResponse">
+ <part element="xsd1:echoStringReturn" name="result"/>
+ </message>
+ <message name="echoStringArray">
+ <part element="xsd1:echoStringArrayParam" name="a"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part element="xsd1:echoStringArrayReturn" name="result"/>
+ </message>
+ <message name="echoStruct">
+ <part element="xsd1:echoStructParam" name="a"/>
+ </message>
+ <message name="echoStructResponse">
+ <part element="xsd1:echoStructReturn" name="result"/>
+ </message>
+ <message name="echoVoid"/>
+ <message name="echoVoidResponse"/>
+
+ <portType name="WSDLInteropTestDocLitPortType">
+ <operation name="echoString">
+ <input message="tns:echoString" name="echoString"/>
+ <output message="tns:echoStringResponse" name="echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray">
+ <input message="tns:echoStringArray" name="echoStringArray"/>
+ <output message="tns:echoStringArrayResponse" name="echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoStruct">
+ <input message="tns:echoStruct" name="echoStruct"/>
+ <output message="tns:echoStructResponse" name="echoStructResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoid" name="echoVoid"/>
+ <output message="tns:echoVoidResponse" name="echoVoidResponse"/>
+ </operation>
+ </portType>
+ <binding name="WSDLInteropTestDocLitPortBinding"
+ type="tns:WSDLInteropTestDocLitPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="http://soapinterop.org/" style="document"/>
+ <input name="echoString">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStringResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="http://soapinterop.org/" style="document"/>
+ <input name="echoStringArray">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStringArrayResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="http://soapinterop.org/" style="document"/>
+ <input name="echoStruct">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStructResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="http://soapinterop.org/" style="document"/>
+ <input name="echoVoid">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoVoidResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="WSDLInteropTestDocLitService">
+ <port binding="tns:WSDLInteropTestDocLitPortBinding"
+ name="WSDLInteropTestDocLitPort">
+ <soap:address
+ location="round3_groupD_doclit.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclitparams.inc b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclitparams.inc
new file mode 100644
index 0000000..2042cfc
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclitparams.inc
@@ -0,0 +1,29 @@
+<?php
+class SOAP_Interop_GroupD {
+
+ function echoString($inputString)
+ {
+ return array("return"=>$inputString->param0);
+ }
+
+ function echoStringArray($inputStringArray)
+ {
+ return array("return"=>$inputStringArray->param0);
+ }
+
+ function echoStruct($inputStruct)
+ {
+ return array("return"=>$inputStruct->param0);
+ }
+
+ function echoVoid()
+ {
+ return NULL;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupD_doclitparams.wsdl");
+$server->setClass("SOAP_Interop_GroupD");
+$server->handle();
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclitparams.wsdl b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclitparams.wsdl
new file mode 100644
index 0000000..8b8558d
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_doclitparams.wsdl
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="WSDLInteropTestDocLitService"
+ targetNamespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://soapinterop.org/WSDLInteropTestDocLit"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd1="http://soapinterop.org/xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <types>
+ <schema targetNamespace="http://soapinterop.org/xsd"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <complexType name="ArrayOfstring_literal">
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="1" name="string" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varFloat" type="xsd:float"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varString" type="xsd:string"/>
+ </all>
+ </complexType>
+
+ <element name="echoString">
+ <complexType>
+ <sequence>
+ <element name="param0" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringResponse">
+ <complexType>
+ <sequence>
+ <element name="return" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringArray">
+ <complexType>
+ <sequence>
+ <element name="param0" type="xsd1:ArrayOfstring_literal"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStringArrayResponse">
+ <complexType>
+ <sequence>
+ <element name="return" type="xsd1:ArrayOfstring_literal"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStruct">
+ <complexType>
+ <sequence>
+ <element name="param0" type="xsd1:SOAPStruct"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoStructResponse">
+ <complexType>
+ <sequence>
+ <element name="return" type="xsd1:SOAPStruct"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoVoid">
+ <complexType/>
+ </element>
+ <element name="echoVoidResponse">
+ <complexType/>
+ </element>
+ </schema>
+ </types>
+ <message name="echoString">
+ <part element="xsd1:echoString" name="parameters"/>
+ </message>
+ <message name="echoStringResponse">
+ <part element="xsd1:echoStringResponse" name="parameters"/>
+ </message>
+ <message name="echoStringArray">
+ <part element="xsd1:echoStringArray" name="parameters"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part element="xsd1:echoStringArrayResponse" name="parameters"/>
+ </message>
+ <message name="echoStruct">
+ <part element="xsd1:echoStruct" name="parameters"/>
+ </message>
+ <message name="echoStructResponse">
+ <part element="xsd1:echoStructResponse" name="parameters"/>
+ </message>
+ <message name="echoVoid">
+ <part element="xsd1:echoVoid" name="parameters"/>
+ </message>
+ <message name="echoVoidResponse">
+ <part element="xsd1:echoVoidResponse" name="parameters"/>
+ </message>
+ <portType name="WSDLInteropTestDocLitPortType">
+ <operation name="echoString">
+ <input message="tns:echoString" name="echoString"/>
+ <output message="tns:echoStringResponse" name="echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray">
+ <input message="tns:echoStringArray" name="echoStringArray"/>
+ <output message="tns:echoStringArrayResponse" name="echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoStruct">
+ <input message="tns:echoStruct" name="echoStruct"/>
+ <output message="tns:echoStructResponse" name="echoStructResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoid" name="echoVoid"/>
+ <output message="tns:echoVoidResponse" name="echoVoidResponse"/>
+ </operation>
+ </portType>
+ <binding name="WSDLInteropTestDocLitPortBinding"
+ type="tns:WSDLInteropTestDocLitPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="http://soapinterop.org/" style="document"/>
+ <input name="echoString">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStringResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="http://soapinterop.org/" style="document"/>
+ <input name="echoStringArray">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStringArrayResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="http://soapinterop.org/" style="document"/>
+ <input name="echoStruct">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStructResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="http://soapinterop.org/" style="document"/>
+ <input name="echoVoid">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoVoidResponse">
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="WSDLInteropTestDocLitService">
+ <port binding="tns:WSDLInteropTestDocLitPortBinding"
+ name="WSDLInteropTestDocLitPort">
+ <soap:address
+ location="round3_groupD_doclitparams.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_emptysa.inc b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_emptysa.inc
new file mode 100644
index 0000000..b239c45
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_emptysa.inc
@@ -0,0 +1,14 @@
+<?php
+class SOAP_Interop_GroupD {
+
+ function echoString($inputString)
+ {
+ return $inputString;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupD_emptysa.wsdl");
+$server->setClass("SOAP_Interop_GroupD");
+$server->handle();
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_emptysa.wsdl b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_emptysa.wsdl
new file mode 100644
index 0000000..09a09a4
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_emptysa.wsdl
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="SoapInterop" targetNamespace="http://soapinterop/"
+ xmlns:wsdlns="http://soapinterop/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types/>
+ <message name="echoStringRequest">
+ <part name="a" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="Result" type="xsd:string"/>
+ </message>
+ <portType name="SoapInteropEmptySAPortType">
+ <operation name="echoString" parameterOrder="a">
+ <input message="wsdlns:echoStringRequest"/>
+ <output message="wsdlns:echoStringResponse"/>
+ </operation>
+ </portType>
+ <binding name="SoapInteropEmptySABinding" type="wsdlns:SoapInteropEmptySAPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="EmptySA">
+ <port name="SoapInteropEmptySAPort" binding="wsdlns:SoapInteropEmptySABinding">
+ <soap:address location="round3_groupD_emptysa.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import1.inc b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import1.inc
new file mode 100644
index 0000000..2e56d18
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import1.inc
@@ -0,0 +1,14 @@
+<?php
+class SOAP_Interop_GroupD {
+
+ function echoString($inputString)
+ {
+ return $inputString;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupD_import1.wsdl");
+$server->setClass("SOAP_Interop_GroupD");
+$server->handle();
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import1.wsdl b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import1.wsdl
new file mode 100644
index 0000000..d928830
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import1.wsdl
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="SoapInterop" targetNamespace="http://soapinterop.org/"
+ xmlns:wsdlns1="http://soapinterop.org/definitions/"
+ xmlns:wsdlns="http://soapinterop.org/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <import location="imported/import1B.wsdl" namespace="http://soapinterop.org/definitions/" />
+
+ <binding name="SoapInteropImport1Binding" type="wsdlns1:SoapInteropImport1PortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="http://soapinterop.org/"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop/echoString/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop/echoStringResponse/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="Import1">
+ <port name="SoapInteropImport1Port" binding="wsdlns:SoapInteropImport1Binding">
+ <soap:address location="round3_groupD_import1.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2.inc b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2.inc
new file mode 100644
index 0000000..a0893c6
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2.inc
@@ -0,0 +1,14 @@
+<?php
+class SOAP_Interop_GroupD {
+
+ function echoStruct($inputStruct)
+ {
+ return $inputStruct;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupD_import2.wsdl");
+$server->setClass("SOAP_Interop_GroupD");
+$server->handle();
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2.wsdl b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2.wsdl
new file mode 100644
index 0000000..fc0f8ae
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2.wsdl
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="SoapInterop" targetNamespace="http://soapinterop.org/main/"
+ xmlns:wsdlns1="http://soapinterop.org/definitions/"
+ xmlns:wsdlns="http://soapinterop.org/main/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <import location="imported/import2B.wsdl" namespace="http://soapinterop.org/definitions/" />
+
+ <binding name="SoapInteropImport2Binding" type="wsdlns1:SoapInteropImport2PortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoStruct">
+ <soap:operation soapAction="http://soapinterop.org/"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="Import2">
+ <port name="SoapInteropImport2Port" binding="wsdlns:SoapInteropImport2Binding">
+ <soap:address location="round3_groupD_import2.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2_absolute.wsdl b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2_absolute.wsdl
new file mode 100644
index 0000000..fc0f8ae
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import2_absolute.wsdl
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="SoapInterop" targetNamespace="http://soapinterop.org/main/"
+ xmlns:wsdlns1="http://soapinterop.org/definitions/"
+ xmlns:wsdlns="http://soapinterop.org/main/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <import location="imported/import2B.wsdl" namespace="http://soapinterop.org/definitions/" />
+
+ <binding name="SoapInteropImport2Binding" type="wsdlns1:SoapInteropImport2PortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoStruct">
+ <soap:operation soapAction="http://soapinterop.org/"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="Import2">
+ <port name="SoapInteropImport2Port" binding="wsdlns:SoapInteropImport2Binding">
+ <soap:address location="round3_groupD_import2.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import3.inc b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import3.inc
new file mode 100644
index 0000000..398f97e
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import3.inc
@@ -0,0 +1,19 @@
+<?php
+class SOAP_Interop_GroupD {
+
+ function echoStruct($inputStruct)
+ {
+ return $inputStruct;
+ }
+
+ function echoStructArray($inputStructArray)
+ {
+ return $inputStructArray;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupD_import3.wsdl");
+$server->setClass("SOAP_Interop_GroupD");
+$server->handle();
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import3.wsdl b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import3.wsdl
new file mode 100644
index 0000000..3dd2642
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_import3.wsdl
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="SoapInterop" targetNamespace="http://soapinterop.org/main2/"
+ xmlns:wsdlns="http://soapinterop.org/main2/"
+ xmlns:impns="http://soapinterop.org/definitions/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:typens2="http://soapinterop.org/xsd2"
+ xmlns:typens="http://soapinterop.org/xsd"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+ <import namespace = "http://soapinterop.org/xsd" location = "round3_groupD_import2.wsdl"/>
+ <import namespace = "http://soapinterop.org/definitions/" location = "round3_groupD_import2.wsdl"/>
+
+ <types>
+ <schema targetNamespace='http://soapinterop.org/xsd2'
+ xmlns='http://www.w3.org/2001/XMLSchema'
+ xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/'
+ xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/"
+ elementFormDefault='unqualified'>
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <import namespace = "http://soapinterop.org/xsd"/>
+ <complexType name ='ArrayOfSOAPStruct'>
+ <complexContent>
+ <restriction base='SOAP-ENC:Array'>
+ <attribute ref='SOAP-ENC:arrayType' wsdl:arrayType='typens:SOAPStruct[]'/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name='Server.echoStructArray'>
+ <part name='inputArray' type='typens2:ArrayOfSOAPStruct'/>
+ </message>
+ <message name='Server.echoStructArrayResponse'>
+ <part name='Result' type='typens2:ArrayOfSOAPStruct'/>
+ </message>
+
+ <portType name="SoapInteropImport3PortType">
+ <operation name='echoStruct' parameterOrder='inputStruct'>
+ <input message='impns:Server.echoStruct' />
+ <output message='impns:Server.echoStructResponse' />
+ </operation>
+ <operation name='echoStructArray' parameterOrder='inputArray'>
+ <input message='wsdlns:Server.echoStructArray' />
+ <output message='wsdlns:Server.echoStructArrayResponse' />
+ </operation>
+ </portType>
+
+ <binding name="SoapInteropImport3Binding" type="wsdlns:SoapInteropImport3PortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoStruct">
+ <soap:operation soapAction="http://soapinterop.org/"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="echoStructArray">
+ <soap:operation soapAction="http://soapinterop.org/"/>
+ <input>
+ <soap:body use="encoded" namespace="http://soapinterop/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="http://soapinterop/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="Import3">
+ <port name="SoapInteropImport3Port" binding="wsdlns:SoapInteropImport3Binding">
+ <soap:address location="round3_groupD_import3.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_rpcenc.inc b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_rpcenc.inc
new file mode 100644
index 0000000..645ab3a
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_rpcenc.inc
@@ -0,0 +1,28 @@
+<?php
+class SOAP_Interop_GroupD {
+
+ function echoString($inputString)
+ {
+ return $inputString;
+ }
+
+ function echoStringArray($inputStringArray)
+ {
+ return $inputStringArray;
+ }
+
+ function echoStruct($inputStruct)
+ {
+ return $inputStruct;
+ }
+
+ function echoVoid()
+ {
+ return NULL;
+ }
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupD_rpcenc.wsdl");
+$server->setClass("SOAP_Interop_GroupD");
+$server->handle();
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupD/round3_groupD_rpcenc.wsdl b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_rpcenc.wsdl
new file mode 100644
index 0000000..03568f7
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/round3_groupD_rpcenc.wsdl
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="WSDLInteropTestRpcEncService"
+ targetNamespace="http://soapinterop.org/WSDLInteropTestRpcEnc"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://soapinterop.org/WSDLInteropTestRpcEnc"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd1="http://soapinterop.org/xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <types>
+ <schema targetNamespace="http://soapinterop.org/xsd"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="SOAP-ENC:Array">
+ <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varFloat" type="xsd:float"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varString" type="xsd:string"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoString">
+ <part name="param0" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+ <message name="echoStringArray">
+ <part name="param0" type="xsd1:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="xsd1:ArrayOfstring"/>
+ </message>
+ <message name="echoStruct">
+ <part name="param0" type="xsd1:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="xsd1:SOAPStruct"/>
+ </message>
+ <message name="echoVoid"/>
+ <message name="echoVoidResponse"/>
+ <portType name="WSDLInteropTestRpcEncPortType">
+ <operation name="echoString">
+ <input message="tns:echoString" name="echoString"/>
+ <output message="tns:echoStringResponse" name="echoStringResponse"/>
+ </operation>
+ <operation name="echoStringArray">
+ <input message="tns:echoStringArray" name="echoStringArray"/>
+ <output message="tns:echoStringArrayResponse" name="echoStringArrayResponse"/>
+ </operation>
+ <operation name="echoStruct">
+ <input message="tns:echoStruct" name="echoStruct"/>
+ <output message="tns:echoStructResponse" name="echoStructResponse"/>
+ </operation>
+ <operation name="echoVoid">
+ <input message="tns:echoVoid" name="echoVoid"/>
+ <output message="tns:echoVoidResponse" name="echoVoidResponse"/>
+ </operation>
+ </portType>
+ <binding name="WSDLInteropTestRpcEncPortBinding"
+ type="tns:WSDLInteropTestRpcEncPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <soap:operation soapAction="" style="rpc"/>
+ <input name="echoString">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soapinterop.org/WSDLInteropTestRpcEnc" use="encoded"/>
+ </input>
+ <output name="echoStringResponse">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soapinterop.org/WSDLInteropTestRpcEnc" use="encoded"/>
+ </output>
+ </operation>
+ <operation name="echoStringArray">
+ <soap:operation soapAction="" style="rpc"/>
+ <input name="echoStringArray">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soapinterop.org/WSDLInteropTestRpcEnc" use="encoded"/>
+ </input>
+ <output name="echoStringArrayResponse">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soapinterop.org/WSDLInteropTestRpcEnc" use="encoded"/>
+ </output>
+ </operation>
+ <operation name="echoStruct">
+ <soap:operation soapAction="" style="rpc"/>
+ <input name="echoStruct">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soapinterop.org/WSDLInteropTestRpcEnc" use="encoded"/>
+ </input>
+ <output name="echoStructResponse">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soapinterop.org/WSDLInteropTestRpcEnc" use="encoded"/>
+ </output>
+ </operation>
+ <operation name="echoVoid">
+ <soap:operation soapAction="" style="rpc"/>
+ <input name="echoVoid">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soapinterop.org/WSDLInteropTestRpcEnc" use="encoded"/>
+ </input>
+ <output name="echoVoidResponse">
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soapinterop.org/WSDLInteropTestRpcEnc" use="encoded"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="WSDLInteropTestRpcEncService">
+ <port binding="tns:WSDLInteropTestRpcEncPortBinding"
+ name="WSDLInteropTestRpcEncPort">
+ <soap:address
+ location="round3_groupD_rpcenc.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupD/skipif.inc b/ext/soap/tests/interop/Round3/GroupD/skipif.inc
new file mode 100644
index 0000000..fa8574e
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupD/skipif.inc
@@ -0,0 +1,3 @@
+<?php
+ if (!extension_loaded('soap')) die('skip soap extension not available');
+?>
diff --git a/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_001w.phpt b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_001w.phpt
new file mode 100644
index 0000000..523f0e1
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_001w.phpt
@@ -0,0 +1,35 @@
+--TEST--
+SOAP Interop Round3 GroupE List 001 (php/wsdl): echoLinkedList
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPList {
+ function SOAPList($s, $i, $c) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->child = $c;
+ }
+}
+$struct = new SOAPList('arg1',1,NULL);
+$client = new SoapClient(dirname(__FILE__)."/round3_groupE_list.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoLinkedList($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupE_list.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedList><param0 xsi:type="ns2:List"><varInt xsi:type="xsd:int">1</varInt><varString xsi:type="xsd:string">arg1</varString><child xsi:nil="1" xsi:type="ns2:List"/></param0></ns1:echoLinkedList></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedListResponse><return xsi:type="ns2:List"><varInt xsi:type="xsd:int">1</varInt><varString xsi:type="xsd:string">arg1</varString><child xsi:nil="1" xsi:type="ns2:List"/></return></ns1:echoLinkedListResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+object(stdClass)#5 (3) {
+ ["varInt"]=>
+ int(1)
+ ["varString"]=>
+ string(4) "arg1"
+ ["child"]=>
+ NULL
+}
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_002w.phpt b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_002w.phpt
new file mode 100644
index 0000000..e14bb4a
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_002w.phpt
@@ -0,0 +1,42 @@
+--TEST--
+SOAP Interop Round3 GroupE List 002 (php/wsdl): echoLinkedList
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPList {
+ function SOAPList($s, $i, $c) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->child = $c;
+ }
+}
+$struct = new SOAPList('arg1',1, new SOAPList('arg2',2,NULL));
+$client = new SoapClient(dirname(__FILE__)."/round3_groupE_list.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoLinkedList($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupE_list.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedList><param0 xsi:type="ns2:List"><varInt xsi:type="xsd:int">1</varInt><varString xsi:type="xsd:string">arg1</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">2</varInt><varString xsi:type="xsd:string">arg2</varString><child xsi:nil="1" xsi:type="ns2:List"/></child></param0></ns1:echoLinkedList></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedListResponse><return xsi:type="ns2:List"><varInt xsi:type="xsd:int">1</varInt><varString xsi:type="xsd:string">arg1</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">2</varInt><varString xsi:type="xsd:string">arg2</varString><child xsi:nil="1" xsi:type="ns2:List"/></child></return></ns1:echoLinkedListResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+object(stdClass)#6 (3) {
+ ["varInt"]=>
+ int(1)
+ ["varString"]=>
+ string(4) "arg1"
+ ["child"]=>
+ object(stdClass)#7 (3) {
+ ["varInt"]=>
+ int(2)
+ ["varString"]=>
+ string(4) "arg2"
+ ["child"]=>
+ NULL
+ }
+}
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_003w.phpt b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_003w.phpt
new file mode 100644
index 0000000..09d3bef
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_003w.phpt
@@ -0,0 +1,49 @@
+--TEST--
+SOAP Interop Round3 GroupE List 003 (php/wsdl): echoLinkedList
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPList {
+ function SOAPList($s, $i, $c) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->child = $c;
+ }
+}
+$struct = new SOAPList('arg1',1,new SOAPList('arg2',2,new SOAPList('arg3',3,NULL)));
+$client = new SoapClient(dirname(__FILE__)."/round3_groupE_list.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoLinkedList($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupE_list.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedList><param0 xsi:type="ns2:List"><varInt xsi:type="xsd:int">1</varInt><varString xsi:type="xsd:string">arg1</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">2</varInt><varString xsi:type="xsd:string">arg2</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">3</varInt><varString xsi:type="xsd:string">arg3</varString><child xsi:nil="1" xsi:type="ns2:List"/></child></child></param0></ns1:echoLinkedList></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedListResponse><return xsi:type="ns2:List"><varInt xsi:type="xsd:int">1</varInt><varString xsi:type="xsd:string">arg1</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">2</varInt><varString xsi:type="xsd:string">arg2</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">3</varInt><varString xsi:type="xsd:string">arg3</varString><child xsi:nil="1" xsi:type="ns2:List"/></child></child></return></ns1:echoLinkedListResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+object(stdClass)#7 (3) {
+ ["varInt"]=>
+ int(1)
+ ["varString"]=>
+ string(4) "arg1"
+ ["child"]=>
+ object(stdClass)#8 (3) {
+ ["varInt"]=>
+ int(2)
+ ["varString"]=>
+ string(4) "arg2"
+ ["child"]=>
+ object(stdClass)#9 (3) {
+ ["varInt"]=>
+ int(3)
+ ["varString"]=>
+ string(4) "arg3"
+ ["child"]=>
+ NULL
+ }
+ }
+}
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_004w.phpt b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_004w.phpt
new file mode 100644
index 0000000..212cf76
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_004w.phpt
@@ -0,0 +1,28 @@
+--TEST--
+SOAP Interop Round3 GroupE List 004 (php/wsdl): echoLinkedList
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPList {
+ function SOAPList($s, $i, $c) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->child = $c;
+ }
+}
+$struct = NULL;
+$client = new SoapClient(dirname(__FILE__)."/round3_groupE_list.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoLinkedList($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupE_list.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedList><param0 xsi:nil="1" xsi:type="ns2:List"/></ns1:echoLinkedList></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedListResponse><return xsi:nil="1" xsi:type="ns2:List"/></ns1:echoLinkedListResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+NULL
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_005w.phpt b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_005w.phpt
new file mode 100644
index 0000000..e66bbb7
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_005w.phpt
@@ -0,0 +1,50 @@
+--TEST--
+SOAP Interop Round3 GroupE List 005 (php/wsdl): echoLinkedList (cyclic)
+--SKIPIF--
+<?php require_once('skipif.inc'); die('skip cyclic stuctures are not supported yet'); ?>
+--FILE--
+<?php
+class SOAPList {
+ function SOAPList($s, $i, $c) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->child = $c;
+ }
+}
+$struct = new SOAPList('arg1',1,new SOAPList('arg2',2,new SOAPList('arg3',3,NULL)));
+$struct->child->child->child = $struct;
+$client = new SoapClient(dirname(__FILE__)."/round3_groupE_list.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoLinkedList($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupE_list.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedList><param0 xsi:type="ns2:List"><varInt xsi:type="xsd:int">1</varInt><varString xsi:type="xsd:string">arg1</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">2</varInt><varString xsi:type="xsd:string">arg2</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">3</varInt><varString xsi:type="xsd:string">arg3</varString><child xsi:nil="1" xsi:type="ns2:List"/></child></child></param0></ns1:echoLinkedList></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedListResponse><return xsi:type="ns2:List"><varInt xsi:type="xsd:int">1</varInt><varString xsi:type="xsd:string">arg1</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">2</varInt><varString xsi:type="xsd:string">arg2</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">3</varInt><varString xsi:type="xsd:string">arg3</varString><child xsi:nil="1" xsi:type="ns2:List"/></child></child></return></ns1:echoLinkedListResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+object(stdClass)#7 (3) {
+ ["varInt"]=>
+ int(1)
+ ["varString"]=>
+ string(4) "arg1"
+ ["child"]=>
+ object(stdClass)#8 (3) {
+ ["varInt"]=>
+ int(2)
+ ["varString"]=>
+ string(4) "arg2"
+ ["child"]=>
+ object(stdClass)#9 (3) {
+ ["varInt"]=>
+ int(3)
+ ["varString"]=>
+ string(4) "arg3"
+ ["child"]=>
+ NULL
+ }
+ }
+}
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_006w.phpt b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_006w.phpt
new file mode 100644
index 0000000..4958487
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupE/r3_groupE_list_006w.phpt
@@ -0,0 +1,50 @@
+--TEST--
+SOAP Interop Round3 GroupE List 006 (php/wsdl): echoLinkedList (cyclic)
+--SKIPIF--
+<?php require_once('skipif.inc'); die("skip cyclic stuctures are not supported yet"); ?>
+--FILE--
+<?php
+class SOAPList {
+ function SOAPList($s, $i, $c) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->child = $c;
+ }
+}
+$struct = new SOAPList('arg1',1,new SOAPList('arg2',2,new SOAPList('arg3',3,NULL)));
+$struct->child->child->child = $struct->child;
+$client = new SoapClient(dirname(__FILE__)."/round3_groupE_list.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoLinkedList($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupE_list.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedList><param0 xsi:type="ns2:List"><varInt xsi:type="xsd:int">1</varInt><varString xsi:type="xsd:string">arg1</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">2</varInt><varString xsi:type="xsd:string">arg2</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">3</varInt><varString xsi:type="xsd:string">arg3</varString><child xsi:nil="1" xsi:type="ns2:List"/></child></child></param0></ns1:echoLinkedList></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/WSDLInteropTestRpcEnc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoLinkedListResponse><return xsi:type="ns2:List"><varInt xsi:type="xsd:int">1</varInt><varString xsi:type="xsd:string">arg1</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">2</varInt><varString xsi:type="xsd:string">arg2</varString><child xsi:type="ns2:List"><varInt xsi:type="xsd:int">3</varInt><varString xsi:type="xsd:string">arg3</varString><child xsi:nil="1" xsi:type="ns2:List"/></child></child></return></ns1:echoLinkedListResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+object(stdClass)#7 (3) {
+ ["varInt"]=>
+ int(1)
+ ["varString"]=>
+ string(4) "arg1"
+ ["child"]=>
+ object(stdClass)#8 (3) {
+ ["varInt"]=>
+ int(2)
+ ["varString"]=>
+ string(4) "arg2"
+ ["child"]=>
+ object(stdClass)#9 (3) {
+ ["varInt"]=>
+ int(3)
+ ["varString"]=>
+ string(4) "arg3"
+ ["child"]=>
+ NULL
+ }
+ }
+}
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupE/round3_groupE_list.inc b/ext/soap/tests/interop/Round3/GroupE/round3_groupE_list.inc
new file mode 100644
index 0000000..83454c0
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupE/round3_groupE_list.inc
@@ -0,0 +1,17 @@
+<?php
+class SOAP_Interop_GroupE {
+
+ function echoLinkedList($inputList)
+ {
+ global $d;
+ $d = $inputList;
+ return $inputList;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupE_list.wsdl");
+$server->setClass("SOAP_Interop_GroupE");
+$server->handle();
+var_dump($d);
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupE/round3_groupE_list.wsdl b/ext/soap/tests/interop/Round3/GroupE/round3_groupE_list.wsdl
new file mode 100644
index 0000000..49e6a8c
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupE/round3_groupE_list.wsdl
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="WSDLInteropTestList"
+ targetNamespace="http://soapinterop.org/WSDLInteropTestList"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://soapinterop.org/WSDLInteropTestList"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd1="http://soapinterop.org/xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <types>
+ <schema targetNamespace="http://soapinterop.org/xsd"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <complexType name="List">
+ <all>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varString" type="xsd:string"/>
+ <element name="child" type = "xsd1:List"/>
+ </all>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="echoLinkedList">
+ <part name="param0" type="xsd1:List"/>
+ </message>
+ <message name="echoLinkedListResponse">
+ <part name="return" type="xsd1:List"/>
+ </message>
+ <portType name="WSDLInteropTestListPortType">
+ <operation name="echoLinkedList">
+ <input message="tns:echoLinkedList"/>
+ <output message="tns:echoLinkedListResponse"/>
+ </operation>
+ </portType>
+ <binding name="WSDLInteropTestListBinding"
+ type="tns:WSDLInteropTestListPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoLinkedList">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soapinterop.org/WSDLInteropTestRpcEnc" use="encoded"/>
+ </input>
+ <output>
+ <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soapinterop.org/WSDLInteropTestRpcEnc" use="encoded"/>
+ </output>
+ </operation>
+
+ </binding>
+ <service name="WSDLInteropTestListService">
+ <port binding="tns:WSDLInteropTestListBinding"
+ name="WSDLInteropTestListPort">
+ <soap:address
+ location="round3_groupE_list.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupE/skipif.inc b/ext/soap/tests/interop/Round3/GroupE/skipif.inc
new file mode 100644
index 0000000..fa8574e
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupE/skipif.inc
@@ -0,0 +1,3 @@
+<?php
+ if (!extension_loaded('soap')) die('skip soap extension not available');
+?>
diff --git a/ext/soap/tests/interop/Round3/GroupF/r3_groupF_ext_001w.phpt b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_ext_001w.phpt
new file mode 100644
index 0000000..ecfb3a1
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_ext_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupF Extensibility 001 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupF_ext.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString("Hello World");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupF_ext.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringParam>Hello World</ns1:echoStringParam></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringReturn>Hello World</ns1:echoStringReturn></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupF/r3_groupF_extreq_001w.phpt b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_extreq_001w.phpt
new file mode 100644
index 0000000..05abe3b
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_extreq_001w.phpt
@@ -0,0 +1,15 @@
+--TEST--
+SOAP Interop Round3 GroupF Extensibility Required 001 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupF_extreq.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString("Hello World");
+echo $client->__getlastrequest();
+//$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+//include("round3_groupF_extreq.inc");
+echo "ok\n";
+?>
+--EXPECTF--
+Fatal error: SOAP-ERROR: Parsing WSDL: Unknown required WSDL extension 'http://soapinterop.org/ext' in %sr3_groupF_extreq_001w.php on line %d
diff --git a/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_001w.phpt b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_001w.phpt
new file mode 100644
index 0000000..958bdda
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round3 GroupF Headers 001 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round3_groupF_headers.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString("Hello World");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupF_headers.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringParam>Hello World</ns1:echoStringParam></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringReturn>Hello World</ns1:echoStringReturn></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_002w.phpt b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_002w.phpt
new file mode 100644
index 0000000..b60957b
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_002w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round3 GroupF Headers 002 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$hdr = new SoapHeader("http://soapinterop.org/xsd","Header1", array("int"=>34,"string"=>"arg"));
+$client = new SoapClient(dirname(__FILE__)."/round3_groupF_headers.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString",array("Hello World"),null,$hdr);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupF_headers.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Header><ns1:Header1><ns1:string>arg</ns1:string><ns1:int>34</ns1:int></ns1:Header1></SOAP-ENV:Header><SOAP-ENV:Body><ns1:echoStringParam>Hello World</ns1:echoStringParam></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringReturn>Hello World</ns1:echoStringReturn></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_003w.phpt b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_003w.phpt
new file mode 100644
index 0000000..1426c07
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_003w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round3 GroupF Headers 003 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$hdr = new SoapHeader("http://soapinterop.org/xsd","Header2", array("int"=>34,"string"=>"arg"));
+$client = new SoapClient(dirname(__FILE__)."/round3_groupF_headers.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString",array("Hello World"),null,$hdr);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupF_headers.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Header><ns1:Header2><ns1:int>34</ns1:int><ns1:string>arg</ns1:string></ns1:Header2></SOAP-ENV:Header><SOAP-ENV:Body><ns1:echoStringParam>Hello World</ns1:echoStringParam></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringReturn>Hello World</ns1:echoStringReturn></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_004w.phpt b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_004w.phpt
new file mode 100644
index 0000000..db99a7f
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/r3_groupF_headers_004w.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP Interop Round3 GroupF Headers 004 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$hdr = array(
+ new SoapHeader("http://soapinterop.org/xsd","Header1", array("int"=>34,"string"=>"arg1")),
+ new SoapHeader("http://soapinterop.org/xsd","Header2", array("int"=>43,"string"=>"arg2"))
+);
+$client = new SoapClient(dirname(__FILE__)."/round3_groupF_headers.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoString",array("Hello World"),null,$hdr);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round3_groupF_headers.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Header><ns1:Header1><ns1:string>arg1</ns1:string><ns1:int>34</ns1:int></ns1:Header1><ns1:Header2><ns1:int>43</ns1:int><ns1:string>arg2</ns1:string></ns1:Header2></SOAP-ENV:Header><SOAP-ENV:Body><ns1:echoStringParam>Hello World</ns1:echoStringParam></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd"><SOAP-ENV:Body><ns1:echoStringReturn>Hello World</ns1:echoStringReturn></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round3/GroupF/round3_groupF_ext.inc b/ext/soap/tests/interop/Round3/GroupF/round3_groupF_ext.inc
new file mode 100644
index 0000000..44bc83b
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/round3_groupF_ext.inc
@@ -0,0 +1,14 @@
+<?php
+class SOAP_Interop_GroupF {
+
+ function echoString($inputString)
+ {
+ return $inputString;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupF_ext.wsdl");
+$server->setClass("SOAP_Interop_GroupF");
+$server->handle();
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupF/round3_groupF_ext.wsdl b/ext/soap/tests/interop/Round3/GroupF/round3_groupF_ext.wsdl
new file mode 100644
index 0000000..74ec018
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/round3_groupF_ext.wsdl
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="WSDLInteropTestDocLitService"
+ targetNamespace="http://soapinterop.org/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://soapinterop.org/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd1="http://soapinterop.org/xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ext="http://soapinterop.org/ext">
+ <ext:types/>
+
+ <types>
+ <ext:schema targetNamespace="http://soapinterop.org/xsd"/>
+ <schema targetNamespace="http://soapinterop.org/xsd"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <element name="echoStringParam" type="xsd:string"/>
+
+ <element name="echoStringReturn" type="xsd:string"/>
+ </schema>
+ </types>
+ <ext:message name="echoString"/>
+ <message name="echoString">
+ <part element="xsd1:echoStringParam" name="a"/>
+ </message>
+ <message name="echoStringResponse">
+ <part element="xsd1:echoStringReturn" name="result"/>
+ </message>
+
+ <ext:portType name="WSDLInteropTestDocLitPortType"/>
+
+ <portType name="WSDLInteropTestDocLitPortType">
+ <operation name="echoString">
+ <input message="tns:echoString" name="echoString"/>
+ <output message="tns:echoStringResponse" name="echoStringResponse"/>
+ </operation>
+ </portType>
+ <ext:binding name="WSDLInteropTestDocLitPortBinding"/>
+ <binding name="WSDLInteropTestDocLitPortBinding"
+ type="tns:WSDLInteropTestDocLitPortType">
+ <ext:binding style ="chunked"/>
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <ext:operation style ="chunked"/>
+ <soap:operation soapAction="http://soapinterop.org/" style="document"/>
+ <input name="echoString">
+ <ext:body use ="direct"/>
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStringResponse">
+ <ext:body use ="direct"/>
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <ext:service name="WSDLInteropTestDocLitService"/>
+ <service name="WSDLInteropTestDocLitService">
+ <ext:port binding="tns:WSDLInteropTestDocLitPortBinding"
+ name="WSDLInteropTestDocLitPort"/>
+ <port binding="tns:WSDLInteropTestDocLitPortBinding"
+ name="WSDLInteropTestDocLitPort">
+ <ext:address location=""/>
+ <soap:address
+ location="round3_groupF_ext.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupF/round3_groupF_extreq.wsdl b/ext/soap/tests/interop/Round3/GroupF/round3_groupF_extreq.wsdl
new file mode 100644
index 0000000..8dfd65e
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/round3_groupF_extreq.wsdl
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name="WSDLInteropTestDocLitService"
+ targetNamespace="http://soapinterop.org/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://soapinterop.org/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd1="http://soapinterop.org/xsd"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ext="http://soapinterop.org/ext">
+ <ext:types/>
+
+ <types>
+ <ext:schema targetNamespace="http://soapinterop.org/xsd"/>
+ <schema targetNamespace="http://soapinterop.org/xsd"
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <element name="echoStringParam" type="xsd:string"/>
+
+ <element name="echoStringReturn" type="xsd:string"/>
+ </schema>
+ </types>
+ <ext:message name="echoString"/>
+ <message name="echoString">
+ <part element="xsd1:echoStringParam" name="a"/>
+ </message>
+ <message name="echoStringResponse">
+ <part element="xsd1:echoStringReturn" name="result"/>
+ </message>
+
+ <ext:portType name="WSDLInteropTestDocLitPortType"/>
+
+ <portType name="WSDLInteropTestDocLitPortType">
+ <operation name="echoString">
+ <input message="tns:echoString" name="echoString"/>
+ <output message="tns:echoStringResponse" name="echoStringResponse"/>
+ </operation>
+ </portType>
+ <ext:binding name="WSDLInteropTestDocLitPortBinding"/>
+ <binding name="WSDLInteropTestDocLitPortBinding"
+ type="tns:WSDLInteropTestDocLitPortType">
+ <ext:binding style ="chunked" wsdl:required="true"/>
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="echoString">
+ <ext:operation style ="chunked"/>
+ <soap:operation soapAction="http://soapinterop.org/" style="document"/>
+ <input name="echoString">
+ <ext:body use ="direct"/>
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </input>
+ <output name="echoStringResponse">
+ <ext:body use ="direct"/>
+ <soap:body namespace="http://soapinterop.org/WSDLInteropTestDocLit"
+ use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <ext:service name="WSDLInteropTestDocLitService"/>
+ <service name="WSDLInteropTestDocLitService">
+ <ext:port binding="tns:WSDLInteropTestDocLitPortBinding"
+ name="WSDLInteropTestDocLitPort"/>
+ <port binding="tns:WSDLInteropTestDocLitPortBinding"
+ name="WSDLInteropTestDocLitPort">
+ <ext:address location=""/>
+ <soap:address
+ location="round3_groupF_extreq.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupF/round3_groupF_headers.inc b/ext/soap/tests/interop/Round3/GroupF/round3_groupF_headers.inc
new file mode 100644
index 0000000..ee65811
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/round3_groupF_headers.inc
@@ -0,0 +1,22 @@
+<?php
+class SOAP_Interop_GroupF {
+
+ function Header1($input)
+ {
+ }
+
+ function Header2($input)
+ {
+ }
+
+ function echoString($inputString)
+ {
+ return $inputString;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round3_groupF_ext.wsdl");
+$server->setClass("SOAP_Interop_GroupF");
+$server->handle();
+?> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round3/GroupF/round3_groupF_headers.wsdl b/ext/soap/tests/interop/Round3/GroupF/round3_groupF_headers.wsdl
new file mode 100644
index 0000000..d03fc32
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/round3_groupF_headers.wsdl
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:s="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://soapinterop.org/"
+ xmlns:types="http://soapinterop.org/xsd"
+ targetNamespace="http://soapinterop.org/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
+ <s:element name="echoStringParam" type="s:string"/>
+
+ <s:element name="echoStringReturn" type="s:string"/>
+
+ <s:element name="Header1" type="types:Header1" />
+ <s:complexType name="Header1">
+ <s:sequence>
+ <s:element name="string" type="s:string" />
+ <s:element name="int" type="s:int" />
+ </s:sequence>
+ <s:anyAttribute />
+ </s:complexType>
+ <s:element name="Header2" type="types:Header2" />
+ <s:complexType name="Header2">
+ <s:sequence>
+ <s:element name="int" type="s:int" />
+ <s:element name="string" type="s:string" />
+ </s:sequence>
+ <s:anyAttribute />
+ </s:complexType>
+ </s:schema>
+ </types>
+ <message name="echoString">
+ <part element="types:echoStringParam" name="a"/>
+ </message>
+ <message name="echoStringResponse">
+ <part element="types:echoStringReturn" name="result"/>
+ </message>
+ <message name="Header1">
+ <part name="Header1" element="types:Header1" />
+ </message>
+ <message name="Header2">
+ <part name="Header2" element="types:Header2" />
+ </message>
+ <portType name="RetHeaderPortType">
+ <operation name="echoString">
+ <input message="tns:echoString" />
+ <output message="tns:echoStringResponse" />
+ </operation>
+ </portType>
+ <binding name = "RetHeaderBinding" type="tns:RetHeaderPortType">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
+ <operation name="echoString">
+ <soap:operation soapAction="http://soapinterop.org/" style="document" />
+ <input>
+ <soap:body use="literal" />
+ <soap:header message="tns:Header1" part="Header1" use="literal"/>
+ <soap:header message="tns:Header2" part="Header2" use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
+ <service name="RetHeaderService">
+ <port name="RetHeaderPort" binding="tns:RetHeaderBinding">
+ <soap:address location="round3_groupF_headers.inc"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round3/GroupF/skipif.inc b/ext/soap/tests/interop/Round3/GroupF/skipif.inc
new file mode 100644
index 0000000..fa8574e
--- /dev/null
+++ b/ext/soap/tests/interop/Round3/GroupF/skipif.inc
@@ -0,0 +1,3 @@
+<?php
+ if (!extension_loaded('soap')) die('skip soap extension not available');
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimedoc.inc b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimedoc.inc
new file mode 100644
index 0000000..c2a2718
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimedoc.inc
@@ -0,0 +1,33 @@
+<?php
+class SOAP_Interop_GroupG {
+
+ function EchoBase64AsAttachment($in) {
+ return $in;
+ }
+
+ function EchoAttachmentAsBase64($in) {
+ return $in;
+ }
+
+ function EchoAttachment($in) {
+ return $in;
+ }
+
+ function EchoAttachments($in) {
+ return $in;
+ }
+
+ function EchoAttachmentAsString($in) {
+ return $in;
+ }
+
+ function EchoUnrefAttachments($in) {
+ return $in;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round4_groupG_dimedoc.wsdl");
+$server->setClass("SOAP_Interop_GroupG");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimedoc.wsdl b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimedoc.wsdl
new file mode 100644
index 0000000..f82216e
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimedoc.wsdl
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions name="SOAPBuilders" xmlns="http://soapinterop.org/attachments/wsdl" xmlns:types="http://soapinterop.org/attachments/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:dime="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/" xmlns:content="http://schemas.xmlsoap.org/ws/2002/04/content-type/" xmlns:ref="http://schemas.xmlsoap.org/ws/2002/04/reference/" targetNamespace="http://soapinterop.org/attachments/wsdl">
+ <wsdl:types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/attachments/xsd" elementFormDefault="qualified" attributeFormDefault="qualified">
+ <import namespace="http://schemas.xmlsoap.org/ws/2002/04/reference/"/>
+ <import namespace="http://schemas.xmlsoap.org/ws/2002/04/content-type/"/>
+ <complexType name="ReferencedBinary">
+ <simpleContent>
+ <restriction base="xsd:base64Binary">
+ <annotation>
+ <appinfo>
+ <content:mediaType value="application/octetstream"/>
+ </appinfo>
+ </annotation>
+ <attribute ref="ref:location" use="optional"/>
+ </restriction>
+ </simpleContent>
+ </complexType>
+ <complexType name="ReferencedText">
+ <simpleContent>
+ <restriction base="xsd:base64Binary">
+ <annotation>
+ <appinfo>
+ <content:mediaType value="text/plain"/>
+ </appinfo>
+ </annotation>
+ <attribute ref="ref:location" use="optional"/>
+ </restriction>
+ </simpleContent>
+ </complexType>
+ <element name="EchoAttachment" type="types:EchoAttachment"/>
+ <element name="EchoAttachmentResponse" type="types:EchoAttachmentResponse"/>
+ <complexType name="EchoAttachment">
+ <sequence>
+ <element name="In" type="types:ReferencedBinary"/>
+ </sequence>
+ </complexType>
+ <complexType name="EchoAttachmentResponse">
+ <sequence>
+ <element name="Out" type="types:ReferencedBinary"/>
+ </sequence>
+ </complexType>
+ <element name="EchoAttachments" type="types:Attachments"/>
+ <element name="EchoAttachmentsResponse" type="types:Attachments"/>
+ <complexType name="Attachments">
+ <sequence>
+ <element name="Item" minOccurs="0" maxOccurs="unbounded" type="types:ReferencedBinary"/>
+ </sequence>
+ </complexType>
+ <element name="EchoAttachmentAsBase64" type="types:EchoAttachment"/>
+ <element name="EchoAttachmentAsBase64Response" type="types:base64Out"/>
+ <element name="EchoBase64AsAttachment" type="types:base64In"/>
+ <element name="EchoBase64AsAttachmentResponse" type="types:EchoAttachmentResponse"/>
+ <complexType name="base64In">
+ <sequence>
+ <element name="In" type="xsd:base64Binary"/>
+ </sequence>
+ </complexType>
+ <complexType name="base64Out">
+ <sequence>
+ <element name="Out" type="xsd:base64Binary"/>
+ </sequence>
+ </complexType>
+ <element name="EchoUnrefAttachments" type="types:emptyType"/>
+ <element name="EchoUnrefAttachmentsResponse" type="types:emptyType"/>
+ <complexType name="emptyType">
+ <sequence/>
+ </complexType>
+ <element name="EchoAttachmentAsString" type="types:EchoAttachmentAsString"/>
+ <element name="EchoAttachmentAsStringResponse" type="types:EchoAttachmentAsStringResponse"/>
+ <complexType name="EchoAttachmentAsString">
+ <sequence>
+ <element name="In" type="types:ReferencedText"/>
+ </sequence>
+ </complexType>
+ <complexType name="EchoAttachmentAsStringResponse">
+ <sequence>
+ <element name="Out" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="EchoAttachmentIn">
+ <wsdl:part name="In" element="types:EchoAttachment"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentOut">
+ <wsdl:part name="Out" element="types:EchoAttachmentResponse"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentsIn">
+ <wsdl:part name="In" element="types:EchoAttachments"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentsOut">
+ <wsdl:part name="Out" element="types:EchoAttachmentsResponse"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsBase64In">
+ <wsdl:part name="In" element="types:EchoAttachmentAsBase64"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsBase64Out">
+ <wsdl:part name="Out" element="types:EchoAttachmentAsBase64Response"/>
+ </wsdl:message>
+ <wsdl:message name="EchoBase64AsAttachmentIn">
+ <wsdl:part name="In" element="types:EchoBase64AsAttachment"/>
+ </wsdl:message>
+ <wsdl:message name="EchoBase64AsAttachmentOut">
+ <wsdl:part name="Out" element="types:EchoBase64AsAttachmentResponse"/>
+ </wsdl:message>
+ <wsdl:message name="EchoUnrefAttachmentsIn">
+ <wsdl:part name="In" element="types:EchoUnrefAttachments"/>
+ </wsdl:message>
+ <wsdl:message name="EchoUnrefAttachmentsOut">
+ <wsdl:part name="Out" element="types:EchoUnrefAttachmentsResponse"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsStringIn">
+ <wsdl:part name="In" element="types:EchoAttachmentAsString"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsStringOut">
+ <wsdl:part name="Out" element="types:EchoAttachmentAsStringResponse"/>
+ </wsdl:message>
+ <wsdl:portType name="AttachmentsPortType">
+ <wsdl:operation name="EchoAttachment">
+ <wsdl:input name="EchoAttachmentInput" message="EchoAttachmentIn"/>
+ <wsdl:output name="EchoAttachmentOutput" message="EchoAttachmentOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachments">
+ <wsdl:input name="EchoAttachmentsInput" message="EchoAttachmentsIn"/>
+ <wsdl:output name="EchoAttachmentsOutput" message="EchoAttachmentsOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsBase64">
+ <wsdl:input name="EchoAttachmentAsBase64Input" message="EchoAttachmentAsBase64In"/>
+ <wsdl:output name="EchoAttachmentAsBase64Output" message="EchoAttachmentAsBase64Out"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoBase64AsAttachment">
+ <wsdl:input name="EchoBase64AsAttachmentInput" message="EchoBase64AsAttachmentIn"/>
+ <wsdl:output name="EchoBase64AsAttachmentOutput" message="EchoBase64AsAttachmentOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoUnrefAttachments">
+ <wsdl:input name="EchoUnrefAttachmentsInput" message="EchoUnrefAttachmentsIn"/>
+ <wsdl:output name="EchoUnrefAttachmentsOutput" message="EchoUnrefAttachmentsOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsString">
+ <wsdl:input name="EchoAttachmentAsStringInput" message="EchoAttachmentAsStringIn"/>
+ <wsdl:output name="EchoAttachmentAsStringOutput" message="EchoAttachmentAsStringOut"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="AttachmentsBinding" type="AttachmentsPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="EchoAttachment">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentInput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentOutput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachments">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentsInput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentsOutput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsBase64">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentAsBase64Input">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentAsBase64Output">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoBase64AsAttachment">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoBase64AsAttachmentInput">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="EchoBase64AsAttachmentOutput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoUnrefAttachments">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoUnrefAttachmentsInput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/open-layout" wsdl:required="true"/>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="EchoUnrefAttachmentsOutput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/open-layout" wsdl:required="true"/>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsString">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentAsStringInput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentAsStringOutput">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="Round4DIMEDOC">
+ <wsdl:port name="Round4DIMEDOCTestSoap" binding="AttachmentsBinding">
+ <soap:address location="test://" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimerpc.inc b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimerpc.inc
new file mode 100644
index 0000000..2f3c00a
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimerpc.inc
@@ -0,0 +1,33 @@
+<?php
+class SOAP_Interop_GroupG {
+
+ function EchoBase64AsAttachment($in) {
+ return $in;
+ }
+
+ function EchoAttachmentAsBase64($in) {
+ return $in;
+ }
+
+ function EchoAttachment($in) {
+ return $in;
+ }
+
+ function EchoAttachments($in) {
+ return $in;
+ }
+
+ function EchoAttachmentAsString($in) {
+ return $in;
+ }
+
+ function EchoUnrefAttachments($in) {
+ return $in;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round4_groupG_dimerpc.wsdl");
+$server->setClass("SOAP_Interop_GroupG");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimerpc.wsdl b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimerpc.wsdl
new file mode 100644
index 0000000..dfaf81e
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_dimerpc.wsdl
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions name="SOAPBuilders" xmlns="http://soapinterop.org/attachments/wsdl" xmlns:types="http://soapinterop.org/attachments/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:dime="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/" xmlns:content="http://schemas.xmlsoap.org/ws/2002/04/content-type/" targetNamespace="http://soapinterop.org/attachments/wsdl">
+ <wsdl:types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/attachments/xsd">
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/" location="http://schemas.xmlsoap.org/soap/encoding/" />
+ <import namespace="http://schemas.xmlsoap.org/ws/2002/04/content-type/"/>
+ <import namespace="http://schemas.xmlsoap.org/ws/2002/04/reference/"/>
+ <complexType name="ReferencedBinary">
+ <simpleContent>
+ <restriction base="soap-enc:base64Binary">
+ <annotation>
+ <appinfo>
+ <content:mediaType value="application/octetstream"/>
+ </appinfo>
+ </annotation>
+ <attributeGroup ref="soap-enc:commonAttributes"/>
+ </restriction>
+ </simpleContent>
+ </complexType>
+ <complexType name="ArrayOfBinary">
+ <complexContent>
+ <restriction base="soap-enc:Array">
+ <attribute ref="soap-enc:arrayType" wsdl:arrayType="types:ReferencedBinary[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="ReferencedText">
+ <simpleContent>
+ <restriction base="soap-enc:base64Binary">
+ <annotation>
+ <appinfo>
+ <content:mediaType value="text/plain"/>
+ </appinfo>
+ </annotation>
+ <attributeGroup ref="soap-enc:commonAttributes"/>
+ </restriction>
+ </simpleContent>
+ </complexType>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="EchoAttachmentIn">
+ <wsdl:part name="In" type="types:ReferencedBinary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentOut">
+ <wsdl:part name="Out" type="types:ReferencedBinary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentsIn">
+ <wsdl:part name="In" type="types:ArrayOfBinary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentsOut">
+ <wsdl:part name="Out" type="types:ArrayOfBinary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsBase64In">
+ <wsdl:part name="In" type="types:ReferencedBinary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsBase64Out">
+ <wsdl:part name="Out" type="xsd:base64Binary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoBase64AsAttachmentIn">
+ <wsdl:part name="In" type="xsd:base64Binary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoBase64AsAttachmentOut">
+ <wsdl:part name="Out" type="types:ReferencedBinary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoUnrefAttachmentsIn" />
+ <wsdl:message name="EchoUnrefAttachmentsOut" />
+ <wsdl:message name="EchoAttachmentAsStringIn">
+ <wsdl:part name="In" type="types:ReferencedText"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsStringOut">
+ <wsdl:part name="Out" type="xsd:string"/>
+ </wsdl:message>
+
+ <wsdl:portType name="AttachmentsPortType">
+ <wsdl:operation name="EchoAttachment">
+ <wsdl:input name="EchoAttachmentInput" message="EchoAttachmentIn"/>
+ <wsdl:output name="EchoAttachmentOutput" message="EchoAttachmentOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachments">
+ <wsdl:input name="EchoAttachmentsInput" message="EchoAttachmentsIn"/>
+ <wsdl:output name="EchoAttachmentsOutput" message="EchoAttachmentsOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsBase64">
+ <wsdl:input name="EchoAttachmentAsBase64Input" message="EchoAttachmentAsBase64In"/>
+ <wsdl:output name="EchoAttachmentAsBase64Output" message="EchoAttachmentAsBase64Out"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoBase64AsAttachment">
+ <wsdl:input name="EchoBase64AsAttachmentInput" message="EchoBase64AsAttachmentIn"/>
+ <wsdl:output name="EchoBase64AsAttachmentOutput" message="EchoBase64AsAttachmentOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoUnrefAttachments">
+ <wsdl:input name="EchoUnrefAttachmentsInput" message="EchoUnrefAttachmentsIn"/>
+ <wsdl:output name="EchoUnrefAttachmentsOutput" message="EchoUnrefAttachmentsOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsString">
+ <wsdl:input name="EchoAttachmentAsStringInput" message="EchoAttachmentAsStringIn"/>
+ <wsdl:output name="EchoAttachmentAsStringOutput" message="EchoAttachmentAsStringOut"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="AttachmentsBinding" type="AttachmentsPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="EchoAttachment">
+ <soap:operation style="rpc" soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentInput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentOutput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachments">
+ <soap:operation style="rpc" soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentsInput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentsOutput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsBase64">
+ <soap:operation style="rpc" soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentAsBase64Input">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentAsBase64Output">
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoBase64AsAttachment">
+ <soap:operation style="rpc" soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoBase64AsAttachmentInput">
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:input>
+ <wsdl:output name="EchoBase64AsAttachmentOutput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoUnrefAttachments">
+ <soap:operation style="rpc" soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoUnrefAttachmentsInput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/open-layout" wsdl:required="true"/>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:input>
+ <wsdl:output name="EchoUnrefAttachmentsOutput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/open-layout" wsdl:required="true"/>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsString">
+ <soap:operation style="rpc" soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentAsStringInput">
+ <dime:message layout="http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" wsdl:required="true"/>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentAsStringOutput">
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="Round4DIMERPC">
+ <wsdl:port name="Round4DIMERPCTestSoap" binding="AttachmentsBinding">
+ <soap:address location="test://" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimedoc.inc b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimedoc.inc
new file mode 100644
index 0000000..8ed272e
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimedoc.inc
@@ -0,0 +1,25 @@
+<?php
+class SOAP_Interop_GroupG {
+
+ function EchoBase64AsAttachment($in) {
+ return $in;
+ }
+
+ function EchoAttachmentAsBase64($in) {
+ return $in;
+ }
+
+ function EchoAttachment($in) {
+ return $in;
+ }
+
+ function EchoAttachments($in) {
+ return $in;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round4_groupG_dimedoc.wsdl");
+$server->setClass("SOAP_Interop_GroupG");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimedoc.wsdl b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimedoc.wsdl
new file mode 100644
index 0000000..c67172e
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimedoc.wsdl
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions name="SOAPBuilders"
+ xmlns="http://soapinterop.org/attachments/wsdl"
+ xmlns:types="http://soapinterop.org/attachments/xsd"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
+ xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
+ targetNamespace="http://soapinterop.org/attachments/wsdl">
+ <wsdl:types>
+ <schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://soapinterop.org/attachments/xsd"
+ elementFormDefault="qualified"
+ attributeFormDefault="qualified">
+
+ <complexType name="binary">
+ <simpleContent>
+ <extension base="xsd:base64Binary">
+ <attribute name="href" type="xsd:anyURI"/>
+ </extension>
+ </simpleContent>
+ </complexType >
+
+ <element name="EchoAttachment" type="types:EchoAttachment"/>
+ <element name="EchoAttachmentResponse" type="types:EchoAttachmentResponse"/>
+ <complexType name="EchoAttachment">
+ <sequence>
+ <element name="In" type="types:binary"/>
+ </sequence>
+ </complexType>
+ <complexType name="EchoAttachmentResponse">
+ <sequence>
+ <element name="Out" type="types:binary"/>
+ </sequence>
+ </complexType>
+
+ <element name="EchoAttachments" type="types:Attachments"/>
+ <element name="EchoAttachmentsResponse" type="types:Attachments"/>
+ <complexType name="Attachments">
+ <sequence>
+ <element name="Item" minOccurs="0" maxOccurs="unbounded" type="types:binary">
+ </element>
+ </sequence>
+ </complexType>
+
+ <element name="EchoAttachmentAsBase64" type="types:EchoAttachment"/>
+ <element name="EchoAttachmentAsBase64Response" type="types:EchoAttachmentResponse"/>
+
+ <element name="EchoBase64AsAttachment" type="types:EchoAttachment"/>
+ <element name="EchoBase64AsAttachmentResponse" type="types:EchoAttachmentResponse"/>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="EchoAttachmentIn">
+ <wsdl:part name="In" element="types:EchoAttachment"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentOut">
+ <wsdl:part name="Out" element="types:EchoAttachmentResponse"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentsIn">
+ <wsdl:part name="In" element="types:EchoAttachments"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentsOut">
+ <wsdl:part name="Out" element="types:EchoAttachmentsResponse"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsBase64In">
+ <wsdl:part name="In" element="types:EchoAttachmentAsBase64"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsBase64Out">
+ <wsdl:part name="Out" element="types:EchoAttachmentAsBase64Response"/>
+ </wsdl:message>
+ <wsdl:message name="EchoBase64AsAttachmentIn">
+ <wsdl:part name="In" element="types:EchoBase64AsAttachment"/>
+ </wsdl:message>
+ <wsdl:message name="EchoBase64AsAttachmentOut">
+ <wsdl:part name="Out" element="types:EchoBase64AsAttachmentResponse"/>
+ </wsdl:message>
+
+ <wsdl:portType name="AttachmentsPortType">
+ <wsdl:operation name="EchoAttachment">
+ <wsdl:input name="EchoAttachmentInput" message="EchoAttachmentIn"/>
+ <wsdl:output name="EchoAttachmentOutput" message="EchoAttachmentOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachments">
+ <wsdl:input name="EchoAttachmentsInput" message="EchoAttachmentsIn"/>
+ <wsdl:output name="EchoAttachmentsOutput" message="EchoAttachmentsOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsBase64">
+ <wsdl:input name="EchoAttachmentAsBase64Input" message="EchoAttachmentAsBase64In"/>
+ <wsdl:output name="EchoAttachmentAsBase64Output" message="EchoAttachmentAsBase64Out"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoBase64AsAttachment">
+ <wsdl:input name="EchoBase64AsAttachmentInput" message="EchoBase64AsAttachmentIn"/>
+ <wsdl:output name="EchoBase64AsAttachmentOutput" message="EchoBase64AsAttachmentOut"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="AttachmentsBinding" type="AttachmentsPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="EchoAttachment">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentInput">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="literal"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="In" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentOutput">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="literal" />
+ </mime:part>
+ <mime:part>
+ <mime:content part="Out" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachments">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentsInput">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="literal"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="In" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentsOutput">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="literal"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="Out" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsBase64">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentAsBase64Input">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="literal"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="In" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentAsBase64Output">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoBase64AsAttachment">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoBase64AsAttachmentInput">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="EchoBase64AsAttachmentOutput">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="literal"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="Out" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="Round4MIMEDOC">
+ <wsdl:port name="Round4MIMEDOCTestSoap" binding="AttachmentsBinding">
+ <soap:address location="test://" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions> \ No newline at end of file
diff --git a/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimerpc.inc b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimerpc.inc
new file mode 100644
index 0000000..8ed272e
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimerpc.inc
@@ -0,0 +1,25 @@
+<?php
+class SOAP_Interop_GroupG {
+
+ function EchoBase64AsAttachment($in) {
+ return $in;
+ }
+
+ function EchoAttachmentAsBase64($in) {
+ return $in;
+ }
+
+ function EchoAttachment($in) {
+ return $in;
+ }
+
+ function EchoAttachments($in) {
+ return $in;
+ }
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round4_groupG_dimedoc.wsdl");
+$server->setClass("SOAP_Interop_GroupG");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimerpc.wsdl b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimerpc.wsdl
new file mode 100644
index 0000000..72aea03
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupG/round4_groupG_mimerpc.wsdl
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions name="SOAPBuilders"
+ xmlns="http://soapinterop.org/attachments/wsdl"
+ xmlns:types="http://soapinterop.org/attachments/xsd"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
+ xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
+ targetNamespace="http://soapinterop.org/attachments/wsdl">
+ <wsdl:types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/attachments/xsd">
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="ArrayOfBinary">
+ <complexContent>
+ <restriction base="soap-enc:Array">
+ <attribute ref="soap-enc:arrayType" wsdl:arrayType="soap-enc:base64Binary[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="EchoAttachmentIn">
+ <wsdl:part name="In" type="xsd:base64Binary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentOut">
+ <wsdl:part name="Out" type="xsd:base64Binary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentsIn">
+ <wsdl:part name="In" type="types:ArrayOfBinary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentsOut">
+ <wsdl:part name="Out" type="types:ArrayOfBinary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsBase64In">
+ <wsdl:part name="In" type="xsd:base64Binary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoAttachmentAsBase64Out">
+ <wsdl:part name="Out" type="xsd:base64Binary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoBase64AsAttachmentIn">
+ <wsdl:part name="In" type="xsd:base64Binary"/>
+ </wsdl:message>
+ <wsdl:message name="EchoBase64AsAttachmentOut">
+ <wsdl:part name="Out" type="xsd:base64Binary"/>
+ </wsdl:message>
+ <wsdl:portType name="AttachmentsPortType">
+ <wsdl:operation name="EchoAttachment">
+ <wsdl:input name="EchoAttachmentInput" message="EchoAttachmentIn"/>
+ <wsdl:output name="EchoAttachmentOutput" message="EchoAttachmentOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachments">
+ <wsdl:input name="EchoAttachmentsInput" message="EchoAttachmentsIn"/>
+ <wsdl:output name="EchoAttachmentsOutput" message="EchoAttachmentsOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsBase64">
+ <wsdl:input name="EchoAttachmentAsBase64Input" message="EchoAttachmentAsBase64In"/>
+ <wsdl:output name="EchoAttachmentAsBase64Output" message="EchoAttachmentAsBase64Out"/>
+ </wsdl:operation>
+ <wsdl:operation name="EchoBase64AsAttachment">
+ <wsdl:input name="EchoBase64AsAttachmentInput" message="EchoBase64AsAttachmentIn"/>
+ <wsdl:output name="EchoBase64AsAttachmentOutput" message="EchoBase64AsAttachmentOut"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="AttachmentsBinding" type="AttachmentsPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="EchoAttachment">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentInput">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="In" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentOutput">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="Out" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachments">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentsInput">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="In" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentsOutput">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="Out" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoAttachmentAsBase64">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoAttachmentAsBase64Input">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="In" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:input>
+ <wsdl:output name="EchoAttachmentAsBase64Output">
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="EchoBase64AsAttachment">
+ <soap:operation soapAction="http://soapinterop.org/attachments/"/>
+ <wsdl:input name="EchoBase64AsAttachmentInput">
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:input>
+ <wsdl:output name="EchoBase64AsAttachmentOutput">
+ <mime:multipartRelated>
+ <mime:part>
+ <soap:body use="encoded" namespace="http://soapinterop.org/attachments/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </mime:part>
+ <mime:part>
+ <mime:content part="Out" type="application/octetstream"/>
+ </mime:part>
+ </mime:multipartRelated>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="Round4MIMERPC">
+ <wsdl:port name="Round4MIMERPCTestSoap" binding="AttachmentsBinding">
+ <soap:address location="test://" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/ext/soap/tests/interop/Round4/GroupG/skipif.inc b/ext/soap/tests/interop/Round4/GroupG/skipif.inc
new file mode 100644
index 0000000..fa8574e
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupG/skipif.inc
@@ -0,0 +1,3 @@
+<?php
+ if (!extension_loaded('soap')) die('skip soap extension not available');
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_001w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_001w.phpt
new file mode 100644
index 0000000..c95d3d1
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_001w.phpt
@@ -0,0 +1,26 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex Doc Lit 001 (php/wsdl): echoSOAPStructFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoSOAPStructFault($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns2:echoSOAPStructFaultRequest><ns1:varString>arg</ns1:varString><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns2:echoSOAPStructFaultRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoSOAPStructFault'.</faultstring><detail><ns2:SOAPStructFaultPart><ns1:soapStruct><ns1:varString>arg</ns1:varString><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns1:soapStruct></ns2:SOAPStructFaultPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_002w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_002w.phpt
new file mode 100644
index 0000000..ce7d00b
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_002w.phpt
@@ -0,0 +1,32 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex Doc Lit 002 (php/wsdl): echoBaseStructFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->structMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+$struct = new BaseStruct(new SOAPStruct("a1",11,12.345),11);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoBaseStructFault($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns2:echoBaseStructFaultRequest><ns1:structMessage><ns1:varString>a1</ns1:varString><ns1:varInt>11</ns1:varInt><ns1:varFloat>12.345</ns1:varFloat></ns1:structMessage><ns1:shortMessage>11</ns1:shortMessage></ns2:echoBaseStructFaultRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoBaseStructFault'.</faultstring><detail><ns2:BaseStructPart><ns1:structMessage><ns1:varString>a1</ns1:varString><ns1:varInt>11</ns1:varInt><ns1:varFloat>12.345</ns1:varFloat></ns1:structMessage><ns1:shortMessage>11</ns1:shortMessage></ns2:BaseStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_003w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_003w.phpt
new file mode 100644
index 0000000..c9f31e0
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_003w.phpt
@@ -0,0 +1,40 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex Doc Lit 003 (php/wsdl): echoExtendedStructFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->structMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+class ExtendedStruct extends BaseStruct {
+ function ExtendedStruct($f, $s, $x1, $x2, $x3) {
+ $this->BaseStruct($f,$s);
+ $this->stringMessage = $x1;
+ $this->intMessage = $x2;
+ $this->anotherIntMessage = $x3;
+ }
+}
+$struct = new ExtendedStruct(new SOAPStruct("a1",11,12.345),12,"arg",-3,5);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoExtendedStructFault($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns2:echoExtendedStructFaultRequest><ns1:structMessage><ns1:varString>a1</ns1:varString><ns1:varInt>11</ns1:varInt><ns1:varFloat>12.345</ns1:varFloat></ns1:structMessage><ns1:shortMessage>12</ns1:shortMessage><ns1:stringMessage>arg</ns1:stringMessage><ns1:intMessage>-3</ns1:intMessage><ns1:anotherIntMessage>5</ns1:anotherIntMessage></ns2:echoExtendedStructFaultRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoExtendedStructFault'.</faultstring><detail><ns2:ExtendedStructPart><ns1:structMessage><ns1:varString>a1</ns1:varString><ns1:varInt>11</ns1:varInt><ns1:varFloat>12.345</ns1:varFloat></ns1:structMessage><ns1:shortMessage>12</ns1:shortMessage><ns1:stringMessage>arg</ns1:stringMessage><ns1:intMessage>-3</ns1:intMessage><ns1:anotherIntMessage>5</ns1:anotherIntMessage></ns2:ExtendedStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_004w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_004w.phpt
new file mode 100644
index 0000000..4c917b7
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_004w.phpt
@@ -0,0 +1,35 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex Doc Lit 004 (php/wsdl): echoMultipleFaults1(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->structMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+$s1 = new SOAPStruct('arg1',34,325.325);
+$s2 = new BaseStruct(new SOAPStruct('arg2',34,325.325),12);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(array("whichFault" => 1,
+ "param1" => $s1,
+ "param2" => $s2));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>1</ns1:whichFault><ns1:param1><ns2:varString>arg1</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>arg2</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns2:structMessage><ns2:shortMessage>12</ns2:shortMessage></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:SOAPStructFaultPart><ns1:soapStruct><ns1:varString>arg1</ns1:varString><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns1:soapStruct></ns2:SOAPStructFaultPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_005w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_005w.phpt
new file mode 100644
index 0000000..1a50cfa
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_005w.phpt
@@ -0,0 +1,35 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex Doc Lit 005 (php/wsdl): echoMultipleFaults1(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->structMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+$s1 = new SOAPStruct('arg1',34,325.325);
+$s2 = new BaseStruct(new SOAPStruct('arg2',34,325.325),12);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(array("whichFault" => 2,
+ "param1" => $s1,
+ "param2" => $s2));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>2</ns1:whichFault><ns1:param1><ns2:varString>arg1</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>arg2</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns2:structMessage><ns2:shortMessage>12</ns2:shortMessage></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:BaseStructPart><ns1:structMessage><ns1:varString>arg2</ns1:varString><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns1:structMessage><ns1:shortMessage>12</ns1:shortMessage></ns2:BaseStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_006w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_006w.phpt
new file mode 100644
index 0000000..88302b8
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_006w.phpt
@@ -0,0 +1,35 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex Doc Lit 006 (php/wsdl): echoMultipleFaults1(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->structMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+$s1 = new SOAPStruct('arg1',34,325.325);
+$s2 = new BaseStruct(new SOAPStruct('arg2',34,325.325),12);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(array("whichFault" => 3,
+ "param1" => $s1,
+ "param2" => $s2));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>3</ns1:whichFault><ns1:param1><ns2:varString>arg1</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>arg2</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns2:structMessage><ns2:shortMessage>12</ns2:shortMessage></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:SOAPStructFaultPart><ns1:soapStruct><ns1:varString>arg1</ns1:varString><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns1:soapStruct></ns2:SOAPStructFaultPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
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
new file mode 100644
index 0000000..2b5de61
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt
@@ -0,0 +1,51 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex Doc Lit 007 (php/wsdl): echoMultipleFaults2(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->structMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+class ExtendedStruct extends BaseStruct {
+ function ExtendedStruct($f, $s, $x1, $x2, $x3) {
+ $this->BaseStruct($f,$s);
+ $this->stringMessage = $x1;
+ $this->intMessage = $x2;
+ $this->anotherIntMessage = $x3;
+ }
+}
+class MoreExtendedStruct extends ExtendedStruct {
+ function MoreExtendedStruct($f, $s, $x1, $x2, $x3, $b) {
+ $this->ExtendedStruct($f, $s, $x1, $x2, $x3);
+ $this->booleanMessage = $b;
+ }
+}
+$s1 = new BaseStruct(new SOAPStruct("s1",1,1.1),1);
+$s2 = new ExtendedStruct(new SOAPStruct("s2",2,2.2),2,"arg",-3,5);
+$s3 = new MoreExtendedStruct(new SOAPStruct("s3",3,3.3),3,"arg",-3,5,true);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(array("whichFault" => 1,
+ "param1" => $s1,
+ "param2" => $s2,
+ "param3" => $s3));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>1</ns1:whichFault><ns1:param1><ns2:structMessage><ns2:varString>s1</ns2:varString><ns2:varInt>1</ns2:varInt><ns2:varFloat>1.1</ns2:varFloat></ns2:structMessage><ns2:shortMessage>1</ns2:shortMessage></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>s2</ns2:varString><ns2:varInt>2</ns2:varInt><ns2:varFloat>2.2</ns2:varFloat></ns2:structMessage><ns2:shortMessage>2</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage></ns1:param2><ns1:param3><ns2:structMessage><ns2:varString>s3</ns2:varString><ns2:varInt>3</ns2:varInt><ns2:varFloat>3.3</ns2:varFloat></ns2:structMessage><ns2:shortMessage>3</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage><ns2:booleanMessage>1</ns2:booleanMessage></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:BaseStructPart><ns1:structMessage><ns1:varString>s1</ns1:varString><ns1:varInt>1</ns1:varInt><ns1:varFloat>1.1</ns1:varFloat></ns1:structMessage><ns1:shortMessage>1</ns1:shortMessage></ns2:BaseStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
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
new file mode 100644
index 0000000..1e4a1a2
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt
@@ -0,0 +1,51 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex Doc Lit 008 (php/wsdl): echoMultipleFaults2(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->structMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+class ExtendedStruct extends BaseStruct {
+ function ExtendedStruct($f, $s, $x1, $x2, $x3) {
+ $this->BaseStruct($f,$s);
+ $this->stringMessage = $x1;
+ $this->intMessage = $x2;
+ $this->anotherIntMessage = $x3;
+ }
+}
+class MoreExtendedStruct extends ExtendedStruct {
+ function MoreExtendedStruct($f, $s, $x1, $x2, $x3, $b) {
+ $this->ExtendedStruct($f, $s, $x1, $x2, $x3);
+ $this->booleanMessage = $b;
+ }
+}
+$s1 = new BaseStruct(new SOAPStruct("s1",1,1.1),1);
+$s2 = new ExtendedStruct(new SOAPStruct("s2",2,2.2),2,"arg",-3,5);
+$s3 = new MoreExtendedStruct(new SOAPStruct("s3",3,3.3),3,"arg",-3,5,true);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(array("whichFault" => 2,
+ "param1" => $s1,
+ "param2" => $s2,
+ "param3" => $s3));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>2</ns1:whichFault><ns1:param1><ns2:structMessage><ns2:varString>s1</ns2:varString><ns2:varInt>1</ns2:varInt><ns2:varFloat>1.1</ns2:varFloat></ns2:structMessage><ns2:shortMessage>1</ns2:shortMessage></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>s2</ns2:varString><ns2:varInt>2</ns2:varInt><ns2:varFloat>2.2</ns2:varFloat></ns2:structMessage><ns2:shortMessage>2</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage></ns1:param2><ns1:param3><ns2:structMessage><ns2:varString>s3</ns2:varString><ns2:varInt>3</ns2:varInt><ns2:varFloat>3.3</ns2:varFloat></ns2:structMessage><ns2:shortMessage>3</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage><ns2:booleanMessage>1</ns2:booleanMessage></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:ExtendedStructPart><ns1:structMessage><ns1:varString>s2</ns1:varString><ns1:varInt>2</ns1:varInt><ns1:varFloat>2.2</ns1:varFloat></ns1:structMessage><ns1:shortMessage>2</ns1:shortMessage><ns1:stringMessage>arg</ns1:stringMessage><ns1:intMessage>-3</ns1:intMessage><ns1:anotherIntMessage>5</ns1:anotherIntMessage></ns2:ExtendedStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
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
new file mode 100644
index 0000000..5993012
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt
@@ -0,0 +1,51 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex Doc Lit 009 (php/wsdl): echoMultipleFaults2(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->structMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+class ExtendedStruct extends BaseStruct {
+ function ExtendedStruct($f, $s, $x1, $x2, $x3) {
+ $this->BaseStruct($f,$s);
+ $this->stringMessage = $x1;
+ $this->intMessage = $x2;
+ $this->anotherIntMessage = $x3;
+ }
+}
+class MoreExtendedStruct extends ExtendedStruct {
+ function MoreExtendedStruct($f, $s, $x1, $x2, $x3, $b) {
+ $this->ExtendedStruct($f, $s, $x1, $x2, $x3);
+ $this->booleanMessage = $b;
+ }
+}
+$s1 = new BaseStruct(new SOAPStruct("s1",1,1.1),1);
+$s2 = new ExtendedStruct(new SOAPStruct("s2",2,2.2),2,"arg",-3,5);
+$s3 = new MoreExtendedStruct(new SOAPStruct("s3",3,3.3),3,"arg",-3,5,true);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(array("whichFault" => 3,
+ "param1" => $s1,
+ "param2" => $s2,
+ "param3" => $s3));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>3</ns1:whichFault><ns1:param1><ns2:structMessage><ns2:varString>s1</ns2:varString><ns2:varInt>1</ns2:varInt><ns2:varFloat>1.1</ns2:varFloat></ns2:structMessage><ns2:shortMessage>1</ns2:shortMessage></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>s2</ns2:varString><ns2:varInt>2</ns2:varInt><ns2:varFloat>2.2</ns2:varFloat></ns2:structMessage><ns2:shortMessage>2</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage></ns1:param2><ns1:param3><ns2:structMessage><ns2:varString>s3</ns2:varString><ns2:varInt>3</ns2:varInt><ns2:varFloat>3.3</ns2:varFloat></ns2:structMessage><ns2:shortMessage>3</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage><ns2:booleanMessage>1</ns2:booleanMessage></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:MoreExtendedStructPart><ns1:structMessage><ns1:varString>s3</ns1:varString><ns1:varInt>3</ns1:varInt><ns1:varFloat>3.3</ns1:varFloat></ns1:structMessage><ns1:shortMessage>3</ns1:shortMessage><ns1:stringMessage>arg</ns1:stringMessage><ns1:intMessage>-3</ns1:intMessage><ns1:anotherIntMessage>5</ns1:anotherIntMessage><ns1:booleanMessage>1</ns1:booleanMessage></ns2:MoreExtendedStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
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
new file mode 100644
index 0000000..b97f397
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt
@@ -0,0 +1,51 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex Doc Lit 010 (php/wsdl): echoMultipleFaults2(4)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->structMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+class ExtendedStruct extends BaseStruct {
+ function ExtendedStruct($f, $s, $x1, $x2, $x3) {
+ $this->BaseStruct($f,$s);
+ $this->stringMessage = $x1;
+ $this->intMessage = $x2;
+ $this->anotherIntMessage = $x3;
+ }
+}
+class MoreExtendedStruct extends ExtendedStruct {
+ function MoreExtendedStruct($f, $s, $x1, $x2, $x3, $b) {
+ $this->ExtendedStruct($f, $s, $x1, $x2, $x3);
+ $this->booleanMessage = $b;
+ }
+}
+$s1 = new BaseStruct(new SOAPStruct("s1",1,1.1),1);
+$s2 = new ExtendedStruct(new SOAPStruct("s2",2,2.2),2,"arg",-3,5);
+$s3 = new MoreExtendedStruct(new SOAPStruct("s3",3,3.3),3,"arg",-3,5,true);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(array("whichFault" => 4,
+ "param1" => $s1,
+ "param2" => $s2,
+ "param3" => $s3));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>4</ns1:whichFault><ns1:param1><ns2:structMessage><ns2:varString>s1</ns2:varString><ns2:varInt>1</ns2:varInt><ns2:varFloat>1.1</ns2:varFloat></ns2:structMessage><ns2:shortMessage>1</ns2:shortMessage></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>s2</ns2:varString><ns2:varInt>2</ns2:varInt><ns2:varFloat>2.2</ns2:varFloat></ns2:structMessage><ns2:shortMessage>2</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage></ns1:param2><ns1:param3><ns2:structMessage><ns2:varString>s3</ns2:varString><ns2:varInt>3</ns2:varInt><ns2:varFloat>3.3</ns2:varFloat></ns2:structMessage><ns2:shortMessage>3</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage><ns2:booleanMessage>1</ns2:booleanMessage></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:BaseStructPart><ns1:structMessage><ns1:varString>s1</ns1:varString><ns1:varInt>1</ns1:varInt><ns1:varFloat>1.1</ns1:varFloat></ns1:structMessage><ns1:shortMessage>1</ns1:shortMessage></ns2:BaseStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_001w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_001w.phpt
new file mode 100644
index 0000000..b42bae9
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_001w.phpt
@@ -0,0 +1,26 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex RPC Enc 001 (php/wsdl): echoSOAPStructFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPStruct('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoSOAPStructFault(array("soapStruct"=>$struct));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoSOAPStructFault><param xsi:type="ns2:SOAPStructFault"><soapStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></soapStruct></param></ns1:echoSOAPStructFault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoSOAPStructFault'.</faultstring><detail><ns2:part1 xsi:type="ns1:SOAPStructFault"><soapStruct xsi:type="ns1:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></soapStruct></ns2:part1></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_002w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_002w.phpt
new file mode 100644
index 0000000..7368213
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_002w.phpt
@@ -0,0 +1,25 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex RPC Enc 002 (php/wsdl): echoBaseStructFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->floatMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+$struct = new BaseStruct(12.345,12);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoBaseStructFault($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBaseStructFault><param xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></param></ns1:echoBaseStructFault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoBaseStructFault'.</faultstring><detail><ns2:part2 xsi:type="ns1:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></ns2:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_003w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_003w.phpt
new file mode 100644
index 0000000..ee05b4c
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_003w.phpt
@@ -0,0 +1,33 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex RPC Enc 003 (php/wsdl): echoExtendedStructFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->floatMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+class ExtendedStruct extends BaseStruct {
+ function ExtendedStruct($f, $s, $x1, $x2, $x3) {
+ $this->BaseStruct($f,$s);
+ $this->stringMessage = $x1;
+ $this->intMessage = $x2;
+ $this->anotherIntMessage = $x3;
+ }
+}
+$struct = new ExtendedStruct(12.345,12,"arg",-3,5);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoExtendedStructFault($struct);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoExtendedStructFault><param xsi:type="ns2:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></param></ns1:echoExtendedStructFault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoExtendedStructFault'.</faultstring><detail><ns2:part3 xsi:type="ns1:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></ns2:part3></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_004w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_004w.phpt
new file mode 100644
index 0000000..7620230
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_004w.phpt
@@ -0,0 +1,33 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex RPC Enc 004 (php/wsdl): echoMultipleFaults1(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->floatMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+$s1 = new SOAPStruct('arg',34,325.325);
+$s2 = new BaseStruct(12.345,12);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(1,$s1,$s2);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></param1><param2 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part1 xsi:type="ns1:SOAPStructFault"><soapStruct xsi:type="ns1:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></soapStruct></ns2:part1></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_005w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_005w.phpt
new file mode 100644
index 0000000..f4395d3
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_005w.phpt
@@ -0,0 +1,33 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex RPC Enc 005 (php/wsdl): echoMultipleFaults1(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->floatMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+$s1 = new SOAPStruct('arg',34,325.325);
+$s2 = new BaseStruct(12.345,12);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(2,$s1,$s2);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></param1><param2 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part2 xsi:type="ns1:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></ns2:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_006w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_006w.phpt
new file mode 100644
index 0000000..1d41c29
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_006w.phpt
@@ -0,0 +1,33 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex RPC Enc 006 (php/wsdl): echoMultipleFaults1(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPStruct {
+ function SOAPStruct($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->floatMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+$s1 = new SOAPStruct('arg',34,325.325);
+$s2 = new BaseStruct(12.345,12);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(3,$s1,$s2);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></param1><param2 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part1 xsi:type="ns1:SOAPStructFault"><soapStruct xsi:type="ns1:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></soapStruct></ns2:part1></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
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
new file mode 100644
index 0000000..5bfe663
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt
@@ -0,0 +1,41 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex RPC Enc 007 (php/wsdl): echoMultipleFaults2(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->floatMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+class ExtendedStruct extends BaseStruct {
+ function ExtendedStruct($f, $s, $x1, $x2, $x3) {
+ $this->BaseStruct($f,$s);
+ $this->stringMessage = $x1;
+ $this->intMessage = $x2;
+ $this->anotherIntMessage = $x3;
+ }
+}
+class MoreExtendedStruct extends ExtendedStruct {
+ function MoreExtendedStruct($f, $s, $x1, $x2, $x3, $b) {
+ $this->ExtendedStruct($f, $s, $x1, $x2, $x3);
+ $this->booleanMessage = $b;
+ }
+}
+$s1 = new BaseStruct(12.345,1);
+$s2 = new ExtendedStruct(12.345,2,"arg",-3,5);
+$s3 = new MoreExtendedStruct(12.345,3,"arg",-3,5,true);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(1,$s1,$s2,$s3);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></param1><param2 xsi:type="ns2:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">2</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></param2><param3 xsi:type="ns2:MoreExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">3</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage><booleanMessage xsi:type="xsd:boolean">1</booleanMessage></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:part2 xsi:type="ns1:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></ns2:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
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
new file mode 100644
index 0000000..a9424cb
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt
@@ -0,0 +1,41 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex RPC Enc 008 (php/wsdl): echoMultipleFaults2(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->floatMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+class ExtendedStruct extends BaseStruct {
+ function ExtendedStruct($f, $s, $x1, $x2, $x3) {
+ $this->BaseStruct($f,$s);
+ $this->stringMessage = $x1;
+ $this->intMessage = $x2;
+ $this->anotherIntMessage = $x3;
+ }
+}
+class MoreExtendedStruct extends ExtendedStruct {
+ function MoreExtendedStruct($f, $s, $x1, $x2, $x3, $b) {
+ $this->ExtendedStruct($f, $s, $x1, $x2, $x3);
+ $this->booleanMessage = $b;
+ }
+}
+$s1 = new BaseStruct(12.345,1);
+$s2 = new ExtendedStruct(12.345,2,"arg",-3,5);
+$s3 = new MoreExtendedStruct(12.345,3,"arg",-3,5,true);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(2,$s1,$s2,$s3);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></param1><param2 xsi:type="ns2:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">2</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></param2><param3 xsi:type="ns2:MoreExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">3</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage><booleanMessage xsi:type="xsd:boolean">1</booleanMessage></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:part3 xsi:type="ns1:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">2</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></ns2:part3></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
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
new file mode 100644
index 0000000..c2c4038
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt
@@ -0,0 +1,41 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex RPC Enc 009 (php/wsdl): echoMultipleFaults2(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->floatMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+class ExtendedStruct extends BaseStruct {
+ function ExtendedStruct($f, $s, $x1, $x2, $x3) {
+ $this->BaseStruct($f,$s);
+ $this->stringMessage = $x1;
+ $this->intMessage = $x2;
+ $this->anotherIntMessage = $x3;
+ }
+}
+class MoreExtendedStruct extends ExtendedStruct {
+ function MoreExtendedStruct($f, $s, $x1, $x2, $x3, $b) {
+ $this->ExtendedStruct($f, $s, $x1, $x2, $x3);
+ $this->booleanMessage = $b;
+ }
+}
+$s1 = new BaseStruct(12.345,1);
+$s2 = new ExtendedStruct(12.345,2,"arg",-3,5);
+$s3 = new MoreExtendedStruct(12.345,3,"arg",-3,5,true);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(3,$s1,$s2,$s3);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></param1><param2 xsi:type="ns2:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">2</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></param2><param3 xsi:type="ns2:MoreExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">3</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage><booleanMessage xsi:type="xsd:boolean">1</booleanMessage></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:part4 xsi:type="ns1:MoreExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">3</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage><booleanMessage xsi:type="xsd:boolean">1</booleanMessage></ns2:part4></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
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
new file mode 100644
index 0000000..7099391
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt
@@ -0,0 +1,41 @@
+--TEST--
+SOAP Interop Round4 GroupH Complex RPC Enc 010 (php/wsdl): echoMultipleFaults2(4)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class BaseStruct {
+ function BaseStruct($f, $s) {
+ $this->floatMessage = $f;
+ $this->shortMessage = $s;
+ }
+}
+class ExtendedStruct extends BaseStruct {
+ function ExtendedStruct($f, $s, $x1, $x2, $x3) {
+ $this->BaseStruct($f,$s);
+ $this->stringMessage = $x1;
+ $this->intMessage = $x2;
+ $this->anotherIntMessage = $x3;
+ }
+}
+class MoreExtendedStruct extends ExtendedStruct {
+ function MoreExtendedStruct($f, $s, $x1, $x2, $x3, $b) {
+ $this->ExtendedStruct($f, $s, $x1, $x2, $x3);
+ $this->booleanMessage = $b;
+ }
+}
+$s1 = new BaseStruct(12.345,1);
+$s2 = new ExtendedStruct(12.345,2,"arg",-3,5);
+$s3 = new MoreExtendedStruct(12.345,3,"arg",-3,5,true);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(4,$s1,$s2,$s3);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_complex_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">4</whichFault><param1 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></param1><param2 xsi:type="ns2:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">2</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></param2><param3 xsi:type="ns2:MoreExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">3</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage><booleanMessage xsi:type="xsd:boolean">1</booleanMessage></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:part2 xsi:type="ns1:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></ns2:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_001w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_001w.phpt
new file mode 100644
index 0000000..ac473c8
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_001w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 001 (php/wsdl): echoEmptyFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoEmptyFault();
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoEmptyFaultRequest/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoEmptyFault'.</faultstring><detail><ns1:EmptyPart/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_002w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_002w.phpt
new file mode 100644
index 0000000..ff4014d
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_002w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 002 (php/wsdl): echoStringFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringFault("Hello World");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoStringFaultRequest>Hello World</ns1:echoStringFaultRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoStringFault'.</faultstring><detail><ns1:StringPart>Hello World</ns1:StringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_003w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_003w.phpt
new file mode 100644
index 0000000..26c6247
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_003w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 003 (php/wsdl): echoIntArrayFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoIntArrayFault(array(34,12.345));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns2:echoIntArrayFaultRequest><ns1:value>34</ns1:value><ns1:value>12</ns1:value></ns2:echoIntArrayFaultRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoIntArrayFault'.</faultstring><detail><ns2:ArrayOfIntPart><ns1:value>34</ns1:value><ns1:value>12</ns1:value></ns2:ArrayOfIntPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_004w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_004w.phpt
new file mode 100644
index 0000000..4abff69
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_004w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 004 (php/wsdl): echoMultipleFaults1(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(array("whichFault" => 1,
+ "param1" => "Hello world",
+ "param2" => array(12.345,45,678)));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>1</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2><ns2:value>12.345</ns2:value><ns2:value>45</ns2:value><ns2:value>678</ns2:value></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns1:EmptyPart/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_005w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_005w.phpt
new file mode 100644
index 0000000..b290e4d
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_005w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 005 (php/wsdl): echoMultipleFaults1(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(array("whichFault" => 2,
+ "param1" => "Hello world",
+ "param2" => array(12.345,45,678)));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>2</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2><ns2:value>12.345</ns2:value><ns2:value>45</ns2:value><ns2:value>678</ns2:value></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns1:StringPart>Hello world</ns1:StringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_006w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_006w.phpt
new file mode 100644
index 0000000..d857dc3
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_006w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 006 (php/wsdl): echoMultipleFaults1(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(array("whichFault" => 3,
+ "param1" => "Hello world",
+ "param2" => array(12.345,45,678)));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>3</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2><ns2:value>12.345</ns2:value><ns2:value>45</ns2:value><ns2:value>678</ns2:value></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:ArrayOfFloatPart><ns1:value>12.345</ns1:value><ns1:value>45</ns1:value><ns1:value>678</ns1:value></ns2:ArrayOfFloatPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_007w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_007w.phpt
new file mode 100644
index 0000000..02517c0
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_007w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 007 (php/wsdl): echoMultipleFaults1(4)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(array("whichFault" => 4,
+ "param1" => "Hello world",
+ "param2" => array(12.345,45,678)));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>4</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2><ns2:value>12.345</ns2:value><ns2:value>45</ns2:value><ns2:value>678</ns2:value></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns1:EmptyPart/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_008w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_008w.phpt
new file mode 100644
index 0000000..691ebda
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_008w.phpt
@@ -0,0 +1,21 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 008 (php/wsdl): echoMultipleFaults2(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(array("whichFault" => 1,
+ "param1" => "Hello world",
+ "param2" => 12.345,
+ "param3" => array("one","two","three")));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>1</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2>12.345</ns1:param2><ns1:param3><ns2:value>one</ns2:value><ns2:value>two</ns2:value><ns2:value>three</ns2:value></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:FloatPart>12.345</ns1:FloatPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_009w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_009w.phpt
new file mode 100644
index 0000000..2af8b01
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_009w.phpt
@@ -0,0 +1,21 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 009 (php/wsdl): echoMultipleFaults2(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(array("whichFault" => 2,
+ "param1" => "Hello world",
+ "param2" => 12.345,
+ "param3" => array("one","two","three")));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>2</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2>12.345</ns1:param2><ns1:param3><ns2:value>one</ns2:value><ns2:value>two</ns2:value><ns2:value>three</ns2:value></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:StringPart>Hello world</ns1:StringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_010w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_010w.phpt
new file mode 100644
index 0000000..594c444
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_010w.phpt
@@ -0,0 +1,21 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 010 (php/wsdl): echoMultipleFaults2(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(array("whichFault" => 3,
+ "param1" => "Hello world",
+ "param2" => 12.345,
+ "param3" => array("one","two","three")));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>3</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2>12.345</ns1:param2><ns1:param3><ns2:value>one</ns2:value><ns2:value>two</ns2:value><ns2:value>three</ns2:value></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:ArrayOfStringPart><ns1:value>one</ns1:value><ns1:value>two</ns1:value><ns1:value>three</ns1:value></ns2:ArrayOfStringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_011w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_011w.phpt
new file mode 100644
index 0000000..21389c0
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_011w.phpt
@@ -0,0 +1,21 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 011 (php/wsdl): echoMultipleFaults2(4)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(array("whichFault" => 4,
+ "param1" => "Hello world",
+ "param2" => 12.345,
+ "param3" => array("one","two","three")));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>4</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2>12.345</ns1:param2><ns1:param3><ns2:value>one</ns2:value><ns2:value>two</ns2:value><ns2:value>three</ns2:value></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:FloatPart>12.345</ns1:FloatPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_012w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_012w.phpt
new file mode 100644
index 0000000..3e2e41d
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_012w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 012 (php/wsdl): echoMultipleFaults3(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults3(array("whichFault" => 1,
+ "param1" => "arg1",
+ "param2" => "arg2"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults3Request><ns1:whichFault>1</ns1:whichFault><ns1:param1>arg1</ns1:param1><ns1:param2>arg2</ns1:param2></ns1:echoMultipleFaults3Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:StringPart>arg1</ns1:StringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_013w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_013w.phpt
new file mode 100644
index 0000000..8b847a8
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_013w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 013 (php/wsdl): echoMultipleFaults3(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults3(array("whichFault" => 2,
+ "param1" => "arg1",
+ "param2" => "arg2"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults3Request><ns1:whichFault>2</ns1:whichFault><ns1:param1>arg1</ns1:param1><ns1:param2>arg2</ns1:param2></ns1:echoMultipleFaults3Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:String2Part>arg2</ns1:String2Part></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_014w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_014w.phpt
new file mode 100644
index 0000000..3a3e61a
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_014w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 014 (php/wsdl): echoMultipleFaults3(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults3(array("whichFault" => 3,
+ "param1" => "arg1",
+ "param2" => "arg2"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults3Request><ns1:whichFault>3</ns1:whichFault><ns1:param1>arg1</ns1:param1><ns1:param2>arg2</ns1:param2></ns1:echoMultipleFaults3Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:StringPart>arg1</ns1:StringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_015w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_015w.phpt
new file mode 100644
index 0000000..b831484
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_015w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 015 (php/wsdl): echoMultipleFaults4(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults4(array("whichFault" => 1,
+ "param1" => 162,
+ "param2" => 1));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults4Request><ns1:whichFault>1</ns1:whichFault><ns1:param1>162</ns1:param1><ns1:param2>1</ns1:param2></ns1:echoMultipleFaults4Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns1:IntPart>162</ns1:IntPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_016w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_016w.phpt
new file mode 100644
index 0000000..cbf7f16
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_016w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 016 (php/wsdl): echoMultipleFaults4(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults4(array("whichFault" => 2,
+ "param1" => 162,
+ "param2" => 1));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults4Request><ns1:whichFault>2</ns1:whichFault><ns1:param1>162</ns1:param1><ns1:param2>1</ns1:param2></ns1:echoMultipleFaults4Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns1:EnumPart>1</ns1:EnumPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_017w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_017w.phpt
new file mode 100644
index 0000000..aa7e285
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_017w.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple Doc Lit 017 (php/wsdl): echoMultipleFaults4(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults4(array("whichFault" => 3,
+ "param1" => 162,
+ "param2" => 1));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_doclit.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults4Request><ns1:whichFault>3</ns1:whichFault><ns1:param1>162</ns1:param1><ns1:param2>1</ns1:param2></ns1:echoMultipleFaults4Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns1:IntPart>162</ns1:IntPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_001w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_001w.phpt
new file mode 100644
index 0000000..f4e1b57
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_001w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 001 (php/wsdl): echoEmptyFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoEmptyFault();
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoEmptyFault/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoEmptyFault'.</faultstring><detail><ns2:part1 xsi:nil="1" xsi:type="ns1:EmptyFault"/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_002w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_002w.phpt
new file mode 100644
index 0000000..20dad78
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_002w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 002 (php/wsdl): echoStringFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringFault("Hello World");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringFault><param xsi:type="xsd:string">Hello World</param></ns1:echoStringFault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoStringFault'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">Hello World</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_003w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_003w.phpt
new file mode 100644
index 0000000..eb76383
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_003w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 003 (php/wsdl): echoIntArrayFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoIntArrayFault(array(34,12.345));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntArrayFault><param SOAP-ENC:arrayType="xsd:int[2]" xsi:type="ns2:ArrayOfInt"><item xsi:type="xsd:int">34</item><item xsi:type="xsd:int">12</item></param></ns1:echoIntArrayFault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoIntArrayFault'.</faultstring><detail><ns2:part5 SOAP-ENC:arrayType="xsd:int[2]" xsi:type="ns1:ArrayOfInt"><item xsi:type="xsd:int">34</item><item xsi:type="xsd:int">12</item></ns2:part5></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_004w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_004w.phpt
new file mode 100644
index 0000000..7bf250f
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_004w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 004 (php/wsdl): echoMultipleFaults1(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(1,"Hello world",array(12.345,45,678));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="xsd:string">Hello world</param1><param2 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOfFloat"><item xsi:type="xsd:float">12.345</item><item xsi:type="xsd:float">45</item><item xsi:type="xsd:float">678</item></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part1 xsi:nil="1" xsi:type="ns1:EmptyFault"/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_005w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_005w.phpt
new file mode 100644
index 0000000..e2c706b
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_005w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 005 (php/wsdl): echoMultipleFaults1(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(2,"Hello world",array(12.345,45,678));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="xsd:string">Hello world</param1><param2 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOfFloat"><item xsi:type="xsd:float">12.345</item><item xsi:type="xsd:float">45</item><item xsi:type="xsd:float">678</item></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">Hello world</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_006w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_006w.phpt
new file mode 100644
index 0000000..e4a397d
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_006w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 006 (php/wsdl): echoMultipleFaults1(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(3,"Hello world",array(12.345,45,678));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="xsd:string">Hello world</param1><param2 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOfFloat"><item xsi:type="xsd:float">12.345</item><item xsi:type="xsd:float">45</item><item xsi:type="xsd:float">678</item></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part7 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns1:ArrayOfFloat"><item xsi:type="xsd:float">12.345</item><item xsi:type="xsd:float">45</item><item xsi:type="xsd:float">678</item></ns2:part7></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_007w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_007w.phpt
new file mode 100644
index 0000000..92700c5
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_007w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 007 (php/wsdl): echoMultipleFaults1(4)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults1(4,"Hello world",array(12.345,45,678));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">4</whichFault><param1 xsi:type="xsd:string">Hello world</param1><param2 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOfFloat"><item xsi:type="xsd:float">12.345</item><item xsi:type="xsd:float">45</item><item xsi:type="xsd:float">678</item></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part1 xsi:nil="1" xsi:type="ns1:EmptyFault"/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_008w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_008w.phpt
new file mode 100644
index 0000000..057ff4d
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_008w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 008 (php/wsdl): echoMultipleFaults2(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(1, "Hello World", 12.345, array("one","two","three"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="xsd:string">Hello World</param1><param2 xsi:type="xsd:float">12.345</param2><param3 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfString"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:part4 xsi:type="xsd:float">12.345</ns1:part4></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_009w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_009w.phpt
new file mode 100644
index 0000000..18f1d8d
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_009w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 009 (php/wsdl): echoMultipleFaults2(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(2, "Hello World", 12.345, array("one","two","three"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="xsd:string">Hello World</param1><param2 xsi:type="xsd:float">12.345</param2><param3 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfString"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">Hello World</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_010w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_010w.phpt
new file mode 100644
index 0000000..faca6c1
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_010w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 010 (php/wsdl): echoMultipleFaults2(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(3, "Hello World", 12.345, array("one","two","three"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="xsd:string">Hello World</param1><param2 xsi:type="xsd:float">12.345</param2><param3 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfString"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:part6 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns1:ArrayOfString"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></ns2:part6></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_011w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_011w.phpt
new file mode 100644
index 0000000..5e93891
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_011w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 011 (php/wsdl): echoMultipleFaults2(4)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults2(4, "Hello World", 12.345, array("one","two","three"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">4</whichFault><param1 xsi:type="xsd:string">Hello World</param1><param2 xsi:type="xsd:float">12.345</param2><param3 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfString"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:part4 xsi:type="xsd:float">12.345</ns1:part4></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_012w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_012w.phpt
new file mode 100644
index 0000000..073a2a0
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_012w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 012 (php/wsdl): echoMultipleFaults3(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults3(1,"arg1","arg2");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults3><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="xsd:string">arg1</param1><param2 xsi:type="xsd:string">arg2</param2></ns1:echoMultipleFaults3></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl/fault1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">arg1</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_013w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_013w.phpt
new file mode 100644
index 0000000..b0113ae
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_013w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 013 (php/wsdl): echoMultipleFaults3(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults3(2,"arg1","arg2");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults3><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="xsd:string">arg1</param1><param2 xsi:type="xsd:string">arg2</param2></ns1:echoMultipleFaults3></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl/fault2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">arg2</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_014w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_014w.phpt
new file mode 100644
index 0000000..ee5b4cb
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_014w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 014 (php/wsdl): echoMultipleFaults3(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults3(3,"arg1","arg2");
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults3><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="xsd:string">arg1</param1><param2 xsi:type="xsd:string">arg2</param2></ns1:echoMultipleFaults3></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl/fault1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">arg1</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_015w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_015w.phpt
new file mode 100644
index 0000000..4a9cb4a
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_015w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 015 (php/wsdl): echoMultipleFaults4(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults4(1, 162, 1);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults4><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="xsd:int">162</param1><param2 xsi:type="ns2:Enum">1</param2></ns1:echoMultipleFaults4></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns1:part3 xsi:type="xsd:int">162</ns1:part3></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_016w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_016w.phpt
new file mode 100644
index 0000000..d8a47d0
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_016w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 016 (php/wsdl): echoMultipleFaults4(2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults4(2, 162, 1);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults4><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="xsd:int">162</param1><param2 xsi:type="ns2:Enum">1</param2></ns1:echoMultipleFaults4></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns2:part9 xsi:type="ns1:Enum">1</ns2:part9></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_017w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_017w.phpt
new file mode 100644
index 0000000..5aaec30
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_017w.phpt
@@ -0,0 +1,18 @@
+--TEST--
+SOAP Interop Round4 GroupH Simple RPC Enc 017 (php/wsdl): echoMultipleFaults4(3)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoMultipleFaults4(3, 162, 1);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_simple_rpcenc.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults4><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="xsd:int">162</param1><param2 xsi:type="ns2:Enum">1</param2></ns1:echoMultipleFaults4></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns1:part3 xsi:type="xsd:int">162</ns1:part3></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_001w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_001w.phpt
new file mode 100644
index 0000000..d50637a
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupH SoapFault 001 (php/wsdl): echoVersionMismatchFault(SOAP 1.1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_soapfault.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoVersionMismatchFault();
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_soapfault.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVersionMismatchFault/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVersionMismatchFaultResponse/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_002w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_002w.phpt
new file mode 100644
index 0000000..f31cd7c
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_002w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupH SoapFault 002 (php/wsdl): echoVersionMismatchFault(SOAP 1.2)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_soapfault.wsdl",array("trace"=>1,"exceptions"=>0,"soap_version"=>SOAP_1_2));
+$client->echoVersionMismatchFault();
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_soapfault.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://soapinterop.org/wsdl" 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><ns1:echoVersionMismatchFault env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"/></env:Body></env:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://soapinterop.org/wsdl" 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><ns1:echoVersionMismatchFaultResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"/></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_003w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_003w.phpt
new file mode 100644
index 0000000..398d70e
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_003w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupH SoapFault 003 (php/wsdl): echoVersionMismatchFault(unknown version)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://unknown.org/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVersionMismatchFault/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+EOF;
+echo $HTTP_RAW_POST_DATA."\n";
+include("round4_groupH_soapfault.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://unknown.org/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoVersionMismatchFault/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:VersionMismatch</faultcode><faultstring>Wrong Version</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_004w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_004w.phpt
new file mode 100644
index 0000000..11069bc
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_soapfault_004w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupH SoapFault 004 (php/wsdl): echoMustUnderstandFault
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$hdr = new SoapHeader("http://soapinterop.org/wsdl", "UnknownHeaderRequest", "Hello World", 1);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupH_soapfault.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->__soapCall("echoVersionMismatchFault",array(), null, $hdr);
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupH_soapfault.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header><ns1:UnknownHeaderRequest SOAP-ENV:mustUnderstand="1">Hello World</ns1:UnknownHeaderRequest></SOAP-ENV:Header><SOAP-ENV:Body><ns1:echoVersionMismatchFault/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:MustUnderstand</faultcode><faultstring>Header not understood</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_doclit.inc b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_doclit.inc
new file mode 100644
index 0000000..1c31aa3
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_doclit.inc
@@ -0,0 +1,38 @@
+<?php
+class SOAP_Interop_GroupH {
+
+ function echoSOAPStructFault($input) {
+ return new SoapFault("Server", "Fault in response to 'echoSOAPStructFault'.", null, array("soapStruct"=>$input), "ComplexFault");
+ }
+
+ function echoBaseStructFault($input) {
+ return new SoapFault("Server", "Fault in response to 'echoBaseStructFault'.", null, $input, "ComplexFault");
+ }
+
+ function echoExtendedStructFault($input) {
+ return new SoapFault("Server", "Fault in response to 'echoExtendedStructFault'.", null, $input, "ComplexFault");
+ }
+
+ function echoMultipleFaults1($input) {
+ if ($input->whichFault == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults1'.", null, $input->param2, "ComplexFault2");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults1'.", null, array("soapStruct"=>$input->param1), "ComplexFault1");
+ }
+ }
+
+ function echoMultipleFaults2($input) {
+ if ($input->whichFault == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $input->param2, "ComplexFault2");
+ } else if ($input->whichFault == 3) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $input->param3, "ComplexFault3");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $input->param1, "ComplexFault1");
+ }
+ }
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round4_groupH_complex_doclit.wsdl");
+$server->setClass("SOAP_Interop_GroupH");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_doclit.wsdl b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_doclit.wsdl
new file mode 100644
index 0000000..90a5884
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_doclit.wsdl
@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://soapinterop.org/wsdl"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:ns2="http://soapinterop.org/types"
+ xmlns:ns3="http://soapinterop.org/types/part"
+ xmlns:ns4="http://soapinterop.org/types/requestresponse"
+ targetNamespace="http://soapinterop.org/wsdl">
+
+ <types>
+ <schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://soapinterop.org/types"
+ targetNamespace="http://soapinterop.org/types">
+
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+
+ <complexType name="SOAPStruct">
+ <sequence>
+ <element name="varString" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="SOAPStructFault">
+ <sequence>
+ <element name="soapStruct" type="tns:SOAPStruct"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="BaseStruct">
+ <sequence>
+ <element name="structMessage" type="tns:SOAPStruct"/>
+ <element name="shortMessage" type="xsd:short"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="ExtendedStruct">
+ <complexContent>
+ <extension base="tns:BaseStruct">
+ <sequence>
+ <element name="stringMessage" type="xsd:string"/>
+ <element name="intMessage" type="xsd:int"/>
+ <element name="anotherIntMessage" type="xsd:int"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <complexType name="MoreExtendedStruct">
+ <complexContent>
+ <extension base="tns:ExtendedStruct">
+ <sequence>
+ <element name="booleanMessage" type="xsd:boolean"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ </schema>
+
+ <schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://soapinterop.org/types/part"
+ targetNamespace="http://soapinterop.org/types/part">
+
+ <element name="SOAPStructFaultPart" type="ns2:SOAPStructFault"/>
+ <element name="BaseStructPart" type="ns2:BaseStruct"/>
+ <element name="ExtendedStructPart" type="ns2:ExtendedStruct"/>
+ <element name="MoreExtendedStructPart" type="ns2:MoreExtendedStruct"/>
+
+ </schema>
+
+ <schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://soapinterop.org/types/requestresponse"
+ targetNamespace="http://soapinterop.org/types/requestresponse">
+
+ <element name="echoSOAPStructFaultRequest" type="ns2:SOAPStruct"/>
+ <element name="echoSOAPStructFaultResponse">
+ <complexType/>
+ </element>
+
+ <element name="echoBaseStructFaultRequest" type="ns2:BaseStruct"/>
+ <element name="echoBaseStructFaultResponse">
+ <complexType/>
+ </element>
+
+ <element name="echoExtendedStructFaultRequest" type="ns2:ExtendedStruct"/>
+ <element name="echoExtendedStructFaultResponse">
+ <complexType/>
+ </element>
+
+ <element name="echoMultipleFaults1Request">
+ <complexType>
+ <sequence>
+ <element name="whichFault" type="xsd:int"/>
+ <element name="param1" type="ns2:SOAPStruct"/>
+ <element name="param2" type="ns2:BaseStruct"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoMultipleFaults1Response">
+ <complexType/>
+ </element>
+
+ <element name="echoMultipleFaults2Request">
+ <complexType>
+ <sequence>
+ <element name="whichFault" type="xsd:int"/>
+ <element name="param1" type="ns2:BaseStruct"/>
+ <element name="param2" type="ns2:ExtendedStruct"/>
+ <element name="param3" type="ns2:MoreExtendedStruct"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoMultipleFaults2Response">
+ <complexType/>
+ </element>
+
+ </schema>
+ </types>
+
+ <message name="echoSOAPStructFaultRequest">
+ <part name="param" element="ns4:echoSOAPStructFaultRequest"/>
+ </message>
+ <message name="echoSOAPStructFaultResponse">
+ <part name="param" element="ns4:echoSOAPStructFaultResponse"/>
+ </message>
+
+ <message name="echoBaseStructFaultRequest">
+ <part name="param" element="ns4:echoBaseStructFaultRequest"/>
+ </message>
+ <message name="echoBaseStructFaultResponse">
+ <part name="param" element="ns4:echoBaseStructFaultResponse"/>
+ </message>
+
+ <message name="echoExtendedStructFaultRequest">
+ <part name="param" element="ns4:echoExtendedStructFaultRequest"/>
+ </message>
+ <message name="echoExtendedStructFaultResponse">
+ <part name="param" element="ns4:echoExtendedStructFaultResponse"/>
+ </message>
+
+ <message name="echoMultipleFaults1Request">
+ <part name="param" element="ns4:echoMultipleFaults1Request"/>
+ </message>
+ <message name="echoMultipleFaults1Response">
+ <part name="param" element="ns4:echoMultipleFaults1Response"/>
+ </message>
+
+ <message name="echoMultipleFaults2Request">
+ <part name="param" element="ns4:echoMultipleFaults2Request"/>
+ </message>
+ <message name="echoMultipleFaults2Response">
+ <part name="param" element="ns4:echoMultipleFaults2Response"/>
+ </message>
+
+ <!-- Fault messages -->
+ <message name="SOAPStructFault">
+ <part name="part3" element="ns3:SOAPStructFaultPart"/>
+ </message>
+ <message name="BaseStructFault">
+ <part name="part1" element="ns3:BaseStructPart"/>
+ </message>
+ <message name="ExtendedStructFault">
+ <part name="part2" element="ns3:ExtendedStructPart"/>
+ </message>
+ <message name="MoreExtendedStructFault">
+ <part name="part5" element="ns3:MoreExtendedStructPart"/>
+ </message>
+
+ <portType name="ComplexDocLitPortType">
+ <!--
+ Throws a fault with an embedded SOAPStruct
+ -->
+ <operation name="echoSOAPStructFault" parameterOrder="">
+ <input message="tns:echoSOAPStructFaultRequest"/>
+ <output message="tns:echoSOAPStructFaultResponse"/>
+ <fault name="ComplexFault" message="tns:SOAPStructFault"/>
+ </operation>
+
+ <!--
+ Throws a fault with a base complex struct
+ -->
+ <operation name="echoBaseStructFault" parameterOrder="">
+ <input message="tns:echoBaseStructFaultRequest"/>
+ <output message="tns:echoBaseStructFaultResponse"/>
+ <fault name="ComplexFault" message="tns:BaseStructFault"/>
+ </operation>
+
+ <!--
+ Throws a fault with an en extended complex type
+ -->
+ <operation name="echoExtendedStructFault" parameterOrder="">
+ <input message="tns:echoExtendedStructFaultRequest"/>
+ <output message="tns:echoExtendedStructFaultResponse"/>
+ <fault name="ComplexFault" message="tns:ExtendedStructFault"/>
+ </operation>
+
+ <!--
+ Throws a fault with embedded complex type, fault with an
+ extended complex type and fault with an array of a base
+ complex type
+ -->
+ <operation name="echoMultipleFaults1" parameterOrder="param">
+ <input message="tns:echoMultipleFaults1Request"/>
+ <output message="tns:echoMultipleFaults1Response"/>
+ <fault name="ComplexFault1" message="tns:SOAPStructFault"/>
+ <fault name="ComplexFault2" message="tns:BaseStructFault"/>
+ </operation>
+
+ <!--
+ Throws a fault with an array of base complex type and
+ a fault with doubly extended complex type
+ -->
+ <operation name="echoMultipleFaults2" parameterOrder="param">
+ <input message="tns:echoMultipleFaults2Request"/>
+ <output message="tns:echoMultipleFaults2Response"/>
+ <fault name="ComplexFault1" message="tns:BaseStructFault"/>
+ <fault name="ComplexFault2" message="tns:ExtendedStructFault"/>
+ <fault name="ComplexFault3" message="tns:MoreExtendedStructFault"/>
+ </operation>
+ </portType>
+
+ <binding name="ComplexDocLitBinding" type="tns:ComplexDocLitPortType">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ <operation name="echoSOAPStructFault">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ComplexFault">
+ <soap:fault
+ name="ComplexFault"
+ use="literal"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoBaseStructFault">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ComplexFault">
+ <soap:fault
+ name="ComplexFault"
+ use="literal"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoExtendedStructFault">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ComplexFault">
+ <soap:fault
+ name="ComplexFault"
+ use="literal"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoMultipleFaults1">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ComplexFault1">
+ <soap:fault
+ name="ComplexFault1"
+ use="literal"/>
+ </fault>
+ <fault name="ComplexFault2">
+ <soap:fault
+ name="ComplexFault2"
+ use="literal"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoMultipleFaults2">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="ComplexFault1">
+ <soap:fault
+ name="ComplexFault1"
+ use="literal"/>
+ </fault>
+ <fault name="ComplexFault2">
+ <soap:fault
+ name="ComplexFault2"
+ use="literal"/>
+ </fault>
+ <fault name="ComplexFault3">
+ <soap:fault
+ name="ComplexFault3"
+ use="literal"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+ </binding>
+
+ <service name="ComplexDocLitService">
+ <port name="ComplexDocLitPort" binding="tns:ComplexDocLitBinding">
+ <soap:address
+ location="test://"/>
+ </port>
+ </service>
+</definitions>
+
diff --git a/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_rpcenc.inc b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_rpcenc.inc
new file mode 100644
index 0000000..6dec186
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_rpcenc.inc
@@ -0,0 +1,38 @@
+<?php
+class SOAP_Interop_GroupH {
+
+ function echoSOAPStructFault($input) {
+ return new SoapFault("Server", "Fault in response to 'echoSOAPStructFault'.", null, $input, "ComplexFault");
+ }
+
+ function echoBaseStructFault($input) {
+ return new SoapFault("Server", "Fault in response to 'echoBaseStructFault'.", null, $input, "ComplexFault");
+ }
+
+ function echoExtendedStructFault($input) {
+ return new SoapFault("Server", "Fault in response to 'echoExtendedStructFault'.", null, $input, "ComplexFault");
+ }
+
+ function echoMultipleFaults1($which, $s1, $s2) {
+ if ($which == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults1'.", null, $s2, "ComplexFault2");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults1'.", null, array("soapStruct"=>$s1), "ComplexFault1");
+ }
+ }
+
+ function echoMultipleFaults2($which, $s1, $s2, $s3) {
+ if ($which == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $s2, "ComplexFault2");
+ } else if ($which == 3) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $s3, "ComplexFault3");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $s1, "ComplexFault1");
+ }
+ }
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round4_groupH_complex_rpcenc.wsdl");
+$server->setClass("SOAP_Interop_GroupH");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_rpcenc.wsdl b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_rpcenc.wsdl
new file mode 100644
index 0000000..86f5852
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_complex_rpcenc.wsdl
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://soapinterop.org/wsdl"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:ns2="http://soapinterop.org/types"
+ targetNamespace="http://soapinterop.org/wsdl">
+
+ <types>
+ <schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://soapinterop.org/types"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ targetNamespace="http://soapinterop.org/types">
+
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+
+ <complexType name="SOAPStruct">
+ <sequence>
+ <element name="varString" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="SOAPStructFault">
+ <sequence>
+ <element name="soapStruct" type="tns:SOAPStruct"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="BaseStruct">
+ <sequence>
+ <element name="floatMessage" type="xsd:float"/>
+ <element name="shortMessage" type="xsd:short"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="ExtendedStruct">
+ <complexContent>
+ <extension base="tns:BaseStruct">
+ <sequence>
+ <element name="stringMessage" type="xsd:string"/>
+ <element name="intMessage" type="xsd:int"/>
+ <element name="anotherIntMessage" type="xsd:int"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <complexType name="MoreExtendedStruct">
+ <complexContent>
+ <extension base="tns:ExtendedStruct">
+ <sequence>
+ <element name="booleanMessage" type="xsd:boolean"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ </schema>
+ </types>
+
+ <message name="echoFaultResponse"/>
+ <message name="echoSOAPStructFaultRequest">
+ <part name="param" type="ns2:SOAPStructFault"/>
+ </message>
+ <message name="echoBaseStructFaultRequest">
+ <part name="param" type="ns2:BaseStruct"/>
+ </message>
+ <message name="echoExtendedStructFaultRequest">
+ <part name="param" type="ns2:ExtendedStruct"/>
+ </message>
+ <message name="echoMultipleFaults1Request">
+ <part name="whichFault" type="xsd:int"/>
+ <part name="param1" type="ns2:SOAPStruct"/>
+ <part name="param2" type="ns2:BaseStruct"/>
+ </message>
+ <message name="echoMultipleFaults2Request">
+ <part name="whichFault" type="xsd:int"/>
+ <part name="param1" type="ns2:BaseStruct"/>
+ <part name="param2" type="ns2:ExtendedStruct"/>
+ <part name="param3" type="ns2:MoreExtendedStruct"/>
+ </message>
+
+ <!-- Fault messages -->
+ <message name="SOAPStructFault">
+ <part name="part1" type="ns2:SOAPStructFault"/>
+ </message>
+ <message name="BaseStructFault">
+ <part name="part2" type="ns2:BaseStruct"/>
+ </message>
+ <message name="ExtendedStructFault">
+ <part name="part3" type="ns2:ExtendedStruct"/>
+ </message>
+ <message name="MoreExtendedStructFault">
+ <part name="part4" type="ns2:MoreExtendedStruct"/>
+ </message>
+
+ <portType name="ComplexRpcEncPortType">
+ <!--
+ Throws a fault with an embedded SOAPStruct
+ -->
+ <operation name="echoSOAPStructFault" parameterOrder="param">
+ <input message="tns:echoSOAPStructFaultRequest"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="ComplexFault" message="tns:SOAPStructFault"/>
+ </operation>
+
+ <!--
+ Throws a fault with a base complex struct
+ -->
+ <operation name="echoBaseStructFault" parameterOrder="param">
+ <input message="tns:echoBaseStructFaultRequest"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="ComplexFault" message="tns:BaseStructFault"/>
+ </operation>
+
+ <!--
+ Throws a fault with an en extended complex type
+ -->
+ <operation name="echoExtendedStructFault" parameterOrder="param">
+ <input message="tns:echoExtendedStructFaultRequest"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="ComplexFault" message="tns:ExtendedStructFault"/>
+ </operation>
+
+ <!--
+ Throws a fault with embedded complex type and fault with
+ another complex type
+ -->
+ <operation name="echoMultipleFaults1" parameterOrder="whichFault param1 param2">
+ <input message="tns:echoMultipleFaults1Request"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="ComplexFault1" message="tns:SOAPStructFault"/>
+ <fault name="ComplexFault2" message="tns:BaseStructFault"/>
+ </operation>
+
+ <!--
+ Throws a fault with base complex type, fault with an extended
+ complex type and a fault with doubly extended complex type
+ -->
+ <operation name="echoMultipleFaults2" parameterOrder="whichFault param1 param2 param3">
+ <input message="tns:echoMultipleFaults2Request"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="ComplexFault1" message="tns:BaseStructFault"/>
+ <fault name="ComplexFault2" message="tns:ExtendedStructFault"/>
+ <fault name="ComplexFault3" message="tns:MoreExtendedStructFault"/>
+ </operation>
+ </portType>
+
+ <binding name="ComplexRpcEncBinding" type="tns:ComplexRpcEncPortType">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
+ <operation name="echoSOAPStructFault">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="ComplexFault">
+ <soap:fault
+ name="ComplexFault"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoBaseStructFault">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="ComplexFault">
+ <soap:fault
+ name="ComplexFault"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoExtendedStructFault">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="ComplexFault">
+ <soap:fault
+ name="ComplexFault"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoMultipleFaults1">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="ComplexFault1">
+ <soap:fault
+ name="ComplexFault1"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="ComplexFault2">
+ <soap:fault
+ name="ComplexFault2"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoMultipleFaults2">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="ComplexFault1">
+ <soap:fault
+ name="ComplexFault1"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="ComplexFault2">
+ <soap:fault
+ name="ComplexFault2"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="ComplexFault3">
+ <soap:fault
+ name="ComplexFault3"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+ </binding>
+
+ <service name="ComplexRpcEncService">
+ <port name="ComplexRpcEncPort" binding="tns:ComplexRpcEncBinding">
+ <soap:address
+ location="test://"/>
+ </port>
+ </service>
+</definitions>
+
diff --git a/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_doclit.inc b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_doclit.inc
new file mode 100644
index 0000000..6a04cfd
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_doclit.inc
@@ -0,0 +1,56 @@
+<?php
+class SOAP_Interop_GroupH {
+
+ function echoEmptyFault() {
+ return new SoapFault("Server", "Fault in response to 'echoEmptyFault'.", null, null, "SimpleFault");
+ }
+
+ function echoStringFault($input) {
+ return new SoapFault("Server", "Fault in response to 'echoStringFault'.", null, $input, "SimpleFault");
+ }
+
+ function echoIntArrayFault($input) {
+ return new SoapFault("Server", "Fault in response to 'echoIntArrayFault'.", null, $input, "SimpleFault");
+ }
+
+ function echoMultipleFaults1($input) {
+ if ($input->whichFault == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults1'.", null, $input->param1, "SimpleFault2");
+ } else if ($input->whichFault == 3) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults1'.", null, $input->param2, "SimpleFault3");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults1'.", null, null, "SimpleFault1");
+ }
+ }
+
+ function echoMultipleFaults2($input) {
+ if ($input->whichFault == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $input->param1, "SimpleFault1");
+ } else if ($input->whichFault == 3) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $input->param3, "SimpleFault3");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $input->param2, "SimpleFault2");
+ }
+ }
+
+ function echoMultipleFaults3($input) {
+ if ($input->whichFault == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults3'.", null, $input->param2, "SimpleFault2");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults3'.", null, $input->param1, "SimpleFault1");
+ }
+ }
+
+ function echoMultipleFaults4($input) {
+ if ($input->whichFault == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults4'.", null, $input->param2, "SimpleFault2");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults4'.", null, $input->param1, "SimpleFault1");
+ }
+ }
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round4_groupH_simple_doclit.wsdl");
+$server->setClass("SOAP_Interop_GroupH");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_doclit.wsdl b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_doclit.wsdl
new file mode 100644
index 0000000..3311ff1
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_doclit.wsdl
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://soapinterop.org/wsdl"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:ns2="http://soapinterop.org/types"
+ xmlns:ns3="http://soapinterop.org/types/part"
+ xmlns:ns4="http://soapinterop.org/types/requestresponse"
+ targetNamespace="http://soapinterop.org/wsdl">
+ <types>
+ <schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://soapinterop.org/types"
+ targetNamespace="http://soapinterop.org/types">
+
+ <complexType name="ArrayOfString">
+ <sequence>
+ <element name="value" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="ArrayOfInt">
+ <sequence>
+ <element name="value" minOccurs="0" maxOccurs="unbounded" type="xsd:int"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="ArrayOfFloat">
+ <sequence>
+ <element name="value" minOccurs="0" maxOccurs="unbounded" type="xsd:float"/>
+ </sequence>
+ </complexType>
+
+ <simpleType name="Enum">
+ <restriction base="xsd:int">
+ <enumeration value="1"/>
+ <enumeration value="2"/>
+ </restriction>
+ </simpleType>
+
+ </schema>
+
+ <schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://soapinterop.org/types/part"
+ targetNamespace="http://soapinterop.org/types/part">
+
+ <element name="EmptyPart">
+ <complexType/>
+ </element>
+
+ <element name="StringPart" type="xsd:string"/>
+ <element name="IntPart" type="xsd:int"/>
+ <element name="FloatPart" type="xsd:float"/>
+ <element name="ArrayOfStringPart" type="ns2:ArrayOfString"/>
+ <element name="ArrayOfIntPart" type="ns2:ArrayOfInt"/>
+ <element name="ArrayOfFloatPart" type="ns2:ArrayOfFloat"/>
+ <element name="String2Part" type="xsd:string"/>
+ <element name="EnumPart" type="ns2:Enum"/>
+
+ </schema>
+
+ <schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://soapinterop.org/types/requestresponse"
+ targetNamespace="http://soapinterop.org/types/requestresponse">
+
+ <element name="echoEmptyFaultRequest">
+ <complexType/>
+ </element>
+ <element name="echoEmptyFaultResponse">
+ <complexType/>
+ </element>
+
+ <element name="echoStringFaultRequest" type="xsd:string"/>
+ <element name="echoStringFaultResponse">
+ <complexType/>
+ </element>
+
+ <element name="echoIntArrayFaultRequest" type="ns2:ArrayOfInt"/>
+ <element name="echoIntArrayFaultResponse">
+ <complexType/>
+ </element>
+
+ <element name="echoMultipleFaults1Request">
+ <complexType>
+ <sequence>
+ <element name="whichFault" type="xsd:int"/>
+ <element name="param1" type="xsd:string"/>
+ <element name="param2" type="ns2:ArrayOfFloat"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoMultipleFaults1Response">
+ <complexType/>
+ </element>
+
+ <element name="echoMultipleFaults2Request">
+ <complexType>
+ <sequence>
+ <element name="whichFault" type="xsd:int"/>
+ <element name="param1" type="xsd:string"/>
+ <element name="param2" type="xsd:float"/>
+ <element name="param3" type="ns2:ArrayOfString"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoMultipleFaults2Response">
+ <complexType/>
+ </element>
+
+ <element name="echoMultipleFaults3Request">
+ <complexType>
+ <sequence>
+ <element name="whichFault" type="xsd:int"/>
+ <element name="param1" type="xsd:string"/>
+ <element name="param2" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoMultipleFaults3Response">
+ <complexType/>
+ </element>
+
+ <element name="echoMultipleFaults4Request">
+ <complexType>
+ <sequence>
+ <element name="whichFault" type="xsd:int"/>
+ <element name="param1" type="xsd:int"/>
+ <element name="param2" type="ns2:Enum"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="echoMultipleFaults4Response">
+ <complexType/>
+ </element>
+
+ </schema>
+ </types>
+
+ <message name="echoEmptyFaultRequest">
+ <part name="param" element="ns4:echoEmptyFaultRequest"/>
+ </message>
+ <message name="echoEmptyFaultResponse">
+ <part name="param" element="ns4:echoEmptyFaultResponse"/>
+ </message>
+
+ <message name="echoStringFaultRequest">
+ <part name="param" element="ns4:echoStringFaultRequest"/>
+ </message>
+ <message name="echoStringFaultResponse">
+ <part name="param" element="ns4:echoStringFaultResponse"/>
+ </message>
+
+ <message name="echoIntArrayFaultRequest">
+ <part name="param" element="ns4:echoIntArrayFaultRequest"/>
+ </message>
+ <message name="echoIntArrayFaultResponse">
+ <part name="param" element="ns4:echoIntArrayFaultResponse"/>
+ </message>
+
+ <message name="echoMultipleFaults1Request">
+ <part name="param" element="ns4:echoMultipleFaults1Request"/>
+ </message>
+ <message name="echoMultipleFaults1Response">
+ <part name="param" element="ns4:echoMultipleFaults1Response"/>
+ </message>
+
+ <message name="echoMultipleFaults2Request">
+ <part name="param" element="ns4:echoMultipleFaults2Request"/>
+ </message>
+ <message name="echoMultipleFaults2Response">
+ <part name="param" element="ns4:echoMultipleFaults2Response"/>
+ </message>
+
+ <message name="echoMultipleFaults3Request">
+ <part name="param" element="ns4:echoMultipleFaults3Request"/>
+ </message>
+ <message name="echoMultipleFaults3Response">
+ <part name="param" element="ns4:echoMultipleFaults3Response"/>
+ </message>
+
+ <message name="echoMultipleFaults4Request">
+ <part name="param" element="ns4:echoMultipleFaults4Request"/>
+ </message>
+ <message name="echoMultipleFaults4Response">
+ <part name="param" element="ns4:echoMultipleFaults4Response"/>
+ </message>
+
+ <!-- Fault messages -->
+ <message name="EmptyFault">
+ <part name="part1" element="ns3:EmptyPart"/>
+ </message>
+ <message name="StringFault">
+ <part name="part2" element="ns3:StringPart"/>
+ </message>
+ <message name="IntFault">
+ <part name="part3" element="ns3:IntPart"/>
+ </message>
+ <message name="FloatFault">
+ <part name="part4" element="ns3:FloatPart"/>
+ </message>
+ <message name="StringArrayFault">
+ <part name="part5" element="ns3:ArrayOfStringPart"/>
+ </message>
+ <message name="IntArrayFault">
+ <part name="part6" element="ns3:ArrayOfIntPart"/>
+ </message>
+ <message name="FloatArrayFault">
+ <part name="part7" element="ns3:ArrayOfFloatPart"/>
+ </message>
+ <!--
+ Part name same as in Fault2 message
+ -->
+ <message name="String2Fault">
+ <part name="part2" element="ns3:String2Part"/>
+ </message>
+ <message name="EnumFault">
+ <part name="part9" element="ns3:EnumPart"/>
+ </message>
+
+ <portType name="SimpleDocLitPortType">
+ <!--
+ Throws an empty fault
+ -->
+ <operation name="echoEmptyFault" parameterOrder="">
+ <input message="tns:echoEmptyFaultRequest"/>
+ <output message="tns:echoEmptyFaultResponse"/>
+ <fault name="SimpleFault" message="tns:EmptyFault"/>
+ </operation>
+
+ <!--
+ Throws fault with xsd:string parameter
+ -->
+ <operation name="echoStringFault" parameterOrder="param">
+ <input message="tns:echoStringFaultRequest"/>
+ <output message="tns:echoStringFaultResponse"/>
+ <fault name="SimpleFault" message="tns:StringFault"/>
+ </operation>
+
+ <!--
+ Throws fault with xsd:int[] parameter
+ -->
+ <operation name="echoIntArrayFault" parameterOrder="param">
+ <input message="tns:echoIntArrayFaultRequest"/>
+ <output message="tns:echoIntArrayFaultResponse"/>
+ <fault name="SimpleFault" message="tns:IntArrayFault"/>
+ </operation>
+
+ <!--
+ Throws empty fault, fault with a xsd:string
+ parameter and fault with xsd:float[] parameter
+ -->
+ <operation name="echoMultipleFaults1" parameterOrder="param">
+ <input message="tns:echoMultipleFaults1Request"/>
+ <output message="tns:echoMultipleFaults1Response"/>
+ <fault name="SimpleFault1" message="tns:EmptyFault"/>
+ <fault name="SimpleFault2" message="tns:StringFault"/>
+ <fault name="SimpleFault3" message="tns:FloatArrayFault"/>
+ </operation>
+
+ <!--
+ Throws fault with xsd:string parameter, fault with
+ xsd:float parameter and fault with xsd:string[]
+ parameters
+ -->
+ <operation name="echoMultipleFaults2" parameterOrder="param">
+ <input message="tns:echoMultipleFaults2Request"/>
+ <output message="tns:echoMultipleFaults2Response"/>
+ <fault name="SimpleFault1" message="tns:StringFault"/>
+ <fault name="SimpleFault2" message="tns:FloatFault"/>
+ <fault name="SimpleFault3" message="tns:StringArrayFault"/>
+ </operation>
+
+ <!--
+ Throws two faults, each with xsd:string parameters
+ and same part names
+ -->
+ <operation name="echoMultipleFaults3" parameterOrder="param">
+ <input message="tns:echoMultipleFaults3Request"/>
+ <output message="tns:echoMultipleFaults3Response"/>
+ <fault name="SimpleFault1" message="tns:StringFault"/>
+ <fault name="SimpleFault2" message="tns:String2Fault"/>
+ </operation>
+
+ <!--
+ Throws fault with xsd:int parameter and fault with an
+ int enumeration parameter
+ -->
+ <operation name="echoMultipleFaults4" parameterOrder="param">
+ <input message="tns:echoMultipleFaults4Request"/>
+ <output message="tns:echoMultipleFaults4Response"/>
+ <fault name="SimpleFault1" message="tns:IntFault"/>
+ <fault name="SimpleFault2" message="tns:EnumFault"/>
+ </operation>
+ </portType>
+
+ <binding name="SimpleDocLitBinding" type="tns:SimpleDocLitPortType">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+
+ <operation name="echoEmptyFault">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <soap:fault use="literal"/>
+ <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
+ </operation>
+
+ <operation name="echoStringFault">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="SimpleFault">
+ <soap:fault use="literal"/>
+ </fault>
+ <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
+ </operation>
+
+ <operation name="echoIntArrayFault">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="SimpleFault">
+ <soap:fault use="literal"/>
+ </fault>
+ <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
+ </operation>
+
+ <operation name="echoMultipleFaults1">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="SimpleFault1">
+ <soap:fault use="literal"/>
+ </fault>
+ <fault name="SimpleFault2">
+ <soap:fault use="literal"/>
+ </fault>
+ <fault name="SimpleFault3">
+ <soap:fault use="literal"/>
+ </fault>
+ <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
+ </operation>
+
+ <operation name="echoMultipleFaults2">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="SimpleFault1">
+ <soap:fault use="literal"/>
+ </fault>
+ <fault name="SimpleFault2">
+ <soap:fault use="literal"/>
+ </fault>
+ <fault name="SimpleFault3">
+ <soap:fault use="literal"/>
+ </fault>
+ <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
+ </operation>
+
+ <operation name="echoMultipleFaults3">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="SimpleFault1">
+ <soap:fault use="literal"/>
+ </fault>
+ <fault name="SimpleFault2">
+ <soap:fault use="literal"/>
+ </fault>
+ <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
+ </operation>
+
+ <operation name="echoMultipleFaults4">
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="SimpleFault1">
+ <soap:fault use="literal"/>
+ </fault>
+ <fault name="SimpleFault2">
+ <soap:fault use="literal"/>
+ </fault>
+ <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
+ </operation>
+
+ </binding>
+
+ <service name="SimpleDocLitService">
+ <port name="SimpleDocLitPort" binding="tns:SimpleDocLitBinding">
+ <soap:address
+ location="http://"/>
+ </port>
+ </service>
+</definitions>
+
diff --git a/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_rpcenc.inc b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_rpcenc.inc
new file mode 100644
index 0000000..0b85a34
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_rpcenc.inc
@@ -0,0 +1,56 @@
+<?php
+class SOAP_Interop_GroupH {
+
+ function echoEmptyFault() {
+ return new SoapFault("Server", "Fault in response to 'echoEmptyFault'.", null, null, "SimpleFault");
+ }
+
+ function echoStringFault($input) {
+ return new SoapFault("Server", "Fault in response to 'echoStringFault'.", null, $input, "SimpleFault");
+ }
+
+ function echoIntArrayFault($input) {
+ return new SoapFault("Server", "Fault in response to 'echoIntArrayFault'.", null, $input, "SimpleFault");
+ }
+
+ function echoMultipleFaults1($param, $string, $floats) {
+ if ($param == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults1'.", null, $string, "SimpleFault2");
+ } else if ($param == 3) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults1'.", null, $floats, "SimpleFault3");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults1'.", null, null, "SimpleFault1");
+ }
+ }
+
+ function echoMultipleFaults2($param, $string, $float, $strings) {
+ if ($param == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $string, "SimpleFault1");
+ } else if ($param == 3) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $strings, "SimpleFault3");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults2'.", null, $float, "SimpleFault2");
+ }
+ }
+
+ function echoMultipleFaults3($param, $param1, $param2) {
+ if ($param == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults3'.", null, $param2, "SimpleFault2");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults3'.", null, $param1, "SimpleFault1");
+ }
+ }
+
+ function echoMultipleFaults4($param, $int, $enum) {
+ if ($param == 2) {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults4'.", null, $enum, "SimpleFault2");
+ } else {
+ return new SoapFault("Server", "Fault in response to 'echoMultipleFaults4'.", null, $int, "SimpleFault1");
+ }
+ }
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round4_groupH_simple_rpcenc.wsdl");
+$server->setClass("SOAP_Interop_GroupH");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_rpcenc.wsdl b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_rpcenc.wsdl
new file mode 100644
index 0000000..2eb4085
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_simple_rpcenc.wsdl
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://soapinterop.org/wsdl"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:ns2="http://soapinterop.org/types"
+ targetNamespace="http://soapinterop.org/wsdl">
+ <types>
+ <schema
+ xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://soapinterop.org/types"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ targetNamespace="http://soapinterop.org/types">
+
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+
+ <complexType name="EmptyFault"/>
+
+ <complexType name="ArrayOfString">
+ <complexContent>
+ <restriction base="soap-enc:Array">
+ <attribute ref="soap-enc:arrayType" wsdl:arrayType="string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <complexType name="ArrayOfInt">
+ <complexContent>
+ <restriction base="soap-enc:Array">
+ <attribute ref="soap-enc:arrayType" wsdl:arrayType="int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <complexType name="ArrayOfFloat">
+ <complexContent>
+ <restriction base="soap-enc:Array">
+ <attribute ref="soap-enc:arrayType" wsdl:arrayType="float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <simpleType name="Enum">
+ <restriction base="int">
+ <enumeration value="1"/>
+ <enumeration value="2"/>
+ </restriction>
+ </simpleType>
+ </schema>
+ </types>
+
+ <message name="echoFaultRequest"/>
+ <message name="echoFaultResponse"/>
+ <message name="echoStringFaultRequest">
+ <part name="param" type="xsd:string"/>
+ </message>
+ <message name="echoIntArrayFaultRequest">
+ <part name="param" type="ns2:ArrayOfInt"/>
+ </message>
+ <message name="echoMultipleFaults1Request">
+ <part name="whichFault" type="xsd:int"/>
+ <part name="param1" type="xsd:string"/>
+ <part name="param2" type="ns2:ArrayOfFloat"/>
+ </message>
+ <message name="echoMultipleFaults2Request">
+ <part name="whichFault" type="xsd:int"/>
+ <part name="param1" type="xsd:string"/>
+ <part name="param2" type="xsd:float"/>
+ <part name="param3" type="ns2:ArrayOfString"/>
+ </message>
+ <message name="echoMultipleFaults3Request">
+ <part name="whichFault" type="xsd:int"/>
+ <part name="param1" type="xsd:string"/>
+ <part name="param2" type="xsd:string"/>
+ </message>
+ <message name="echoMultipleFaults4Request">
+ <part name="whichFault" type="xsd:int"/>
+ <part name="param1" type="xsd:int"/>
+ <part name="param2" type="ns2:Enum"/>
+ </message>
+
+ <!-- Fault messages -->
+ <message name="EmptyFault">
+ <part name="part1" type="ns2:EmptyFault"/>
+ </message>
+ <message name="StringFault">
+ <part name="part2" type="xsd:string"/>
+ </message>
+ <message name="IntFault">
+ <part name="part3" type="xsd:int"/>
+ </message>
+ <message name="FloatFault">
+ <part name="part4" type="xsd:float"/>
+ </message>
+ <message name="IntArrayFault">
+ <part name="part5" type="ns2:ArrayOfInt"/>
+ </message>
+ <message name="StringArrayFault">
+ <part name="part6" type="ns2:ArrayOfString"/>
+ </message>
+ <message name="FloatArrayFault">
+ <part name="part7" type="ns2:ArrayOfFloat"/>
+ </message>
+ <!--
+ Part name same as in StringFault message
+ -->
+ <message name="String2Fault">
+ <part name="part2" type="xsd:string"/>
+ </message>
+ <message name="EnumFault">
+ <part name="part9" type="ns2:Enum"/>
+ </message>
+
+ <portType name="SimpleRpcEncPortType">
+ <!--
+ Throws an empty fault
+ -->
+ <operation name="echoEmptyFault" parameterOrder="">
+ <input message="tns:echoFaultRequest"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="SimpleFault" message="tns:EmptyFault"/>
+ </operation>
+
+ <!--
+ Throws fault with xsd:string parameter
+ -->
+ <operation name="echoStringFault" parameterOrder="param">
+ <input message="tns:echoStringFaultRequest"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="SimpleFault" message="tns:StringFault"/>
+ </operation>
+
+ <!--
+ Throws fault with xsd:int[] parameter
+ -->
+ <operation name="echoIntArrayFault" parameterOrder="param">
+ <input message="tns:echoIntArrayFaultRequest"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="SimpleFault" message="tns:IntArrayFault"/>
+ </operation>
+
+ <!--
+ Throws empty fault, fault with a xsd:string
+ parameter and fault with xsd:float[] parameter
+ -->
+ <operation name="echoMultipleFaults1" parameterOrder="whichFault param1 param2">
+ <input message="tns:echoMultipleFaults1Request"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="SimpleFault1" message="tns:EmptyFault"/>
+ <fault name="SimpleFault2" message="tns:StringFault"/>
+ <fault name="SimpleFault3" message="tns:FloatArrayFault"/>
+ </operation>
+
+ <!--
+ Throws fault with xsd:string parameter, fault with
+ xsd:float parameter and fault with xsd:string[]
+ parameters
+ -->
+ <operation name="echoMultipleFaults2" parameterOrder="whichFault param1 param2 param3">
+ <input message="tns:echoMultipleFaults2Request"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="SimpleFault1" message="tns:StringFault"/>
+ <fault name="SimpleFault2" message="tns:FloatFault"/>
+ <fault name="SimpleFault3" message="tns:StringArrayFault"/>
+ </operation>
+
+ <!--
+ Throws two faults, each with xsd:string parameters
+ and same part names. Each part name is bound to a different
+ namespace.
+ -->
+ <operation name="echoMultipleFaults3" parameterOrder="whichFault param1 param2">
+ <input message="tns:echoMultipleFaults3Request"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="SimpleFault1" message="tns:StringFault"/>
+ <fault name="SimpleFault2" message="tns:String2Fault"/>
+ </operation>
+
+ <!--
+ Throws fault with xsd:int parameter and fault with an
+ int enumeration parameter
+ -->
+ <operation name="echoMultipleFaults4" parameterOrder="whichFault param1 param2">
+ <input message="tns:echoMultipleFaults4Request"/>
+ <output message="tns:echoFaultResponse"/>
+ <fault name="SimpleFault1" message="tns:IntFault"/>
+ <fault name="SimpleFault2" message="tns:EnumFault"/>
+ </operation>
+ </portType>
+
+ <binding name="SimpleRpcEncBinding" type="tns:SimpleRpcEncPortType">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
+
+ <operation name="echoEmptyFault">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="SimpleFault">
+ <soap:fault
+ name="SimpleFault"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoStringFault">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="SimpleFault">
+ <soap:fault
+ name="SimpleFault"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoIntArrayFault">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="SimpleFault">
+ <soap:fault
+ name="SimpleFault"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoMultipleFaults1">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="SimpleFault1">
+ <soap:fault
+ name="SimpleFault1"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="SimpleFault2">
+ <soap:fault
+ name="SimpleFault2"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="SimpleFault3">
+ <soap:fault
+ name="SimpleFault3"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoMultipleFaults2">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="SimpleFault1">
+ <soap:fault
+ name="SimpleFault1"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="SimpleFault2">
+ <soap:fault
+ name="SimpleFault2"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="SimpleFault3">
+ <soap:fault
+ name="SimpleFault3"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoMultipleFaults3">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="SimpleFault1">
+ <soap:fault
+ name="SimpleFault1"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl/fault1"/>
+ </fault>
+ <fault name="SimpleFault2">
+ <soap:fault
+ name="SimpleFault2"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl/fault2"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoMultipleFaults4">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <fault name="SimpleFault1">
+ <soap:fault
+ name="SimpleFault1"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <fault name="SimpleFault2">
+ <soap:fault
+ name="SimpleFault2"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </fault>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ </binding>
+
+ <service name="SimpleRpcEncService">
+ <port name="SimpleRpcEncPort" binding="tns:SimpleRpcEncBinding">
+ <soap:address location="test://"/>
+ </port>
+ </service>
+</definitions>
+
diff --git a/ext/soap/tests/interop/Round4/GroupH/round4_groupH_soapfault.inc b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_soapfault.inc
new file mode 100644
index 0000000..cf6c374
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_soapfault.inc
@@ -0,0 +1,22 @@
+<?php
+class SOAP_Interop_GroupH {
+
+ function echoVersionMismatchFault()
+ {
+ }
+
+ function echoMustUnderstandFault()
+ {
+ }
+
+ function HeaderRequest($string)
+ {
+ }
+
+
+}
+
+$server = new SoapServer(dirname(__FILE__)."/round4_groupH_soapfault.wsdl");
+$server->setClass("SOAP_Interop_GroupH");
+$server->handle();
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupH/round4_groupH_soapfault.wsdl b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_soapfault.wsdl
new file mode 100644
index 0000000..4f49b8f
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/round4_groupH_soapfault.wsdl
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://soapinterop.org/wsdl"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:ns2="http://soapinterop.org/types"
+ targetNamespace="http://soapinterop.org/wsdl">
+
+ <message name="echoVoidRequest"/>
+ <message name="echoVoidResponse"/>
+ <message name="HeaderRequest">
+ <part name="param" type="xsd:string"/>
+ </message>
+
+ <portType name="SOAPFaultPortType">
+ <operation name="echoVersionMismatchFault" parameterOrder="">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+
+ <operation name="echoMustUnderstandFault" parameterOrder="">
+ <input message="tns:echoVoidRequest"/>
+ <output message="tns:echoVoidResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="SOAPFaultBinding" type="tns:SOAPFaultPortType">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
+ <!--
+ If the server receives an envelope with an incorrect
+ namespace, then a fault with VersionMismatch fault code
+ is populated in the SOAP response
+ -->
+ <operation name="echoVersionMismatchFault">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ <operation name="echoMustUnderstandFault">
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ <soap:header
+ message="tns:HeaderRequest"
+ part="param"
+ use="encoded"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ use="encoded"
+ namespace="http://soapinterop.org/wsdl"/>
+ </output>
+ <soap:operation soapAction=""/>
+ </operation>
+
+ </binding>
+
+ <service name="SOAPFaultService">
+ <port name="SOAPFaultPort" binding="tns:SOAPFaultBinding">
+ <soap:address location="test://"/>
+ </port>
+ </service>
+</definitions>
+
+
diff --git a/ext/soap/tests/interop/Round4/GroupH/skipif.inc b/ext/soap/tests/interop/Round4/GroupH/skipif.inc
new file mode 100644
index 0000000..fa8574e
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupH/skipif.inc
@@ -0,0 +1,3 @@
+<?php
+ if (!extension_loaded('soap')) die('skip soap extension not available');
+?>
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_001w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_001w.phpt
new file mode 100644
index 0000000..2ed20e9
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_001w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 001 (php/wsdl): echoVoid
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoVoid();
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoVoid/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoVoidResponse/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_002w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_002w.phpt
new file mode 100644
index 0000000..27ff0fc
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_002w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 002 (php/wsdl): echoInteger
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoInteger(array("inputInteger"=>22));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoInteger><ns1:inputInteger>22</ns1:inputInteger></ns1:echoInteger></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoIntegerResponse><ns1:return>22</ns1:return></ns1:echoIntegerResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_003w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_003w.phpt
new file mode 100644
index 0000000..29ea32c
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_003w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 003 (php/wsdl): echoFloat
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoFloat(array("inputFloat"=>12.345));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoFloat><ns1:inputFloat>12.345</ns1:inputFloat></ns1:echoFloat></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoFloatResponse><ns1:return>12.345</ns1:return></ns1:echoFloatResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_004w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_004w.phpt
new file mode 100644
index 0000000..3e765bb
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_004w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 004 (php/wsdl): echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString(array("inputString"=>"Hello World"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoString><ns1:inputString>Hello World</ns1:inputString></ns1:echoString></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoStringResponse><ns1:return>Hello World</ns1:return></ns1:echoStringResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_005w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_005w.phpt
new file mode 100644
index 0000000..6960190
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_005w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 005 (php/wsdl): echoString(empty)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoString(array());
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoString/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoStringResponse/></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_006w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_006w.phpt
new file mode 100644
index 0000000..58e6b46
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_006w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 006 (php/wsdl): echoBase64
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoBase64(array("inputBase64"=>"AID/AEhFTExPAH8="));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoBase64><ns1:inputBase64>AID/AEhFTExPAH8=</ns1:inputBase64></ns1:echoBase64></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoBase64Response><ns1:return>AID/AEhFTExPAH8=</ns1:return></ns1:echoBase64Response></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_007w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_007w.phpt
new file mode 100644
index 0000000..ddde658
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_007w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 007 (php/wsdl): echoDate
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoDate(array("inputDate"=>"2002-12-22T21:41:17Z"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoDate><ns1:inputDate>2002-12-22T21:41:17Z</ns1:inputDate></ns1:echoDate></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoDateResponse><ns1:return>2002-12-22T21:41:17Z</ns1:return></ns1:echoDateResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_008w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_008w.phpt
new file mode 100644
index 0000000..23dc33b
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_008w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 008 (php/wsdl): echoComplexType
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPComplexType {
+ function SOAPComplexType($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPComplexType('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoComplexType(array("inputComplexType"=>$struct));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd" xmlns:ns2="http://soapinterop.org/"><SOAP-ENV:Body><ns2:echoComplexType><ns2:inputComplexType><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:inputComplexType></ns2:echoComplexType></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd" xmlns:ns2="http://soapinterop.org/"><SOAP-ENV:Body><ns2:echoComplexTypeResponse><ns2:return><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:return></ns2:echoComplexTypeResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_009w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_009w.phpt
new file mode 100644
index 0000000..9182029
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_009w.phpt
@@ -0,0 +1,28 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 009 (php/wsdl): echoComplexType(minOccur=0)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPComplexType {
+ function SOAPComplexType($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPComplexType('arg',34,325.325);
+unset($struct->varString);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoComplexType(array("inputComplexType"=>$struct));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd" xmlns:ns2="http://soapinterop.org/"><SOAP-ENV:Body><ns2:echoComplexType><ns2:inputComplexType><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns2:inputComplexType></ns2:echoComplexType></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd" xmlns:ns2="http://soapinterop.org/"><SOAP-ENV:Body><ns2:echoComplexTypeResponse><ns2:return><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns2:return></ns2:echoComplexTypeResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_010w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_010w.phpt
new file mode 100644
index 0000000..bb6e77f
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_010w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 010 (php/wsdl): echoIntegerMultiOccurs
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoIntegerMultiOccurs(array("inputIntegerMultiOccurs"=>array(22,29,36)));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoIntegerMultiOccurs><ns1:inputIntegerMultiOccurs><ns1:int>22</ns1:int><ns1:int>29</ns1:int><ns1:int>36</ns1:int></ns1:inputIntegerMultiOccurs></ns1:echoIntegerMultiOccurs></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoIntegerMultiOccursResponse><ns1:return>22</ns1:return><ns1:return>29</ns1:return><ns1:return>36</ns1:return></ns1:echoIntegerMultiOccursResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_011w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_011w.phpt
new file mode 100644
index 0000000..4b268a7
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_011w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 011 (php/wsdl): echoFloatMultiOccurs
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoFloatMultiOccurs(array("inputFloatMultiOccurs"=>array(22.5,12.345)));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoFloatMultiOccurs><ns1:inputFloatMultiOccurs><ns1:float>22.5</ns1:float><ns1:float>12.345</ns1:float></ns1:inputFloatMultiOccurs></ns1:echoFloatMultiOccurs></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoFloatMultiOccursResponse><ns1:return>22.5</ns1:return><ns1:return>12.345</ns1:return></ns1:echoFloatMultiOccursResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_012w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_012w.phpt
new file mode 100644
index 0000000..c2c47f4
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_012w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 012 (php/wsdl): echoStringMultiOccurs
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringMultiOccurs(array("inputStringMultiOccurs"=>array("arg1","arg2","arg3")));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoStringMultiOccurs><ns1:inputStringMultiOccurs><ns1:string>arg1</ns1:string><ns1:string>arg2</ns1:string><ns1:string>arg3</ns1:string></ns1:inputStringMultiOccurs></ns1:echoStringMultiOccurs></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoStringMultiOccursResponse><ns1:return>arg1</ns1:return><ns1:return>arg2</ns1:return><ns1:return>arg3</ns1:return></ns1:echoStringMultiOccursResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_013w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_013w.phpt
new file mode 100644
index 0000000..5c2f6ec
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_013w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 013 (php/wsdl): echoStringMultiOccurs(nil)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoStringMultiOccurs(array("inputStringMultiOccurs"=>array("arg1",NULL,"arg3")));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><ns1:echoStringMultiOccurs><ns1:inputStringMultiOccurs><ns1:string>arg1</ns1:string><ns1:string xsi:nil="1"/><ns1:string>arg3</ns1:string></ns1:inputStringMultiOccurs></ns1:echoStringMultiOccurs></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoStringMultiOccursResponse><ns1:return>arg1</ns1:return><ns1:return/><ns1:return>arg3</ns1:return></ns1:echoStringMultiOccursResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_014w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_014w.phpt
new file mode 100644
index 0000000..0da7004
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_014w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 014 (php/wsdl): echoComplexTypeMultiOccurs(1)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPComplexType {
+ function SOAPComplexType($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPComplexType('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoComplexTypeMultiOccurs(array("inputComplexTypeMultiOccurs"=>array($struct,$struct,$struct)));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd" xmlns:ns2="http://soapinterop.org/"><SOAP-ENV:Body><ns2:echoComplexTypeMultiOccurs><ns2:inputComplexTypeMultiOccurs><ns2:SOAPComplexType><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:SOAPComplexType><ns2:SOAPComplexType><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:SOAPComplexType><ns2:SOAPComplexType><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:SOAPComplexType></ns2:inputComplexTypeMultiOccurs></ns2:echoComplexTypeMultiOccurs></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd" xmlns:ns2="http://soapinterop.org/"><SOAP-ENV:Body><ns2:echoComplexTypeMultiOccursResponse><ns2:return><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:return><ns2:return><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:return><ns2:return><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:return></ns2:echoComplexTypeMultiOccursResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_015w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_015w.phpt
new file mode 100644
index 0000000..52b08c6
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_015w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 015 (php/wsdl): echoComplexTypeMultiOccurs(nil)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPComplexType {
+ function SOAPComplexType($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPComplexType('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoComplexTypeMultiOccurs(array("inputComplexTypeMultiOccurs"=>array($struct,null,$struct)));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd" xmlns:ns2="http://soapinterop.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><ns2:echoComplexTypeMultiOccurs><ns2:inputComplexTypeMultiOccurs><ns2:SOAPComplexType><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:SOAPComplexType><ns2:SOAPComplexType xsi:nil="1"/><ns2:SOAPComplexType><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:SOAPComplexType></ns2:inputComplexTypeMultiOccurs></ns2:echoComplexTypeMultiOccurs></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd" xmlns:ns2="http://soapinterop.org/"><SOAP-ENV:Body><ns2:echoComplexTypeMultiOccursResponse><ns2:return><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:return><ns2:return/><ns2:return><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:return></ns2:echoComplexTypeMultiOccursResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_016w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_016w.phpt
new file mode 100644
index 0000000..a5f060c
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_016w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 016 (php/wsdl): echoDecimal
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoDecimal(array("inputDecimal"=>"123456789.123456789"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoDecimal><ns1:inputDecimal>123456789.123456789</ns1:inputDecimal></ns1:echoDecimal></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoDecimalResponse><ns1:return>123456789.123456789</ns1:return></ns1:echoDecimalResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
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
new file mode 100644
index 0000000..7661a60
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_017w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 017 (php/wsdl): echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoBoolean(array("inputBoolean"=>true));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoBoolean><ns1:inputBoolean>1</ns1:inputBoolean></ns1:echoBoolean></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoBooleanResponse><ns1:return>1</ns1:return></ns1:echoBooleanResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_018w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_018w.phpt
new file mode 100644
index 0000000..dde09df
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_018w.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 018 (php/wsdl): echoHexBinary
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoHexBinary(array("inputHexBinary"=>"80FF00017F"));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoHexBinary><ns1:inputHexBinary>80FF00017F</ns1:inputHexBinary></ns1:echoHexBinary></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoHexBinaryResponse><ns1:return>80FF00017F</ns1:return></ns1:echoHexBinaryResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_019w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_019w.phpt
new file mode 100644
index 0000000..4b81f6e
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_019w.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 019 (php/wsdl): echoComplexTypeAsSimpleTypes
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPComplexType {
+ function SOAPComplexType($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPComplexType('arg',34,325.325);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoComplexTypeAsSimpleTypes(array("inputComplexType"=>$struct));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/xsd" xmlns:ns2="http://soapinterop.org/"><SOAP-ENV:Body><ns2:echoComplexTypeAsSimpleTypes><ns2:inputComplexType><ns1:varInt>34</ns1:varInt><ns1:varString>arg</ns1:varString><ns1:varFloat>325.325</ns1:varFloat></ns2:inputComplexType></ns2:echoComplexTypeAsSimpleTypes></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/"><SOAP-ENV:Body><ns1:echoComplexTypeAsSimpleTypesResponse><ns1:outputString>arg</ns1:outputString><ns1:outputInteger>34</ns1:outputInteger><ns1:outputFloat>325.325</ns1:outputFloat></ns1:echoComplexTypeAsSimpleTypesResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_020w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_020w.phpt
new file mode 100644
index 0000000..afc8ece
--- /dev/null
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_020w.phpt
@@ -0,0 +1,28 @@
+--TEST--
+SOAP Interop Round4 GroupI XSD 020 (php/wsdl): echoComplexTypeAsSimpleTypes(minOccurs=0)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class SOAPComplexType {
+ function SOAPComplexType($s, $i, $f) {
+ $this->varString = $s;
+ $this->varInt = $i;
+ $this->varFloat = $f;
+ }
+}
+$struct = new SOAPComplexType('arg',34,325.325);
+unset($struct->varString);
+$client = new SoapClient(dirname(__FILE__)."/round4_groupI_xsd.wsdl",array("trace"=>1,"exceptions"=>0));
+$client->echoComplexTypeAsSimpleTypes(array("inputComplexType"=>$struct));
+echo $client->__getlastrequest();
+$HTTP_RAW_POST_DATA = $client->__getlastrequest();
+include("round4_groupI_xsd.inc");
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>