ROUND 4 SOAP Interoperability Tests Specification WSDL/XSD testing

Overview

This specification outlines a SOAP service interface that can be implemented by SOAP implementations as part of an interoperability testing process.   This section will cover WSDL/XSD testing.   Methods will include all the methods from round 1 and round 2 but as DOC/LIT soap messages instead of RPC/ENC soap messages.   This section will also include methods that cover passing enums, the any type, any (ArbitraryXML), and using XSD choice.


Endpoints

    asmx endpoint for round 4 XSD services

    wsdl of round 4 XSD services


Tests

Test

Description

echoString

This method accepts a single string and echoes it back to the client

echoStringMultiOccurs

This method accepts a multiple occurance (array) of strings and echoes it back to the client

echoInteger

This method accepts a single integer and echoes it back to the client

echoIntegerMultiOccurs

This method accepts a multiple occurance (array) of integers and echoes it back to the client

echoFloat

This method accepts a single float and echoes it back to the client

echoFloatMultiOccurs

This method accepts a multiple occurance (array) of floats and echoes it back to the client

echoComplexType

This method accepts a single complex type and echoes it back to the client

echoComplexTypeMultiOccurs

This method accepts a multiple occurance (array) of complex types and echoes it back to the client

echoVoid

This method exists to test the void return case. It accepts no parameters and return no values

echoBase64

This method accepts a binary object and echoes it back to the client

echoHexBinary

This method accepts a hex encoded object and echoes it back to the client

echoDate

This method accepts a DateTime and echoes it back to the client

echoDecimal

This method accepts a single decimal and echoes it back to the client

echoBoolean

This method accepts a single boolean and echoes it back to the client

echoComplexTypeAsSimpleTypes

This method accepts a complex type and echoes it back to the client as out parameters

echoSimpleTypesAsComplexType

This method accepts simple parameters and echoes them back to the client as a complex type

echo2DStringMultiOccurs

This method accepts a multiple occurance (2 dimensional array) of xsd:string and echoes it back to the client

echoNestedComplexType

This method accepts a single complex type nested within another complext type and echoes it back to the client

echoNestedMultiOccurs

This method accepts a single complex type nest which contains a nested multiple occurance (array) and echoes it back to the client

echoMeStringRequest - header entry

This header entry contains a string which is echoed back to the client in a header entry named "echoMeStringResponse"

echoMeComplexTypeRequest - header entry

This method accepts a single string and echoes it back to the client

Unknown - header entry

This is any header that is not recognized, or "understood" by the server. If the header entry bears the mustUnderstand attribute value of "1", the server MUST fault if it is the target of the header entry, which is determined by the value of the actor attribute

echoEnum

This method accepts a single enumeration and echoes it back to the client

echoAnyType

This method accepts an object of any type and echoes it back to the client

echoAnyElement

This method uses the Xml schema wildcard and it will accept any arbitary XML

echoChoice

This method accepts a single struct where only one of the elements will be used and echoes it back to the client




Sample Messages


method:echoString

Input parameter name: inputString
Input parameter type: xsd:string
Output parameter name: return
Output parameter type: xsd:string

Request from client
<?xml version="1.0" encoding="utf-8"?>
  <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
      <echoString xmlns="http://soapinterop.org/">
        <inputString>Hello World</inputString>
      </echoString>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoStringResponse xmlns="http://soapinterop.org/">
      <return>Hello World</return>
    </echoStringResponse>
  </soap:Body>
</soap:Envelope>


method:echoStringMultiOccurs

Input parameter name: inputStringMultiOccurs
Input parameter type: multiple occurance of xsd:string
Output parameter name: return
Output parameter type: multiple occurance of xsd:string

Request from client <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoStringMultiOccurs xmlns="http://soapinterop.org/">
      <inputStringMultiOccurs>
        <string>Hello</string>
        <string>World</string>
      </inputStringMultiOccurs>
    </echoStringMultiOccurs>
  </soap:Body>
</soap:Envelope>

