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.
|
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 |
|
echoChoice |
This method accepts a single struct where only one of the elements will be used and echoes it back to the client |
method:echoString
Input parameter name: inputStringmethod:echoStringMultiOccurs
Input parameter name: inputStringMultiOccursmethod:echoInteger
Input parameter name: inputIntegermethod:echoIntegerMultiOccurs
Input parameter name: inputIntegerMultiOccursmethod:echoFloat
Input parameter name: inputFloatmethod:echoFloatMultiOccurs
Input parameter name: inputFloatMultiOccursmethod:echoComplexType
The complex type is defined with the following schema:method:echoComplexTypeMultiOccurs
The complex type is defined with the following schema:method:echoVoid
Input parameter name:method:echoBase64
Input parameter name: inputBase64method:echoHexBinary
Input parameter name: inputHexBinarymethod:echoDate
Input parameter name: inputDatemethod:echoDecimal
Input parameter name: inputDecimalmethod:echoBoolean
Input parameter name: inputBooleanmethod:echoComplexTypeAsSimpleTypes
The structure is defined with the following schema:method:echoSimpleTypesAsComplexType
The complex type is defined with the following schema:method:echo2DStringMultiOccurs
The multiple occurance is defined with the following schema:method:echoNestedComplexType
The complex type is defined with the following schema:method:echoNestedMultiOccurs
The complex type is defined with the following schema:method:echoMeStringRequest - header entry
The structure is defined with the following schema:method:echoMeStructRequest - header entry
The structure is defined with the following schema:method:Unknown - header entry
Example message:method:echoEnum
The enumeration is defined with the following schema:method:echoAnyType
Input parameter name: inputAnyTypemethod: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
<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