summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/soap/tests/soap12/T24.phpt21
-rw-r--r--ext/soap/tests/soap12/T25.phpt22
-rw-r--r--ext/soap/tests/soap12/T27.phpt29
-rw-r--r--ext/soap/tests/soap12/T28.phpt22
-rw-r--r--ext/soap/tests/soap12/T31.phpt22
-rw-r--r--ext/soap/tests/soap12/T33.phpt20
-rw-r--r--ext/soap/tests/soap12/T41.phpt30
-rw-r--r--ext/soap/tests/soap12/T42.phpt39
-rw-r--r--ext/soap/tests/soap12/T43.phpt30
-rw-r--r--ext/soap/tests/soap12/T44.phpt27
-rw-r--r--ext/soap/tests/soap12/T45.phpt35
-rw-r--r--ext/soap/tests/soap12/T46.phpt36
-rw-r--r--ext/soap/tests/soap12/T47.phpt29
-rw-r--r--ext/soap/tests/soap12/T48.phpt29
-rw-r--r--ext/soap/tests/soap12/T49.phpt29
-rw-r--r--ext/soap/tests/soap12/T50.phpt29
-rw-r--r--ext/soap/tests/soap12/T51.phpt27
-rw-r--r--ext/soap/tests/soap12/T52.phpt25
-rw-r--r--ext/soap/tests/soap12/T53.phpt25
-rw-r--r--ext/soap/tests/soap12/T54.phpt25
-rw-r--r--ext/soap/tests/soap12/T55.phpt25
-rw-r--r--ext/soap/tests/soap12/T56.phpt34
-rw-r--r--ext/soap/tests/soap12/T57.phpt32
-rw-r--r--ext/soap/tests/soap12/T58.phpt28
-rw-r--r--ext/soap/tests/soap12/T59.phpt28
-rw-r--r--ext/soap/tests/soap12/T60.phpt29
-rw-r--r--ext/soap/tests/soap12/T61.phpt28
-rw-r--r--ext/soap/tests/soap12/T69.phpt19
-rw-r--r--ext/soap/tests/soap12/T70.phpt23
-rw-r--r--ext/soap/tests/soap12/T71.phpt24
-rw-r--r--ext/soap/tests/soap12/T72.phpt22
-rw-r--r--ext/soap/tests/soap12/T73.phpt26
-rw-r--r--ext/soap/tests/soap12/T76_1.phpt25
-rw-r--r--ext/soap/tests/soap12/T76_2.phpt32
-rw-r--r--ext/soap/tests/soap12/T77_1.phpt25
-rw-r--r--ext/soap/tests/soap12/T77_2.phpt24
-rw-r--r--ext/soap/tests/soap12/T77_3.phpt27
-rw-r--r--ext/soap/tests/soap12/skipif.inc3
-rw-r--r--ext/soap/tests/soap12/soap12-test.inc106
-rw-r--r--ext/soap/tests/soap12/soap12-test.wsdl699
40 files changed, 1810 insertions, 0 deletions
diff --git a/ext/soap/tests/soap12/T24.phpt b/ext/soap/tests/soap12/T24.phpt
new file mode 100644
index 0000000000..ac2f84205e
--- /dev/null
+++ b/ext/soap/tests/soap12/T24.phpt
@@ -0,0 +1,21 @@
+--TEST--
+SOAP 1.2: T24 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://wrong-version/">
+ <env:Body>
+ <test:echoOk xmlns:test="http://example.org/ts-tests">
+ foo
+ </test:echoOk>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?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: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:VersionMismatch</faultcode><faultstring>Wrong Version</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/soap12/T25.phpt b/ext/soap/tests/soap12/T25.phpt
new file mode 100644
index 0000000000..894136eb20
--- /dev/null
+++ b/ext/soap/tests/soap12/T25.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SOAP 1.2: T25 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<!DOCTYPE env:Envelope SYSTEM "env.dtd"[]>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Body>
+ <test:echoOk xmlns:test="http://example.org/ts-tests">
+ foo
+ </test:echoOk>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?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: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>DTD are not supported by SOAP</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/soap12/T27.phpt b/ext/soap/tests/soap12/T27.phpt
new file mode 100644
index 0000000000..851b294d4a
--- /dev/null
+++ b/ext/soap/tests/soap12/T27.phpt
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T27 echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <env:Body>
+ <test:echoStringArray xmlns:test="http://example.org/ts-tests"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <test:array enc:itemType="xs:string" enc:arraySize="1">
+ <a>
+ <b>1</b>
+ </a>
+ </test:array>
+ </test:echoStringArray>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>SOAP-ERROR: Encoding: Violation of encoding rules</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
+
diff --git a/ext/soap/tests/soap12/T28.phpt b/ext/soap/tests/soap12/T28.phpt
new file mode 100644
index 0000000000..f93ace7ad2
--- /dev/null
+++ b/ext/soap/tests/soap12/T28.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SOAP 1.2: T28 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Body env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <test:echoOk xmlns:test="http://example.org/ts-tests" >
+ foo
+ </test:echoOk>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>encodingStyle cannot be specified on the Body</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
+
diff --git a/ext/soap/tests/soap12/T31.phpt b/ext/soap/tests/soap12/T31.phpt
new file mode 100644
index 0000000000..56dc883a61
--- /dev/null
+++ b/ext/soap/tests/soap12/T31.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SOAP 1.2: T31 returnVoid
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Body>
+ <test:returnVoid xmlns:test="http://example.org/ts-tests">
+ </test:returnVoid>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><ns1:returnVoidResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"/></env:Body></env:Envelope>
+ok
+
diff --git a/ext/soap/tests/soap12/T33.phpt b/ext/soap/tests/soap12/T33.phpt
new file mode 100644
index 0000000000..c39f9e1ace
--- /dev/null
+++ b/ext/soap/tests/soap12/T33.phpt
@@ -0,0 +1,20 @@
+--TEST--
+SOAP 1.2: T33
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Body>
+ <test:DoesNotExist xmlns:test="http://example.org/ts-tests">
+ </test:DoesNotExist>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>rpc:ProcedureNotPresent</env:Value></env:Code><env:Reason><env:Text>Procedure not present</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T41.phpt b/ext/soap/tests/soap12/T41.phpt
new file mode 100644
index 0000000000..d57eead1e8
--- /dev/null
+++ b/ext/soap/tests/soap12/T41.phpt
@@ -0,0 +1,30 @@
+--TEST--
+SOAP 1.2: T41 echoStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoStruct xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputStruct xsi:type="ns1:SOAPStruct"
+ xmlns:ns1="http://example.org/ts-tests/xsd">
+ <varInt xsi:type="xsd:int">42</varInt>
+ <varFloat xsi:type="xsd:float">0.005</varFloat>
+ <varString xsi:type="xsd:string">hello world</varString>
+ </inputStruct>
+ </test:echoStruct>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStructResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">hello world</varString><varInt xsi:type="xsd:int">42</varInt><varFloat xsi:type="xsd:float">0.005</varFloat></return></ns1:echoStructResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T42.phpt b/ext/soap/tests/soap12/T42.phpt
new file mode 100644
index 0000000000..7ce828135d
--- /dev/null
+++ b/ext/soap/tests/soap12/T42.phpt
@@ -0,0 +1,39 @@
+--TEST--
+SOAP 1.2: T42 echoStructArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoStructArray xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputStructArray enc:itemType="ns1:SOAPStruct"
+ enc:arraySize="2"
+ xmlns:ns1="http://example.org/ts-tests/xsd"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+ <item xsi:type="ns1:SOAPStruct">
+ <varInt xsi:type="xsd:int">42</varInt>
+ <varFloat xsi:type="xsd:float">0.005</varFloat>
+ <varString xsi:type="xsd:string">hello world</varString>
+ </item>
+ <item xsi:type="ns1:SOAPStruct">
+ <varInt xsi:type="xsd:int">43</varInt>
+ <varFloat xsi:type="xsd:float">0.123</varFloat>
+ <varString xsi:type="xsd:string">bye world</varString>
+ </item>
+ </inputStructArray>
+ </test:echoStructArray>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStructArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return enc:itemType="ns2:SOAPStruct" enc:arraySize="2" xsi:type="ns2:ArrayOfSOAPStruct"><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">hello world</varString><varInt xsi:type="xsd:int">42</varInt><varFloat xsi:type="xsd:float">0.005</varFloat></item><item xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">bye world</varString><varInt xsi:type="xsd:int">43</varInt><varFloat xsi:type="xsd:float">0.123</varFloat></item></return></ns1:echoStructArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T43.phpt b/ext/soap/tests/soap12/T43.phpt
new file mode 100644
index 0000000000..7dd6316144
--- /dev/null
+++ b/ext/soap/tests/soap12/T43.phpt
@@ -0,0 +1,30 @@
+--TEST--
+SOAP 1.2: T43 echoStructAsSimpleTypes
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoStructAsSimpleTypes xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputStruct xsi:type="ns1:SOAPStruct"
+ xmlns:ns1="http://example.org/ts-tests/xsd">
+ <varInt xsi:type="xsd:int">42</varInt>
+ <varFloat xsi:type="xsd:float">0.005</varFloat>
+ <varString xsi:type="xsd:string">hello world</varString>
+ </inputStruct>
+ </test:echoStructAsSimpleTypes>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><ns1:echoStructAsSimpleTypesResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><outputString xsi:type="xsd:string">hello world</outputString><outputInteger xsi:type="xsd:int">42</outputInteger><outputFloat xsi:type="xsd:float">0.005</outputFloat></ns1:echoStructAsSimpleTypesResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T44.phpt b/ext/soap/tests/soap12/T44.phpt
new file mode 100644
index 0000000000..2264f105c8
--- /dev/null
+++ b/ext/soap/tests/soap12/T44.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP 1.2: T44 echoSimpleTypesAsStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoSimpleTypesAsStruct xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputInt xsi:type="xsd:int">42</inputInt>
+ <inputFloat xsi:type="xsd:float">0.005</inputFloat>
+ <inputString xsi:type="xsd:string">hello world</inputString>
+ </test:echoSimpleTypesAsStruct>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoSimpleTypesAsStructResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">hello world</varString><varInt xsi:type="xsd:int">42</varInt><varFloat xsi:type="xsd:float">0.005</varFloat></return></ns1:echoSimpleTypesAsStructResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T45.phpt b/ext/soap/tests/soap12/T45.phpt
new file mode 100644
index 0000000000..68e3cceeef
--- /dev/null
+++ b/ext/soap/tests/soap12/T45.phpt
@@ -0,0 +1,35 @@
+--TEST--
+SOAP 1.2: T45 echoNestedStruct
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoNestedStruct xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputStruct xsi:type="ns1:SOAPStructStruct"
+ xmlns:ns1="http://example.org/ts-tests/xsd">
+ <varInt xsi:type="xsd:int">42</varInt>
+ <varFloat xsi:type="xsd:float">0.005</varFloat>
+ <varString xsi:type="xsd:string">hello world</varString>
+ <varStruct xsi:type="ns1:SOAPStruct">
+ <varInt xsi:type="xsd:int">99</varInt>
+ <varFloat xsi:type="xsd:float">4.0699e-12</varFloat>
+ <varString xsi:type="xsd:string">nested struct</varString>
+ </varStruct>
+ </inputStruct>
+ </test:echoNestedStruct>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoNestedStructResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="ns2:SOAPStructStruct"><varString xsi:type="xsd:string">hello world</varString><varInt xsi:type="xsd:int">42</varInt><varFloat xsi:type="xsd:float">0.005</varFloat><varStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">nested struct</varString><varInt xsi:type="xsd:int">99</varInt><varFloat xsi:type="xsd:float">4.0699E-12</varFloat></varStruct></return></ns1:echoNestedStructResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T46.phpt b/ext/soap/tests/soap12/T46.phpt
new file mode 100644
index 0000000000..9cbb4b16da
--- /dev/null
+++ b/ext/soap/tests/soap12/T46.phpt
@@ -0,0 +1,36 @@
+--TEST--
+SOAP 1.2: T46 echoNestedArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoNestedArray xmlns:test="http://exaple.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputStruct xsi:type="ns1:SOAPArrayStruct"
+ xmlns:ns1="http://example.org/ts-tests/xsd">
+ <varInt xsi:type="xsd:int">42</varInt>
+ <varFloat xsi:type="xsd:float">0.005</varFloat>
+ <varString xsi:type="xsd:string">hello world</varString>
+ <varArray enc:itemType="xsd:string" enc:arraySize="3"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+ <item xsi:type="xsd:string">red</item>
+ <item xsi:type="xsd:string">blue</item>
+ <item xsi:type="xsd:string">green</item>
+ </varArray>
+ </inputStruct>
+ </test:echoNestedArray>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoNestedArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="ns2:SOAPArrayStruct"><varString xsi:type="xsd:string">hello world</varString><varInt xsi:type="xsd:int">42</varInt><varFloat xsi:type="xsd:float">0.005</varFloat><varArray enc:itemType="xsd:string" enc:arraySize="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></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T47.phpt b/ext/soap/tests/soap12/T47.phpt
new file mode 100644
index 0000000000..e1d8b8f1a4
--- /dev/null
+++ b/ext/soap/tests/soap12/T47.phpt
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T47 echoFloatArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoFloatArray xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputFloatArray enc:itemType="xsd:float" enc:arraySize="2"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+ <item xsi:type="xsd:float">0.00000555</item>
+ <item xsi:type="xsd:float">12999.9</item>
+ </inputFloatArray>
+ </test:echoFloatArray>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoFloatArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return enc:itemType="xsd:float" enc:arraySize="2" xsi:type="ns2:ArrayOffloat"><item xsi:type="xsd:float">5.55E-06</item><item xsi:type="xsd:float">12999.9</item></return></ns1:echoFloatArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T48.phpt b/ext/soap/tests/soap12/T48.phpt
new file mode 100644
index 0000000000..07ac4070ae
--- /dev/null
+++ b/ext/soap/tests/soap12/T48.phpt
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T48 echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoStringArray xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputStringArray enc:itemType="xsd:string" enc:arraySize="2"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+ <item xsi:type="xsd:string">hello</item>
+ <item xsi:type="xsd:string">world</item>
+ </inputStringArray>
+ </test:echoStringArray>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return enc:itemType="xsd:string" enc:arraySize="2" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">hello</item><item xsi:type="xsd:string">world</item></return></ns1:echoStringArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T49.phpt b/ext/soap/tests/soap12/T49.phpt
new file mode 100644
index 0000000000..c919e2b76a
--- /dev/null
+++ b/ext/soap/tests/soap12/T49.phpt
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T49 echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoStringArray xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputStringArray enc:arraySize="2"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+ <item xsi:type="xsd:string">hello</item>
+ <item xsi:type="xsd:string">world</item>
+ </inputStringArray>
+ </test:echoStringArray>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return enc:itemType="xsd:string" enc:arraySize="2" xsi:type="ns2:ArrayOfstring"><item xsi:type="xsd:string">hello</item><item xsi:type="xsd:string">world</item></return></ns1:echoStringArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T50.phpt b/ext/soap/tests/soap12/T50.phpt
new file mode 100644
index 0000000000..8e431e5aec
--- /dev/null
+++ b/ext/soap/tests/soap12/T50.phpt
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T50 echoIntegerArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoIntegerArray xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputIntegerArray enc:itemType="xsd:int" enc:arraySize="2"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+ <item xsi:type="xsd:int">100</item>
+ <item xsi:type="xsd:int">200</item>
+ </inputIntegerArray>
+ </test:echoIntegerArray>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://example.org/ts-tests/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoIntegerArrayResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return enc:itemType="xsd:int" enc:arraySize="2" xsi:type="ns2:ArrayOfint"><item xsi:type="xsd:int">100</item><item xsi:type="xsd:int">200</item></return></ns1:echoIntegerArrayResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T51.phpt b/ext/soap/tests/soap12/T51.phpt
new file mode 100644
index 0000000000..97765763c1
--- /dev/null
+++ b/ext/soap/tests/soap12/T51.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP 1.2: T51 echoBase64
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <env:Body>
+ <test:echoBase64 xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputBase64 xsi:type="xsd:base64Binary">
+ YUdWc2JHOGdkMjl5YkdRPQ==
+ </inputBase64>
+ </test:echoBase64>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoBase64Response env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:base64Binary">YUdWc2JHOGdkMjl5YkdRPQ==</return></ns1:echoBase64Response></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T52.phpt b/ext/soap/tests/soap12/T52.phpt
new file mode 100644
index 0000000000..3034f0a297
--- /dev/null
+++ b/ext/soap/tests/soap12/T52.phpt
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T52 echoBoolean
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoBoolean xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputBoolean xsi:type="xsd:boolean">1</inputBoolean>
+ </test:echoBoolean>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoBooleanResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:boolean">1</return></ns1:echoBooleanResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T53.phpt b/ext/soap/tests/soap12/T53.phpt
new file mode 100644
index 0000000000..c1c8fe63aa
--- /dev/null
+++ b/ext/soap/tests/soap12/T53.phpt
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T53 echoDate
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoDate xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputDate xsi:type="xsd:date">1956-10-18T22:20:00-07:00</inputDate>
+ </test:echoDate>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoDateResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:dateTime">1956-10-18T22:20:00-07:00</return></ns1:echoDateResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T54.phpt b/ext/soap/tests/soap12/T54.phpt
new file mode 100644
index 0000000000..ba3ed35526
--- /dev/null
+++ b/ext/soap/tests/soap12/T54.phpt
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T54 echoDecimal
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoDecimal xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputDecimal xsi:type="xsd:decimal">123.45678901234567890</inputDecimal>
+ </test:echoDecimal>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoDecimalResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:decimal">123.45678901234567890</return></ns1:echoDecimalResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T55.phpt b/ext/soap/tests/soap12/T55.phpt
new file mode 100644
index 0000000000..1c12e504f2
--- /dev/null
+++ b/ext/soap/tests/soap12/T55.phpt
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T55 echoFloat
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoFloat xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputFloat xsi:type="xsd:float">0.005</inputFloat>
+ </test:echoFloat>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoFloatResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:float">0.005</return></ns1:echoFloatResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T56.phpt b/ext/soap/tests/soap12/T56.phpt
new file mode 100644
index 0000000000..a653a9dad0
--- /dev/null
+++ b/ext/soap/tests/soap12/T56.phpt
@@ -0,0 +1,34 @@
+--TEST--
+SOAP 1.2: T56 echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ 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:Header>
+ <test:DataHolder xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <test:Data enc:id="data-1" xsi:type="xsd:string">
+ hello world
+ </test:Data>
+ </test:DataHolder>
+ </env:Header>
+ <env:Body>
+ <test:echoString xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputString enc:ref="#data-2" xsi:type="xsd:string" />
+ </test:echoString>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>SOAP-ERROR: Encoding: Unresolved reference '#data-2'</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
+
diff --git a/ext/soap/tests/soap12/T57.phpt b/ext/soap/tests/soap12/T57.phpt
new file mode 100644
index 0000000000..ad3e9ef50f
--- /dev/null
+++ b/ext/soap/tests/soap12/T57.phpt
@@ -0,0 +1,32 @@
+--TEST--
+SOAP 1.2: T57 echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ 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:Header>
+ <test:DataHolder xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <test:Data enc:id="data" xsi:type="xsd:string">hello world</test:Data>
+ </test:DataHolder>
+ </env:Header>
+ <env:Body>
+ <test:echoString xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <test:inputString enc:ref="#data" xsi:type="xsd:string" />
+ </test:echoString>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:string">hello world</return></ns1:echoStringResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T58.phpt b/ext/soap/tests/soap12/T58.phpt
new file mode 100644
index 0000000000..e1503ed69c
--- /dev/null
+++ b/ext/soap/tests/soap12/T58.phpt
@@ -0,0 +1,28 @@
+--TEST--
+SOAP 1.2: T58 echoIntegerArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoIntegerArray xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputIntegerArray enc:itemType="xsd:int" enc:arraySize="1"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+ <a><b>1</b></a>
+ </inputIntegerArray>
+ </test:echoIntegerArray>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>SOAP-ERROR: Encoding: Violation of encoding rules</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
+
diff --git a/ext/soap/tests/soap12/T59.phpt b/ext/soap/tests/soap12/T59.phpt
new file mode 100644
index 0000000000..8487a5a6a6
--- /dev/null
+++ b/ext/soap/tests/soap12/T59.phpt
@@ -0,0 +1,28 @@
+--TEST--
+SOAP 1.2: T59 echoStringArray
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoStringArray xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputStringArray enc:itemType="xsd:string"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
+ <item enc:id="data" xsi:type="xsd:string" enc:ref="#data">hello</item>
+ <item>world</item>
+ </inputStringArray>
+ </test:echoStringArray>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>SOAP-ERROR: Encoding: Violation of id and ref information items '#data'</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T60.phpt b/ext/soap/tests/soap12/T60.phpt
new file mode 100644
index 0000000000..234ef4ccd4
--- /dev/null
+++ b/ext/soap/tests/soap12/T60.phpt
@@ -0,0 +1,29 @@
+--TEST--
+SOAP 1.2: T60 countItems
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:countItems xmlns:test="http://example.org/ts-tests"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputStringArray enc:itemType="xsd:string" enc:arraySize="*">
+ <item xsi:type="xsd:string">hello</item>
+ <item xsi:type="xsd:string">world</item>
+ </inputStringArray>
+ </test:countItems>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:countItemsResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:int">2</return></ns1:countItemsResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T61.phpt b/ext/soap/tests/soap12/T61.phpt
new file mode 100644
index 0000000000..728efb16c7
--- /dev/null
+++ b/ext/soap/tests/soap12/T61.phpt
@@ -0,0 +1,28 @@
+--TEST--
+SOAP 1.2: T61 countItems
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:countItems xmlns:test="http://example.org/ts-tests"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputStringArray enc:itemType="xsd:string" enc:arraySize="2 *">
+ <item xsi:type="xsd:string">hello</item>
+ <item xsi:type="xsd:string">world</item>
+ </inputStringArray>
+ </test:countItems>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>SOAP-ERROR: Encoding: '*' may only be first arraySize value in list</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T69.phpt b/ext/soap/tests/soap12/T69.phpt
new file mode 100644
index 0000000000..cf4eac581f
--- /dev/null
+++ b/ext/soap/tests/soap12/T69.phpt
@@ -0,0 +1,19 @@
+--TEST--
+SOAP 1.2: T69 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Header>
+ <test:echoOk xmlns:test="http://example.org/ts-tests">foo</test:echoOk>
+ </env:Header>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>Body must be present in a SOAP envelope</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T70.phpt b/ext/soap/tests/soap12/T70.phpt
new file mode 100644
index 0000000000..884b686267
--- /dev/null
+++ b/ext/soap/tests/soap12/T70.phpt
@@ -0,0 +1,23 @@
+--TEST--
+SOAP 1.2: T70 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Header>
+ <test:echoOk xmlns:test="http://example.org/ts-tests">foo</test:echoOk>
+ </env:Header>
+ <env:Body>
+ </env:Body>
+ <Trailer>
+ </Trailer>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>A SOAP 1.2 envelope can contain only Header and Body</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T71.phpt b/ext/soap/tests/soap12/T71.phpt
new file mode 100644
index 0000000000..da7bd956ad
--- /dev/null
+++ b/ext/soap/tests/soap12/T71.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T71 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ attr1="a-value">
+ <env:Header>
+ <test:echoOk xmlns:test="http://example.org/ts-tests">
+ foo
+ </test:echoOk>
+ </env:Header>
+ <env:Body>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>A SOAP Envelope element cannot have non Namespace qualified attributes</env:Text></env:Reason></env:Fault></env:Body></env:Envelope> \ No newline at end of file
diff --git a/ext/soap/tests/soap12/T72.phpt b/ext/soap/tests/soap12/T72.phpt
new file mode 100644
index 0000000000..6f88f6b936
--- /dev/null
+++ b/ext/soap/tests/soap12/T72.phpt
@@ -0,0 +1,22 @@
+--TEST--
+SOAP 1.2: T72 echoOk
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <env:Body>
+ <test:echoOk xmlns:test="http://example.org/ts-tests">
+ foo
+ </test:echoOk>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" 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><env:Fault><env:Code><env:Value>env:Receiver</env:Value></env:Code><env:Reason><env:Text>encodingStyle cannot be specified on the Envelope</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
diff --git a/ext/soap/tests/soap12/T73.phpt b/ext/soap/tests/soap12/T73.phpt
new file mode 100644
index 0000000000..5ac1be020b
--- /dev/null
+++ b/ext/soap/tests/soap12/T73.phpt
@@ -0,0 +1,26 @@
+--TEST--
+SOAP 1.2: T73 echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoString xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-envelope/encoding/none">
+ <test:inputString xsi:type="xsd:string"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">hello world</test:inputString>
+ </test:echoString>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:string">hello world</return></ns1:echoStringResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T76_1.phpt b/ext/soap/tests/soap12/T76_1.phpt
new file mode 100644
index 0000000000..e97c179768
--- /dev/null
+++ b/ext/soap/tests/soap12/T76_1.phpt
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T76.1 echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:echoString xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputString xsi:type="xsd:string">hello world</inputString>
+ </test:echoString>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:string">hello world</return></ns1:echoStringResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T76_2.phpt b/ext/soap/tests/soap12/T76_2.phpt
new file mode 100644
index 0000000000..cc6ea0df95
--- /dev/null
+++ b/ext/soap/tests/soap12/T76_2.phpt
@@ -0,0 +1,32 @@
+--TEST--
+SOAP 1.2: T76.2 echoString
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ 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:Header>
+ <test:DataHolder xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <test:Data enc:id="data" xsi:type="xsd:string">hello world</test:Data>
+ </test:DataHolder>
+ </env:Header>
+ <env:Body>
+ <test:echoString xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputString enc:ref="data" xsi:type="xsd:string" />
+ </test:echoString>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:echoStringResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:string">hello world</return></ns1:echoStringResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T77_1.phpt b/ext/soap/tests/soap12/T77_1.phpt
new file mode 100644
index 0000000000..fea616a9be
--- /dev/null
+++ b/ext/soap/tests/soap12/T77_1.phpt
@@ -0,0 +1,25 @@
+--TEST--
+SOAP 1.2: T77.1 isNil
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:isNil xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputString xsi:nil="1" />
+ </test:isNil>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:boolean">1</return></ns1:isNilResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T77_2.phpt b/ext/soap/tests/soap12/T77_2.phpt
new file mode 100644
index 0000000000..1e49e8a35e
--- /dev/null
+++ b/ext/soap/tests/soap12/T77_2.phpt
@@ -0,0 +1,24 @@
+--TEST--
+SOAP 1.2: T77.2 isNil
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:isNil xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ </test:isNil>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:boolean">1</return></ns1:isNilResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/T77_3.phpt b/ext/soap/tests/soap12/T77_3.phpt
new file mode 100644
index 0000000000..f404dd0bef
--- /dev/null
+++ b/ext/soap/tests/soap12/T77_3.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SOAP 1.2: T77.3 isNul
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <env:Body>
+ <test:isNil xmlns:test="http://example.org/ts-tests"
+ env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
+ <inputString xsi:type="xsd:string">
+ This is a string
+ </inputString>
+ </test:isNil>
+ </env:Body>
+</env:Envelope>
+EOF;
+include "soap12-test.inc";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"><ns1:isNilResponse env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><rpc:result>return</rpc:result><return xsi:type="xsd:boolean">0</return></ns1:isNilResponse></env:Body></env:Envelope>
+ok
diff --git a/ext/soap/tests/soap12/skipif.inc b/ext/soap/tests/soap12/skipif.inc
new file mode 100644
index 0000000000..fa8574e6a2
--- /dev/null
+++ b/ext/soap/tests/soap12/skipif.inc
@@ -0,0 +1,3 @@
+<?php
+ if (!extension_loaded('soap')) die('skip soap extension not available');
+?>
diff --git a/ext/soap/tests/soap12/soap12-test.inc b/ext/soap/tests/soap12/soap12-test.inc
new file mode 100644
index 0000000000..44733d2ffd
--- /dev/null
+++ b/ext/soap/tests/soap12/soap12-test.inc
@@ -0,0 +1,106 @@
+<?php
+class Soap12test {
+
+ function echoOk($x) {
+ return $x;
+ }
+
+ 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($x) {
+ return $x;
+ }
+
+ function echoStructArray($x) {
+ return $x;
+ }
+
+ 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;
+ }
+
+ 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;
+ }
+
+ function countItems($input) {
+ return count($input);
+ }
+
+ function isNil($input) {
+ return is_null($input);
+ }
+
+ function returnVoid() {
+ }
+}
+
+$server = new soapserver("http://http://example.org/ts-tests");
+$server->bind(dirname(__FILE__)."/soap12-test.wsdl");
+$server->setClass("Soap12test");
+
+$server->handle();
+echo "ok\n";
+?>
diff --git a/ext/soap/tests/soap12/soap12-test.wsdl b/ext/soap/tests/soap12/soap12-test.wsdl
new file mode 100644
index 0000000000..e1feccfca8
--- /dev/null
+++ b/ext/soap/tests/soap12/soap12-test.wsdl
@@ -0,0 +1,699 @@
+<?xml version="1.0"?>
+
+<definitions name="SOAP-12-TestDefinitions"
+ targetNamespace="http://whitemesa.net/wsdl/soap12-test"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:enc="http://www.w3.org/2003/05/soap-encoding"
+ xmlns:tns="http://whitemesa.net/wsdl/soap12-test"
+ xmlns:types="http://example.org/ts-tests/xsd"
+ xmlns:test="http://example.org/ts-tests"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:enc11="http://schemas.xmlsoap.org/soap/encoding/">
+ <types>
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.org/ts-tests/xsd">
+
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
+
+ <complexType name="ArrayOfstring">
+ <complexContent>
+ <restriction base="enc11:Array">
+ <attribute ref="enc11:arrayType" wsdl:arrayType="xsd:string[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <complexType name="ArrayOfint">
+ <complexContent>
+ <restriction base="enc11:Array">
+ <attribute ref="enc11:arrayType" wsdl:arrayType="xsd:int[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <complexType name="ArrayOffloat">
+ <complexContent>
+ <restriction base="enc11:Array">
+ <attribute ref="enc11:arrayType" wsdl:arrayType="xsd:float[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <complexType name="ArrayOfSOAPStruct">
+ <complexContent>
+ <restriction base="enc11:Array">
+ <attribute ref="enc11:arrayType" wsdl:arrayType="types:SOAPStruct[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <complexType name="SOAPStruct">
+ <all>
+ <element name="varString" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ </all>
+ </complexType>
+ <complexType name="SOAPStructStruct">
+ <all>
+ <element name="varString" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ <element name="varStruct" type="types:SOAPStruct"/>
+ </all>
+ </complexType>
+
+ <complexType name="SOAPArrayStruct">
+ <all>
+ <element name="varString" type="xsd:string"/>
+ <element name="varInt" type="xsd:int"/>
+ <element name="varFloat" type="xsd:float"/>
+ <element name="varArray" type="types:ArrayOfstring"/>
+ </all>
+ </complexType>
+
+ <!-- unknown header block type -->
+ <complexType name="UnknownType">
+ <sequence>
+ <element minOccurs="0" maxOccurs="1" name="stringValue" type="xsd:string" />
+ </sequence>
+ </complexType>
+
+ </schema>
+
+ <schema xmlns="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ targetNamespace="http://example.org/ts-tests">
+
+ <import namespace="http://www.w3.org/1999/xlink" />
+ <import namespace="http://example.org/ts-tests/xsd" />
+
+ <!-- 3.2.1 echoOk -->
+ <element name="echoOk" type="xsd:string"/>
+
+ <!-- 3.2.2 responseOk -->
+ <element name="responseOk" type="xsd:string"/>
+
+ <!-- 3.2.3 Ignore -->
+ <element name="Ignore" type="xsd:string"/>
+
+ <!-- 3.2.4 requiredHeader -->
+ <element name="requiredHeader" type="xsd:string"/>
+
+ <!-- 3.2.5 DataHolder -->
+ <element name="DataHolder" type="test:DataHolder_t"/>
+ <complexType name="DataHolder_t">
+ <sequence>
+ <element name="Data" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <!-- 3.2.6 concatAndForwardEchoOk -->
+ <element name="concatAndForwardEchoOk"/>
+
+ <!-- 3.2.7 concatAndForwardEchoOkArg1 -->
+ <element name="concatAndForwardEchoOkArg1" type="xsd:string"/>
+
+ <!-- 3.2.8 concatAndForwardEchoOkArg2 -->
+ <element name="concatAndForwardEchoOkArg2" type="xsd:string"/>
+
+ <!-- 3.2.9 validateCountryCode -->
+ <element name="validateCountryCode" type="xsd:string"/>
+
+ <!-- 3.2.10 validateCountryCodeFault -->
+ <element name="validateCountryCodeFault" type="xsd:string"/>
+
+ <!-- 3.2.11 echoResolvedRef -->
+ <element name="RelativeReference" type="test:RelativeReference_t"/>
+ <complexType name="RelativeReference_t">
+ <attribute ref="xml:base"/>
+ <attribute ref="xlink:href"/>
+ </complexType>
+
+ <element name="echoResolvedRef" type="test:echoResolvedRef_t"/>
+ <complexType name="echoResolvedRef_t">
+ <sequence>
+ <element ref="test:RelativeReference" minOccurs="1" maxOccurs="1"/>
+ </sequence>
+ </complexType>
+
+ <!-- 3.2.12 responseResolvedRef -->
+ <element name="responseResolvedRef" type="xsd:string"/>
+
+ <!-- echoOkUltimateReceiver added to support testing of "relay" -->
+ <element name="echoOkUltimateReceiver" type="xsd:string"/>
+
+ <!-- responseOkUltimateReceiver added to support testing of "relay" -->
+ <element name="responseOkUltimateReceiver" type="xsd:string"/>
+
+ <element name="Unknown" type="types:UnknownType" />
+
+ </schema>
+
+ </types>
+
+ <!-- 3.4.1 returnVoid rpc operation -->
+ <message name="returnVoidRequest"/>
+ <message name="returnVoidResponse"/>
+
+ <!-- 3.4.2 echoStruct rpc operation -->
+ <message name="echoStructRequest">
+ <part name="inputStruct" type="types:SOAPStruct"/>
+ </message>
+ <message name="echoStructResponse">
+ <part name="return" type="types:SOAPStruct"/>
+ </message>
+
+ <!-- 3.4.3 echoStructArray rpc operation -->
+ <message name="echoStructArrayRequest">
+ <part name="inputStructArray" type="types:ArrayOfSOAPStruct"/>
+ </message>
+ <message name="echoStructArrayResponse">
+ <part name="return" type="types:ArrayOfSOAPStruct"/>
+ </message>
+
+ <!-- 3.4.4 echoStructAsSimpleTypes rpc operation -->
+ <message name="echoStructAsSimpleTypesRequest">
+ <part name="inputStruct" type="types:SOAPStruct"/>
+ </message>
+ <message name="echoStructAsSimpleTypesResponse">
+ <part name="outputString" type="xsd:string"/>
+ <part name="outputInteger" type="xsd:int"/>
+ <part name="outputFloat" type="xsd:float"/>
+ </message>
+
+ <!-- 3.4.5 echoSimpleTypesAsStruct rpc operation -->
+ <message name="echoSimpleTypesAsStructRequest">
+ <part name="inputString" type="xsd:string"/>
+ <part name="inputInt" type="xsd:int"/>
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoSimpleTypesAsStructResponse">
+ <part name="return" type="types:SOAPStruct"/>
+ </message>
+
+ <!-- 3.4.6 echoNestedStruct rpc operation -->
+ <message name="echoNestedStructRequest">
+ <part name="inputStruct" type="types:SOAPStructStruct"/>
+ </message>
+ <message name="echoNestedStructResponse">
+ <part name="return" type="types:SOAPStructStruct"/>
+ </message>
+
+ <!-- 3.4.7 echoNestedArray rpc operation -->
+ <message name="echoNestedArrayRequest">
+ <part name="inputStruct" type="types:SOAPArrayStruct"/>
+ </message>
+ <message name="echoNestedArrayResponse">
+ <part name="return" type="types:SOAPArrayStruct"/>
+ </message>
+
+ <!-- 3.4.8 echoFloatArray rpc operation -->
+ <message name="echoFloatArrayRequest">
+ <part name="inputFloatArray" type="types:ArrayOffloat"/>
+ </message>
+ <message name="echoFloatArrayResponse">
+ <part name="return" type="types:ArrayOffloat"/>
+ </message>
+
+ <!-- 3.4.9 echoStringArray rpc operation -->
+ <message name="echoStringArrayRequest">
+ <part name="inputStringArray" type="types:ArrayOfstring"/>
+ </message>
+ <message name="echoStringArrayResponse">
+ <part name="return" type="types:ArrayOfstring"/>
+ </message>
+
+ <!-- 3.4.10 echoIntegerArray rpc operation -->
+ <message name="echoIntegerArrayRequest">
+ <part name="inputIntegerArray" type="types:ArrayOfint"/>
+ </message>
+ <message name="echoIntegerArrayResponse">
+ <part name="return" type="types:ArrayOfint"/>
+ </message>
+
+ <!-- 3.4.11 echoBase64 rpc operation -->
+ <message name="echoBase64Request">
+ <part name="inputBase64" type="xsd:base64Binary"/>
+ </message>
+ <message name="echoBase64Response">
+ <part name="return" type="xsd:base64Binary"/>
+ </message>
+
+ <!-- 3.4.12 echoBoolean rpc operation -->
+ <message name="echoBooleanRequest">
+ <part name="inputBoolean" type="xsd:boolean"/>
+ </message>
+ <message name="echoBooleanResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <!-- 3.4.13 echoDate rpc operation -->
+ <message name="echoDateRequest">
+ <part name="inputDate" type="xsd:dateTime"/>
+ </message>
+ <message name="echoDateResponse">
+ <part name="return" type="xsd:dateTime"/>
+ </message>
+
+ <!-- 3.4.14 echoDecimal rpc operation -->
+ <message name="echoDecimalRequest">
+ <part name="inputDecimal" type="xsd:decimal"/>
+ </message>
+ <message name="echoDecimalResponse">
+ <part name="return" type="xsd:decimal"/>
+ </message>
+
+ <!-- 3.4.15 echoFloat rpc operation -->
+ <message name="echoFloatRequest">
+ <part name="inputFloat" type="xsd:float"/>
+ </message>
+ <message name="echoFloatResponse">
+ <part name="return" type="xsd:float"/>
+ </message>
+
+ <!-- 3.4.16 echoString rpc operation -->
+ <message name="echoStringRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="echoStringResponse">
+ <part name="return" type="xsd:string"/>
+ </message>
+
+ <!-- 3.4.17 countItems rpc operation -->
+ <message name="countItemsRequest">
+ <part name="inputStringArray" type="types:ArrayOfstring"/>
+ </message>
+ <message name="countItemsResponse">
+ <part name="return" type="xsd:int"/>
+ </message>
+
+ <!-- 3.4.18 isNil rpc operation -->
+ <message name="isNilRequest">
+ <part name="inputString" type="xsd:string"/>
+ </message>
+ <message name="isNilResponse">
+ <part name="return" type="xsd:boolean"/>
+ </message>
+
+ <!-- DataHolder header block -->
+ <message name="DataHolderRequest">
+ <part name="DataHolder" type="test:DataHolder_t"/>
+ </message>
+ <message name="DataHolderResponse">
+ <part name="DataHolder" type="test:DataHolder_t"/>
+ </message>
+
+ <!-- empty message for doc/literal testing -->
+ <message name="emptyBodyRequest"/>
+ <message name="emptyBodyResponse"/>
+
+ <!-- echoOk body/header block -->
+ <message name="echoOkRequest">
+ <part name="echoOk" element="test:echoOk"/>
+ </message>
+ <message name="echoOkResponse">
+ <part name="responseOk" element="test:responseOk"/>
+ </message>
+
+ <!-- "unknown" header block -->
+ <message name="UnknownHdrBlockLit">
+ <part name="Unknown" element="test:Unknown" />
+ </message>
+ <message name="UnknownHdrBlockEnc">
+ <part name="Unknown" type="types:UnknownType" />
+ </message>
+
+ <portType name="Soap12TestPortTypeDoc">
+ <operation name="emptyBody">
+ <input message="tns:emptyBodyRequest" />
+ <output message="tns:emptyBodyResponse" />
+ </operation>
+ <operation name="echoOk">
+ <input message="tns:echoOkRequest" />
+ <output message="tns:echoOkResponse" />
+ </operation>
+ </portType>
+
+ <portType name="Soap12TestPortTypeRpc">
+
+ <!-- 3.4.1 returnVoid rpc operation -->
+ <operation name="returnVoid">
+ <input message="tns:returnVoidRequest"/>
+ <output message="tns:returnVoidResponse"/>
+ </operation>
+
+ <!-- 3.4.2 echoStruct rpc operation -->
+ <operation name="echoStruct" parameterOrder="inputStruct">
+ <input message="tns:echoStructRequest"/>
+ <output message="tns:echoStructResponse"/>
+ </operation>
+
+ <!-- 3.4.3 echoStructArray rpc operation -->
+ <operation name="echoStructArray" parameterOrder="inputStructArray">
+ <input message="tns:echoStructArrayRequest"/>
+ <output message="tns:echoStructArrayResponse"/>
+ </operation>
+
+ <!-- 3.4.4 echoStructAsSimpleTypes rpc operation -->
+ <operation name="echoStructAsSimpleTypes" parameterOrder="inputStruct outputString outputInteger outputFloat">
+ <input message="tns:echoStructAsSimpleTypesRequest"/>
+ <output message="tns:echoStructAsSimpleTypesResponse"/>
+ </operation>
+
+ <!-- 3.4.5 echoSimpleTypesAsStruct rpc operation -->
+ <operation name="echoSimpleTypesAsStruct" parameterOrder="inputString inputInteger inputFloat">
+ <input message="tns:echoSimpleTypesAsStructRequest"/>
+ <output message="tns:echoSimpleTypesAsStructResponse"/>
+ </operation>
+
+ <!-- 3.4.6 echoNestedStruct rpc operation -->
+ <operation name="echoNestedStruct" parameterOrder="inputStruct">
+ <input message="tns:echoNestedStructRequest"/>
+ <output message="tns:echoNestedStructResponse"/>
+ </operation>
+
+ <!-- 3.4.7 echoNestedArray rpc operation -->
+ <operation name="echoNestedArray" parameterOrder="inputStruct">
+ <input message="tns:echoNestedArrayRequest"/>
+ <output message="tns:echoNestedArrayResponse"/>
+ </operation>
+
+ <!-- 3.4.8 echoFloatArray rpc operation -->
+ <operation name="echoFloatArray" parameterOrder="inputFloatArray">
+ <input message="tns:echoFloatArrayRequest"/>
+ <output message="tns:echoFloatArrayResponse"/>
+ </operation>
+
+ <!-- 3.4.9 echoStringArray rpc operation -->
+ <operation name="echoStringArray" parameterOrder="inputStringArray">
+ <input message="tns:echoStringArrayRequest"/>
+ <output message="tns:echoStringArrayResponse"/>
+ </operation>
+
+ <!-- 3.4.10 echoIntegerArray rpc operation -->
+ <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
+ <input message="tns:echoIntegerArrayRequest"/>
+ <output message="tns:echoIntegerArrayResponse"/>
+ </operation>
+
+ <!-- 3.4.11 echoBase64 rpc operation -->
+ <operation name="echoBase64" parameterOrder="inputBase64">
+ <input message="tns:echoBase64Request"/>
+ <output message="tns:echoBase64Response"/>
+ </operation>
+
+ <!-- 3.4.12 echoBoolean rpc operation -->
+ <operation name="echoBoolean" parameterOrder="inputBoolean">
+ <input message="tns:echoBooleanRequest"/>
+ <output message="tns:echoBooleanResponse"/>
+ </operation>
+
+ <!-- 3.4.13 echoDate rpc operation -->
+ <operation name="echoDate" parameterOrder="inputDate">
+ <input message="tns:echoDateRequest"/>
+ <output message="tns:echoDateResponse"/>
+ </operation>
+
+ <!-- 3.4.14 echoDecimal rpc operation -->
+ <operation name="echoDecimal" parameterOrder="inputDecimal">
+ <input message="tns:echoDecimalRequest"/>
+ <output message="tns:echoDecimalResponse"/>
+ </operation>
+
+ <!-- 3.4.15 echoFloat rpc operation -->
+ <operation name="echoFloat" parameterOrder="inputFloat">
+ <input message="tns:echoFloatRequest"/>
+ <output message="tns:echoFloatResponse"/>
+ </operation>
+
+ <!-- 3.4.16 echoString rpc operation -->
+ <operation name="echoString" parameterOrder="inputString">
+ <input message="tns:echoStringRequest"/>
+ <output message="tns:echoStringResponse"/>
+ </operation>
+
+ <!-- 3.4.17 countItems rpc operation -->
+ <operation name="countItems" parameterOrder="inputStringArray">
+ <input message="tns:countItemsRequest"/>
+ <output message="tns:countItemsResponse"/>
+ </operation>
+
+ <!-- 3.4.18 isNil rpc operation -->
+ <operation name="isNil" parameterOrder="inputString">
+ <input message="tns:isNilRequest"/>
+ <output message="tns:isNilResponse"/>
+ </operation>
+
+ </portType>
+
+ <binding name="Soap12TestDocBinding" type="tns:Soap12TestPortTypeDoc">
+ <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="emptyBody">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="literal" />
+ <soap12:header message="tns:echoOkRequest" part="echoOk" use="literal" />
+ <soap12:header message="tns:UnknownHdrBlockLit" part="Unknown" use="literal" />
+
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ <soap12:header message="tns:echoOkResponse" part="responseOk" use="literal" />
+
+ </output>
+ </operation>
+ <operation name="echoOk">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="literal" />
+ <soap12:header message="tns:echoOkRequest" part="echoOk" use="literal" />
+ <soap12:header message="tns:UnknownHdrBlockLit" part="Unknown" use="literal" />
+ </input>
+ <output>
+ <soap12:body use="literal" />
+ <soap12:header message="tns:echoOkResponse" part="responseOk" use="literal" />
+ </output>
+ </operation>
+ </binding>
+
+ <binding name="Soap12TestRpcBinding" type="tns:Soap12TestPortTypeRpc">
+ <soap12:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <!-- 3.4.1 returnVoid rpc operation -->
+ <operation name="returnVoid">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.2 echoStruct rpc operation -->
+ <operation name="echoStruct">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.3 echoStructArray rpc operation -->
+ <operation name="echoStructArray">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.4 echoStructAsSimpleTypes rpc operation -->
+ <operation name="echoStructAsSimpleTypes">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.5 echoSimpleTypesAsStruct rpc operation -->
+ <operation name="echoSimpleTypesAsStruct">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.6 echoNestedStruct rpc operation -->
+ <operation name="echoNestedStruct">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.7 echoNestedArray rpc operation -->
+ <operation name="echoNestedArray">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.8 echoFloatArray rpc operation -->
+ <operation name="echoFloatArray">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.9 echoStringArray rpc operation -->
+ <operation name="echoStringArray">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.10 echoIntegerArray rpc operation -->
+ <operation name="echoIntegerArray">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.11 echoBase64 rpc operation -->
+ <operation name="echoBase64">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.12 echoBoolean rpc operation -->
+ <operation name="echoBoolean">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.13 echoDate rpc operation -->
+ <operation name="echoDate">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.14 echoDecimal rpc operation -->
+ <operation name="echoDecimal">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.15 echoFloat rpc operation -->
+ <operation name="echoFloat">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.16 echoString rpc operation -->
+ <operation name="echoString">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ <soap12:header use="encoded" message="tns:DataHolderRequest" part="DataHolder" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ <soap12:header use="encoded" message="tns:DataHolderResponse" part="DataHolder" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.17 countItems rpc operation -->
+ <operation name="countItems">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ <!-- 3.4.18 isNil rpc operation -->
+ <operation name="isNil">
+ <soap12:operation/>
+ <input>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </input>
+ <output>
+ <soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
+ </output>
+ </operation>
+
+ </binding>
+
+
+ <service name="WhiteMesaSoap12TestSvc">
+
+ <port name="Soap12TestDocPort" binding="tns:Soap12TestDocBinding">
+ <soap12:address location="http://localhost/soap12/test-doc"/>
+ </port>
+ <port name="Soap12TestRpcPort" binding="tns:Soap12TestRpcBinding">
+ <soap12:address location="http://localhost/soap12/test-rpc"/>
+ </port>
+
+ </service>
+
+</definitions>