Response from server <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoStringMultiOccursResponse xmlns="http://soapinterop.org/">
      <echoStringMultiOccursResult>
        <return>Hello</return>
        <return>World</return>
      </echoStringMultiOccursResult>
    </echoStringMultiOccursResponse>
  </soap:Body>
</soap:Envelope>


method:echoInteger

Input parameter name: inputInteger
Input parameter type: xsd:int
Output parameter name: return
Output parameter type: xsd:int

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoInteger xmlns="http://soapinterop.org/">
      <inputInteger>5</inputInteger>
    </echoInteger>
  </soap:Body>
</soap:Envelope>

Response from server <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoIntegerResponse xmlns="http://soapinterop.org/">
      <return>5</return>
    </echoIntegerResponse>
  </soap:Body>
</soap:Envelope>


method:echoIntegerMultiOccurs

Input parameter name: inputIntegerMultiOccurs
Input parameter type: multiple occurance of xsd:int
Output parameter name: return
Output parameter type: multiple occurance of xsd:int

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoIntegerMultiOccurs xmlns="http://soapinterop.org/">
      <inputIntegerMultiOccurs>
        <int>5</int>
        <int>7</int>
      </inputIntegerMultiOccurs>
    </echoIntegerMultiOccurs>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoIntegerMultiOccursResponse xmlns="http://soapinterop.org/">
      <echoIntegerMultiOccursResult>
        <return>5</return>
        <return>7</return>
      </echoIntegerMultiOccursResult>
    </echoIntegerMultiOccursResponse>
  </soap:Body>
</soap:Envelope>


method:echoFloat

Input parameter name: inputFloat
Input parameter type: xsd:float
Output parameter name: return
Output parameter type: xsd:float

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoFloat xmlns="http://soapinterop.org/">
      <inputFloat>3.33</inputFloat>
    </echoFloat>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoFloatResponse xmlns="http://soapinterop.org/">
      <return3.33</return>
    </echoFloatResponse>
  </soap:Body>
</soap:Envelope>


method:echoFloatMultiOccurs

Input parameter name: inputFloatMultiOccurs
Input parameter type: array of xsd:float
Output parameter name: return
Output parameter type: array of xsd:float

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoFloatMultiOccurs xmlns="http://soapinterop.org/">
      <inputFloatMultiOccurs>
        <float>3.33</float>
        <float>0.03</float>
      </inputFloatMultiOccurs>
    </echoFloatMultiOccurs>
  </soap:Body>
</soap:Envelope>

Response from server

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoFloatMultiOccursResponse xmlns="http://soapinterop.org/">
      <echoFloatMultiOccursResult>
        <return>3.33</return>
        <return>0.03</return>
      </echoFloatMultiOccursResult>
    </echoFloatMultiOccursResponse>
  </soap:Body>
</soap:Envelope>


method:echoComplexType

The complex type is defined with the following schema:

<s:complexType name="SOAPComplexType">
  <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
    <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
    <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
  </s:sequence>
</s:complexType>

This type is defined within the namespace http://soapinterop.org/xsd

Input parameter name: inputComplexType
Input parameter type: s0:SOAPComplexType where xmlns:s0=http://soapinterop.org/xsd
Output parameter name: return
Output parameter type: s0:SOAPComplexType where xmlns:s0=http://soapinterop.org/xsd

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoComplexType xmlns="http://soapinterop.org/">
      <inputComplexType>
        <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
        <varString xmlns="http://soapinterop.org/xsd">Hello World</varString>
        <varFloat xmlns="http://soapinterop.org/xsd">3.333</varFloat>
      </inputComplexType>
    </echoComplexType>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoComplexTypeResponse xmlns="http://soapinterop.org/">
      <return>
        <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
        <varString xmlns="http://soapinterop.org/xsd">Hello World</varString>
        <varFloat xmlns="http://soapinterop.org/xsd">3.33</varFloat>
      </return>
    </return>
  </soap:Body>
</soap:Envelope>


method:echoComplexTypeMultiOccurs

The complex type is defined with the following schema:

<s:complexType name="SOAPComplexType">
  <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
    <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
    <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
  </s:sequence>
</s:complexType>

This type is defined within the namespace http://soapinterop.org//xsd

Input parameter name: inputSructMultiOccurs
Input parameter type: multiple occurance of s0:SOAPComplexType where xmlns:s0=http://soapinterop.org/xsd
Output parameter name: return
Output parameter type: multiple occurance of s0:SOAPComplexType where xmlns:s0=http://soapinterop.org/xsd

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoComplexTypeMultiOccurs xmlns="http://soapinterop.org/">
      <inputComplexTypeMultiOccurs>
        <SOAPComplexType>
          <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
          <varString xmlns="http://soapinterop.org/xsd">Hello</varString>
          <varFloat xmlns="http://soapinterop.org/xsd">3.33</varFloat>
        </SOAPComplexType>
        <SOAPComplexType>
          <varInt xmlns="http://soapinterop.org/xsd">7</varInt>
          <varString xmlns="http://soapinterop.org/xsd">World</varString>
          <varFloat xmlns="http://soapinterop.org/xsd">0.303</varFloat>
        </SOAPComplexType>
      </inputComplexTypeMultiOccurs>
    </echoComplexTypeMultiOccurs>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoComplexTypeMultiOccursResponse xmlns="http://soapinterop.org/">
      <echoComplexTypeMultiOccursResult>
        <return>
          <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
          <varString xmlns="http://soapinterop.org/xsd">Hello</varString>
          <varFloat xmlns="http://soapinterop.org/xsd">3.33</varFloat>
        </return>
        <return>
          <varInt xmlns="http://soapinterop.org/xsd">7</varInt>
          <varString xmlns="http://soapinterop.org/xsd">World</varString>
          <varFloat xmlns="http://soapinterop.org/xsd">0.303</varFloat>
        </return>
      </echoComplexTypeMultiOccursResult>
    </echoComplexTypeMultiOccursResponse>
  </soap:Body>
</soap:Envelope>


method:echoVoid

Input parameter name:
Input parameter type:
Output parameter name:
Output parameter type:

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoVoid xmlns="http://soapinterop.org/" />
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoVoidResponse xmlns="http://soapinterop.org/" />
  </soap:Body>
</soap:Envelope>


method:echoBase64

Input parameter name: inputBase64
Input parameter type: Binary type, e.g. xsd:base64Binary
Output parameter name: return
Output parameter type: Binary type, e.g. xsd:base64Binary

Request from client

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoBase64 xmlns="http://soapinterop.org/">
      <inputBase64>ZQ==</inputBase64>
    </echoBase64>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoBase64Response xmlns="http://soapinterop.org/">
      <return>ZQ==</return>
    </echoBase64Response>
  </soap:Body>
</soap:Envelope>


method:echoHexBinary

Input parameter name: inputHexBinary
Input parameter type: xsd:hexBinary
Output parameter name: return
Output parameter type: xsd:hexBinary

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoHexBinary xmlns="http://soapinterop.org/">
      <inputHexBinary>AAABAAE=</inputHexBinary>
    </echoHexBinary>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoHexBinaryResponse xmlns="http://soapinterop.org/">
      <return>AAABAAE=</return>
    </echoHexBinaryResponse>
  </soap:Body>
</soap:Envelope>


method:echoDate

Input parameter name: inputDate
Input parameter type: xsd:dateTime
Output parameter name: return
Output parameter type: xsd:dateTime

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoDate xmlns="http://soapinterop.org/">
      <inputDate>0001-01-01T00:00:00.0000000-08:00</inputDate>
    </echoDate>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoDateResponse xmlns="http://soapinterop.org/">
      <return>0001-01-01T00:00:00.0000000-08:00</return>
    </echoDateResponse>
  </soap:Body>
</soap:Envelope>


method:echoDecimal

Input parameter name: inputDecimal
Input parameter type: xsd:decimal
Output parameter name: return
Output parameter type: xsd:decimal

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoDecimal xmlns="http://soapinterop.org/">
      <inputDecimal>3.33</inputDecimal>
    </echoDecimal>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoDecimalResponse xmlns="http://soapinterop.org/">
      <return>3.33</return>
    </echoDecimalResponse>
  </soap:Body>
</soap:Envelope>


method:echoBoolean

Input parameter name: inputBoolean
Input parameter type: xsd:boolean
Output parameter name: return
Output parameter type: xsd:boolean

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoBoolean xmlns="http://soapinterop.org/">
      <inputBoolean>true</inputBoolean>
    </echoBoolean>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoBooleanResponse xmlns="http://soapinterop.org/">
      <return>true</return>
    </echoBooleanResponse>
  </soap:Body>
</soap:Envelope>


method:echoComplexTypeAsSimpleTypes

The structure is defined with the following schema:

<s:complexType name="SOAPComplexType">
  <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
    <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
    <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
  </s:sequence>
</s:complexType>

This type is defined within the namespace http://soapinterop.org//xsd

Input parameter name: inputComplexType
Input parameter type: multiple occurance of s0:SOAPComplexType where xmlns:s0=http://soapinterop.org/xsd
Output parameter name: outputString
Output parameter type: xsd:string
Output parameter name: outputInteger
Output parameter type: xsd:int
Output parameter name: outputFloat
Output parameter type: xsd:float

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoComplexTypeAsSimpleTypes xmlns="http://soapinterop.org/">
      <inputComplexType>
        <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
        <varString xmlns="http://soapinterop.org/xsd">Hello World</varString>
        <varFloat xmlns="http://soapinterop.org/xsd">3.33</varFloat>
      </inputComplexType>
    </echoComplexTypeAsSimpleTypes >
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoComplexTypeAsSimpleTypesResponse xmlns="http://soapinterop.org/">
      <outputString>Hello World</outputString>
      <outputInteger>5</outputInteger>
      <outputFloat>3.33</outputFloat>
    </echoComplexTypeAsSimpleTypesResponse >
  </soap:Body>
</soap:Envelope>


method:echoSimpleTypesAsComplexType

The complex type is defined with the following schema:

<s:complexType name="SOAPComplexType">
  <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
    <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
    <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
  </s:sequence>
</s:complexType>

This type is defined within the namespace http://soapinterop.org//xsd

Input parameter name: inputString
Input parameter type: xsd:string
Input parameter name: inputInteger
Input parameter type: xsd:int
Input parameter name: inputFloat
Input parameter type: xsd:float
Output parameter name : return
Output parameter type: sb:SOAPComplexType where xmlns:sb=http://soapinterop.org/xsd

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoSimpleTypesAsComplexType xmlns="http://soapinterop.org/">
      <inputString>Hello World</inputString>
      <inputInteger>5</inputInteger>
      <inputFloat>3.33</inputFloat>
    </echoSimpleTypesAsComplexType >
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoSimpleTypesAsComplexTypeResponse xmlns="http://soapinterop.org/">
      <return>
        <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
        <varString xmlns="http://soapinterop.org/xsd">Hello World</varString>
        <varFloat xmlns="http://soapinterop.org/xsd">3.33</varFloat>
      </return>
    </echoSimpleTypesAsComplexTypeResponse >
  </soap:Body>
</soap:Envelope>


method:echo2DStringMultiOccurs

The multiple occurance is defined with the following schema:

The schema for this multiple occurance is the same as for a multiple occurance of a single dimential array. The values are sent in order e.g. for a 3 x 2 array

row 1 - column 1
row 1 - column 2
row 2 - column 1
row 2 - column 2
row 3 - column 1
row 3 - column 2

Input parameter name: input2DStringMultiOccurs
Input parameter type: multiple occurance of xsd:string
Output parameter name: return
Output parameter type: multiple occurance of xsd:string

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoStringMultiOccurs xmlns="http://soapinterop.org/">
      <inputStringMultiOccurs>
        <string>Hello row 1</string>
        <string>World row 1</string>
        <string>Hello row 2</string>
        <string>World row 2</string>
        <string>Hello row 3</string>
        <string>World row 3</string>
      </inputStringMultiOccurs>
    </echoStringMultiOccurs >
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoStringMultiOccursResponse xmlns="http://soapinterop.org/">
      <echoStringMultiOccursResult>
        <return>Hello row 1</return>
        <return>World row 1</return>
        <return>Hello row 2</return>
        <return>World row 2</return>
        <return>Hello row 3</return>
        <return>World row 3</return>
      </echoStringMultiOccursResult>
    </echoStringMultiOccursResponse >
  </soap:Body>
</soap:Envelope>


method:echoNestedComplexType

The complex type is defined with the following schema:

<s:complexType name="SOAPComplexTypeComplexType">
  <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
    <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
    <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
    <s:element minOccurs="0" maxOccurs="1" name="varStruct" type="s0:SOAPComplexType" />
  </s:sequence>
</s:complexType>

and

<s:complexType name="SOAPComplexType">
  <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
    <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
    <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
  </s:sequence>
</s:complexType>

This type is defined within the namespace http://soapinterop.org/xsd

Input parameter name: inputComplexType
Input parameter type: s0:SOAPComplexTypeComplexType where xmlns:s0=http://soapinterop.org/xsd
Output parameter name: return
Output parameter type: s0:SOAPComplexTypeComplexType where xmlns:s0=http://soapinterop.org/xsd

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoNestedComplexType xmlns="http://soapinterop.org/">
      <inputComplexType>
        <varString xmlns="http://soapinterop.org/xsd">Hello</varString>
        <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
        <varFloat xmlns="http://soapinterop.org/xsd">3.33</varFloat>
        <varComplexTypexmlns="http://soapinterop.org/xsd">
          <varInt>7</varInt>
          <varString>World</varString>
          <varFloat>0.0303</varFloat>
        </varComplexType>
      </inputComplexType>
    </echoNestedComplexType >
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoNestedComplexTypeResponse xmlns="http://soapinterop.org/">
      <return>
        <varString xmlns="http://soapinterop.org/xsd">Hello</varString>
        <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
        <varFloat xmlns="http://soapinterop.org/xsd">3.33</varFloat>
        <varComplexTypexmlns="http://soapinterop.org/xsd">
          <varInt>7</varInt>
          <varString>World</varString>
          <varFloat>0.0303</varFloat>
        </varComplexType>
      </return>
    </echoNestedComplexTypeResponse >
  </soap:Body>
</soap:Envelope>


method:echoNestedMultiOccurs

The complex type is defined with the following schema:

<s:complexType name="SOAPMultiOccursComplexType">
  <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
    <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
    <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
    <s:element minOccurs="0" maxOccurs="1" name="varArray" type="s1:ArrayOfString" />
  </s:sequence>
</s:complexType>

This type is defined within the namespace http://soapinterop.org/xsd

Input parameter name: inputComplexType
Input parameter type: s0:SOAPMultiOccursComplexType where xmlns:s0=http://soapinterop.org/xsd
Output parameter name: return
Output parameter type: s0:SOAPMultiOccursComplexType where xmlns:s0=http://soapinterop.org/xsd

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoNestedMultiOccurs xmlns="http://soapinterop.org/">
      <inputComplexType>
        <varString xmlns="http://soapinterop.org/xsd">Hello</varString>
        <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
        <varFloat xmlns="http://soapinterop.org/xsd">3.33</varFloat>
        <varMultiOccursxmlns="http://soapinterop.org/xsd">
          <string>World</string>
          <string>!</string>
        </varMultiOccurs>
      </inputComplexType>
    </echoNestedMultiOccurs>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoNestedMultiOccursResponse xmlns="http://soapinterop.org/">
      <return>
        <varString xmlns="http://soapinterop.org/xsd">Hello</varString>
        <varInt xmlns="http://soapinterop.org/xsd">5</varInt>
        <varFloat xmlns="http://soapinterop.org/xsd">3.33</varFloat>
        <varMultiOccurs xmlns="http://soapinterop.org/xsd">
          <string>World</string>
          <string>!</string>
        </varMultiOccurs>
      </return>
    </echoNestedMultiOccursResponse>
  </soap:Body>
</soap:Envelope>


method:echoMeStringRequest - header entry

The structure is defined with the following schema:

<s:complexType name="echoMeStringRequest">
  <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
  </s:sequence>
</s:complexType>

This type is defined within the namespace http://soapinterop.org/echoheader

Request msg header entry name: echoMeStringRequest
Request msg header entry type: s0:echoMeStringRequest xmlns:s0=http://soapinterop.org/echoheader
Response msg header entry name : echoMeStringResponse
Response msg header entry type: s0:echoMeStringRequest xmlns:s0=http://soapinterop.org/echoheader

Request from client
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <echoMeStringRequest soap:actor="http://schemas.xmlsoap.org/soap/actor/next" xmlns="http://soapinterop.org/">
      <varString xmlns="http://soapinterop.org/echoheader/">Hello Header World</varString>
    </echoMeStringRequest>
  </soap:Header>
  <soap:Body>
    <echoVoidSoapHeader xmlns="http://soapinterop.org" />
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <echoMeStringResponse xmlns="http://soapinterop.org/">
      <varString xmlns="http://soapinterop.org/echoheader/">Hello Header World</varString>
    </echoMeStringResponse>
  </soap:Header>
  <soap:Body>
    <echoVoidSoapHeaderResponse xmlns="http://soapinterop.org/" />
  </soap:Body>
</soap:Envelope>


method:echoMeStructRequest - header entry

The structure is defined with the following schema:

<s:complexType name="echoMeStructRequest">
  <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
    <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
    <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
  </s:sequence>
</s:complexType>

This type is defined within the namespace http://soapinterop.org/echoheader

Request msg header entry name: echoMeStructRequest
Request msg header entry type: s0:echoMeStructRequestxmlns:s0=http://soapinterop.org/echoheader
Response msg header entry name : echoMeStructRequest
Response msg header entry type: s0:echoMeStructRequestxmlns:s0=http://soapinterop.org/echoheader

Request from client
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <echoMeStructRequest soap:actor="http://schemas.xmlsoap.org/soap/actor/next" xmlns="http://soapinterop.org/">
      <varString xmlns="http://soapinterop.org/echoheader/">Hello Header World</varString>
      <varInt xmlns="http://soapinterop.org/echoheader/">7</varInt>
      <varFloat xmlns="http://soapinterop.org/echoheader/">3.33</varFloat>
    </echoMeStructRequest>
  </soap:Header>
  <soap:Body>
    <echoVoidSoapHeader xmlns="http://soapinterop.org" />
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <echoMeStruct<u>Response xmlns="http://soapinterop.org/">
      <varString xmlns="http://soapinterop.org/echoheader/">Hello Header World</varString>
      <varInt xmlns="http://soapinterop.org/echoheader/">7</varInt>
      <varFloat xmlns="http://soapinterop.org/echoheader/">3.33</varFloat>
    </echoMeStructResponse>
  </soap:Header>
  <soap:Body>
    <echoVoidSoapHeaderResponse xmlns="http://soapinterop.org/" />
  </soap:Body>
</soap:Envelope>


method:Unknown - header entry

Example message:

Request from client
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <StringInUnknowHeader soap:mustUnderstand="1" soap:actor="http://schemas.xmlsoap.org/soap/actor/next" xmlns="http://soapinterop.org/echoheader/" />
  </soap:Header>
  <soap:Body>
    <echoVoidSoapHeader xmlns="http://soapinterop.org" />
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <StringInUnknowHeader soap:mustUnderstand="1" soap:actor="http://schemas.xmlsoap.org/soap/actor/next" xmlns="http://soapinterop.org/echoheader/" />
  </soap:Header>
  <soap:Body>
    <echoVoidSoapHeaderResponse xmlns="http://soapinterop.org/" />
  </soap:Body>
</soap:Envelope>


method:echoEnum

The enumeration is defined with the following schema:

<s:simpleType name="Enum">
  <s:restriction base="s:string">
    <s:enumeration value="BitOne" />
    <s:enumeration value="BitTwo" />
    <s:enumeration value="BitThree" />
    <s:enumeration value="BitFour" />
    <s:enumeration value="BitFive" />
  </s:restriction>
</s:simpleType>

This type is defined within the namespace http://soapinterop.org/xsd

Input parameter name: inputEnum
Input parameter type: s0:Enum
Output parameter name: return
Output parameter type: s0:Enum

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoEnum xmlns="http://soapinterop.org/">
      <inputEnum>BitTwo</inputEnum>
    </echoEnum>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoEnumResponse xmlns="http://soapinterop.org/">
      <return>BitTwo</return>
    </echoEnumResponse>
  </soap:Body>
</soap:Envelope>


method:echoAnyType

Input parameter name: inputAnyType
Input parameter type: xsd:anyType
Output parameter name: return
Output parameter type: xsd:anyType

The following is a sample request and Response using a passing a string with echoAnyType.

Request from client <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoAnyType xmlns="http://soapinterop.org/">
      <inputAnyType xsi:type="xsd:string">Hello World</inputAnyType>
    </echoAnyType>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoAnyTypeResponse xmlns="http://soapinterop.org/">
      <return xsi:type="xsd:string">Hello World</return>
    </echoAnyTypeResponse>
  </soap:Body>
</soap:Envelope>


method:echoAnyElement

Input parameter name: inputAny
Input parameter type: any arbitary Xml
Output parameter name: return
Output parameter type: any arbitary Xml

The following schema is an example of the element:

<s:element name="echoAny">
  <s:complexType>
    <s:sequence>
      <s:element minOccurs="0" maxOccurs="1" name="inputAny">
        <s:complexType>
          <s:sequence>
            <s:any />
          </s:sequence>
        </s:complexType>
      </s:element>
    </s:sequence>
  </s:complexType>
</s:element>

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoAnyElement xmlns="http://soapinterop.org/">
      <inputAny>
        <MyElement xmlns="">&lt;anyType&gt;&lt;Name&gt;Bug&lt;/Name&gt;&lt;Data&gt;Dog&lt;/Data&gt;&lt;/anyType&gt;</MyElement>
      </inputAny>
    </echoAnyElement>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoAnyElementResponse xmlns="http://soapinterop.org/">
      <return>
        <MyElement xmlns="">&lt;anyType&gt;&lt;Name&gt;Bug&lt;/Name&gt;&lt;Data&gt;Dog&lt;/Data&gt;&lt;/anyType&gt;</MyElement>
      </return>
    </echoAnyElementResponse>
  </soap:Body>
</soap:Envelope>


method:echoChoice

The struct is defined as

<s:complexType name="ChoiceStruct">
  <s:sequence>
    <s:choice minOccurs="1" maxOccurs="1">
      <s:element minOccurs="0" maxOccurs="1" name="name0" type="s:string" />
      <s:element minOccurs="0" maxOccurs="1" name="name1" type="s:string" />
    </s:choice>
  </s:sequence>
</s:complexType>

This type is defined within the namespace http://soapinterop.org/xsd

Input parameter name: inputChoice
Input parameter type: s0:ChoiceStruct where xmlns:s0=http://soapinterop.org/xsd
Output parameter name: return
Output parameter type: s0:ChoiceStruct where xmlns:s0=http://soapinterop.org/xsd

Request from client
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoChoice xmlns="http://soapinterop.org/">
      <inputChoice>
        <name1 xmlns="http://soapinterop.org/xsd">Hello World</name1>
      </inputChoice>
    </echoChoice>
  </soap:Body>
</soap:Envelope>

Response from server
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <echoChoiceResponse xmlns="http://soapinterop.org/">
      <return>
        <name1 xmlns="http://soapinterop.org/xsd">Hello World</name1>
      </return>
    </echoChoiceResponse>
  </soap:Body>
</soap:Envelope>