You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2004/06/08 11:57:19 UTC

cvs commit: ws-axis/c/tests/client/interop/round1 Client.cpp Makefile.am readme.txt simple.asmx.wsdl

samisa      2004/06/08 02:57:18

  Added:       c/tests/client/interop/round1 Client.cpp Makefile.am
                        readme.txt simple.asmx.wsdl
  Log:
  
  
  Revision  Changes    Path
  1.1                  ws-axis/c/tests/client/interop/round1/Client.cpp
  
  Index: Client.cpp
  ===================================================================
  // InteropBaseClient.cpp : Defines the entry point for the console application.
  //
  #include <string>
  using namespace std;
  
  #include "gen_src/SimpleTestSoap.h" 
  
  #define ARRAYSIZE 2
  
  int main(int argc, char* argv[])
  {
  	int x;
  	char buffer1[100];
  	char endpoint[256];
  	const char* server="localhost";
  	const char* port="80";
  	if (argc == 3)
  	{
  		server = argv[1];
  		port = argv[2];
  	}
  	printf("Usage :\n %s <server> <port>\n\n", argv[0]);
  	printf("Sending Requests to Server http://%s:%s ........\n\n", server, port);
  	sprintf(endpoint, "http://%s:%s/axis/base", server, port);
  	//endpoint for Axis Java sample
  	//sprintf(endpoint, "http://%s:%s/axis/services/echo", server, port);
  
  	SimpleTestSoap ws(endpoint);
  
  	//set end point (optional)
          //ws.setEndPoint( "http://localhost:8080/axis/services/echo" );
          //ws.setEndPoint( "http://www.mssoapinterop.org/asmx/simple.asmx" );
          ws.setEndPoint( "http://4.34.185.52/ilab/ilab.dll?Handler=Default" );
          //set proxy (optional)
          ws.setProxy( "proxy.my.ibm.com", 80 );
  //getchar();
          //set HTTP headers
          //ws.setTransportProperty( "Accept-Language", " da, en-gb;q=0.8, en;q=0.7" );
          //ws.setTransportProperty( "Accept-Language2", " my da, en-gb;q=0.8, en;q=0.7" );
  //      ws.setTransportProperty( "SOAPAction", "http://soapinterop.org/");
          //set SOAP headers
  //      IHeaderBlock* phb = ws.createHeaderBlock( "Trans", "m", "http://ws.apache.org/axisCppTest/" );
  //      phb = ws.createHeaderBlock( "Trans2", "m2", "http://ws.apache.org/axisCppTest2/" );
  
          //BasicNode* bn = phb->createChild(CHARACTER_NODE);//, NULL, NULL, NULL, "test" );
          //bn->setValue( "1010" );
          //phb->addChild( bn );
          //phb->setLocalName( "newName" );
  	
  	printf("invoking echoString...\n");
  	//testing echoString 
  	string bigstring;
  	for (int ii=0;ii<2;ii++)
  	{
  		bigstring += "hello world ";
  	}
  	strcpy(buffer1, bigstring.c_str());
  	printf(ws.echoString(buffer1));
  	if (0 == strcmp(ws.echoString("hello world"), "hello world"))
  		printf("successful\n");
  	else
  		printf("failed\n");
  	// testing echoStringArray 
  	xsd__string_Array arrstr;
  	arrstr.m_Array = new char*[ARRAYSIZE];
  	arrstr.m_Size = ARRAYSIZE;
  	sprintf(buffer1, "%dth element of string array", 0);
  	//sprintf(buffer2, "%dth element of string array", 1);
  	for(int i=0; i< ARRAYSIZE; i++)
  	{
  		arrstr.m_Array[i] = buffer1;
  	}
  	//arrstr.m_Array[1] = buffer2;
  	printf("invoking echoStringArray...\n");
  	if (ws.echoStringArray(arrstr).m_Array != NULL)
  		printf("successful\n");
  	else
  		printf("failed\n");
  	// testing echoInteger 
  	printf("invoking echoInteger...\n");
  	if (ws.echoInteger(56) == 56)
  		printf("successful\n");
  	else
  		printf("failed\n");
  	// testing echoIntegerArray 
  	xsd__int_Array arrint;
  	arrint.m_Array = new int[ARRAYSIZE];
  	arrint.m_Size = ARRAYSIZE;
  	for (x=0;x<ARRAYSIZE;x++)
  	{
  		arrint.m_Array[x] = x;
  	}
  	printf("invoking echoIntegerArray...\n");
  	if (ws.echoIntegerArray(arrint).m_Array != NULL)
  		printf("successful\n");
  	else
  		printf("failed\n");
  	// testing echoFloat 
  	printf("invoking echoFloat...\n");
  	float fvalue = 1.4214;
  	if (ws.echoFloat(fvalue) > 1.42)
  		printf("successful\n");
  	else
  		printf("failed\n");
  	// testing echoFloat 
  	xsd__float_Array arrfloat;
  	arrfloat.m_Array = new float[ARRAYSIZE];
  	arrfloat.m_Size = ARRAYSIZE;
  	for (x=0;x<ARRAYSIZE;x++)
  	{
  		arrfloat.m_Array[x] = 1.1111*x;
  	}
  	printf("invoking echoFloatArray...\n");
  	if (ws.echoFloatArray(arrfloat).m_Array != NULL)
  		printf("successful\n");
  	else
  		printf("failed\n");
  	// testing echo Struct
  	SOAPStruct stct;
  	stct.varFloat = 12345.7346345;
  	stct.varInt = 5000;
  	stct.varString = strdup("This is string in SOAPStruct");
  	printf("invoking echoStruct...\n");
  	if (ws.echoStruct(&stct) != NULL)
  		printf("successful\n");
  	else
  		printf("failed\n");
  	//testing echo Array of Struct
  	SOAPStruct_Array arrstct;
  	arrstct.m_Array = new SOAPStruct[ARRAYSIZE];
  	arrstct.m_Size = ARRAYSIZE;
  	for (x=0;x<ARRAYSIZE;x++)
  	{
  		arrstct.m_Array[x].varFloat = 1.1111*x;
  		arrstct.m_Array[x].varInt = x;
  		sprintf(buffer1, "varString of %dth element of SOAPStruct array", x);
  		arrstct.m_Array[x].varString = buffer1;
  	}
  	//testing echo Struct Array
  	printf("invoking echoStructArray...\n");
  	if (ws.echoStructArray(arrstct).m_Array != NULL)
  		printf("successful\n");
  	else
  		printf("failed\n");
  	//testing echo void
  	printf("invoking echoVoid...\n");
  	ws.echoVoid();
  	printf("successful\n");
  	//testing echo base 64 binary
  
  	const char* bstr = "some string that is sent encoded to either base64Binary or hexBinary";
  
  	printf("invoking echoBase64...\n");
  	xsd__base64Binary bb;
  	bb.__ptr = (unsigned char*)strdup(bstr);
  	bb.__size = strlen(bstr);
  	if (bb.__size == ws.echoBase64(bb).__size)
  	{
  		printf("successful\n");
  		printf("Returned String :\n%s\n", bb.__ptr);
  	}
  	else
  		printf("failed\n");
  
  	time_t tim;
  	time(&tim);
  	tm* lt = gmtime(&tim);
  	printf("invoking echoDate...\n");
  	if (memcmp(&ws.echoDate(*lt), lt, sizeof(tm)) == 0)
  		printf("successful\n");
  	else
  		printf("failed\n");
  	//testing echo hex binary
  
  	printf("invoking echoHexBinary...\n");
  	xsd__hexBinary hb;
  	hb.__ptr = (unsigned char*)strdup(bstr);
  	hb.__size = strlen(bstr);
  	if (hb.__size == ws.echoHexBinary(hb).__size)
  	{
  		printf("successful\n");
  		printf("Returned String :\n%s\n", hb.__ptr);
  	}
  	else
  		printf("failed\n");
  	//testing echo decimal
  	printf("invoking echoDecimal...\n");
  	if (ws.echoDecimal(1234.567890) > 1234.56)
  		printf("successful\n");
  	else
  		printf("failed\n");
  	//testing echo boolean
  	printf("invoking echoBoolean...\n");
  	if (ws.echoBoolean(true_) == true_)
  		printf("successful\n");
  	else
  		printf("failed\n");
  		
  	getchar();
  	return 0;
  }
  
  
  
  1.1                  ws-axis/c/tests/client/interop/round1/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  bin_PROGRAMS = r1InteropTest
  SUBDIRS =
  AM_CPPFLAGS = $(CPPFLAGS)
  r1InteropTest_SOURCES = Client.cpp gen_src/SimpleTestSoap.cpp gen_src/SOAPStruct.cpp 
  
  r1InteropTest_LDADD   =  $(LDFLAGS) -laxiscpp_client
  INCLUDES = -I$(AXISCPP_HOME)/include
  
  
  
  1.1                  ws-axis/c/tests/client/interop/round1/readme.txt
  
  Index: readme.txt
  ===================================================================
  1. Generate stub.
  java -classpath $AXISCPP_HOME/build/lib/wsdl2ws.jar:$CLASSPATH org.apache.axis.wsdl.wsdl2ws.WSDL2Ws -o./gen_src -lc++ -sclient wsdlFile
  
  
  1.1                  ws-axis/c/tests/client/interop/round1/simple.asmx.wsdl
  
  Index: simple.asmx.wsdl
  ===================================================================
  <?xml version="1.0" encoding="utf-8"?>
  <wsdl:definitions xmlns:s0="http://soapinterop.org/xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://soapinterop.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">These operations implement some simple Section 5, rpc-style SOAP operations, for interop testing. Please email keithba@microsoft.com with any  questions.</wsdl:documentation>
    <wsdl:types>
      <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
        <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
        <s:import namespace="http://schemas.xmlsoap.org/wsdl/" />
        <s:complexType name="SOAPStruct">
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" form="unqualified" name="varInt" type="s:int" />
            <s:element minOccurs="1" maxOccurs="1" form="unqualified" name="varString" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" form="unqualified" name="varFloat" type="s:float" />
          </s:sequence>
        </s:complexType>
        <s:complexType name="ArrayOfSOAPStruct">
          <s:complexContent mixed="false">
            <s:restriction base="soapenc:Array">
              <s:attribute wsdl:arrayType="s0:SOAPStruct[]" ref="soapenc:arrayType" />
            </s:restriction>
          </s:complexContent>
        </s:complexType>
      </s:schema>
      <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
        <s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
        <s:import namespace="http://schemas.xmlsoap.org/wsdl/" />
        <s:complexType name="ArrayOfInt">
          <s:complexContent mixed="false">
            <s:restriction base="soapenc:Array">
              <s:attribute wsdl:arrayType="s:int[]" ref="soapenc:arrayType" />
            </s:restriction>
          </s:complexContent>
        </s:complexType>
        <s:complexType name="ArrayOfFloat">
          <s:complexContent mixed="false">
            <s:restriction base="soapenc:Array">
              <s:attribute wsdl:arrayType="s:float[]" ref="soapenc:arrayType" />
            </s:restriction>
          </s:complexContent>
        </s:complexType>
        <s:complexType name="ArrayOfString">
          <s:complexContent mixed="false">
            <s:restriction base="soapenc:Array">
              <s:attribute wsdl:arrayType="s:string[]" ref="soapenc:arrayType" />
            </s:restriction>
          </s:complexContent>
        </s:complexType>
      </s:schema>
    </wsdl:types>
    <wsdl:message name="echoVoidSoapIn" />
    <wsdl:message name="echoVoidSoapOut" />
    <wsdl:message name="echoIntegerSoapIn">
      <wsdl:part name="inputInteger" type="s:int" />
    </wsdl:message>
    <wsdl:message name="echoIntegerSoapOut">
      <wsdl:part name="return" type="s:int" />
    </wsdl:message>
    <wsdl:message name="echoFloatSoapIn">
      <wsdl:part name="inputFloat" type="s:float" />
    </wsdl:message>
    <wsdl:message name="echoFloatSoapOut">
      <wsdl:part name="return" type="s:float" />
    </wsdl:message>
    <wsdl:message name="echoStringSoapIn">
      <wsdl:part name="inputString" type="s:string" />
    </wsdl:message>
    <wsdl:message name="echoStringSoapOut">
      <wsdl:part name="return" type="s:string" />
    </wsdl:message>
    <wsdl:message name="echoBase64SoapIn">
      <wsdl:part name="inputBase64" type="s:base64Binary" />
    </wsdl:message>
    <wsdl:message name="echoBase64SoapOut">
      <wsdl:part name="return" type="s:base64Binary" />
    </wsdl:message>
    <wsdl:message name="echoDateSoapIn">
      <wsdl:part name="inputDate" type="s:dateTime" />
    </wsdl:message>
    <wsdl:message name="echoDateSoapOut">
      <wsdl:part name="return" type="s:dateTime" />
    </wsdl:message>
    <wsdl:message name="echoStructSoapIn">
      <wsdl:part name="inputStruct" type="s0:SOAPStruct" />
    </wsdl:message>
    <wsdl:message name="echoStructSoapOut">
      <wsdl:part name="return" type="s0:SOAPStruct" />
    </wsdl:message>
    <wsdl:message name="echoIntegerArraySoapIn">
      <wsdl:part name="inputIntegerArray" type="tns:ArrayOfInt" />
    </wsdl:message>
    <wsdl:message name="echoIntegerArraySoapOut">
      <wsdl:part name="return" type="tns:ArrayOfInt" />
    </wsdl:message>
    <wsdl:message name="echoFloatArraySoapIn">
      <wsdl:part name="inputFloatArray" type="tns:ArrayOfFloat" />
    </wsdl:message>
    <wsdl:message name="echoFloatArraySoapOut">
      <wsdl:part name="return" type="tns:ArrayOfFloat" />
    </wsdl:message>
    <wsdl:message name="echoStringArraySoapIn">
      <wsdl:part name="inputStringArray" type="tns:ArrayOfString" />
    </wsdl:message>
    <wsdl:message name="echoStringArraySoapOut">
      <wsdl:part name="return" type="tns:ArrayOfString" />
    </wsdl:message>
    <wsdl:message name="echoStructArraySoapIn">
      <wsdl:part name="inputStructArray" type="s0:ArrayOfSOAPStruct" />
    </wsdl:message>
    <wsdl:message name="echoStructArraySoapOut">
      <wsdl:part name="return" type="s0:ArrayOfSOAPStruct" />
    </wsdl:message>
    <wsdl:message name="echoDecimalSoapIn">
      <wsdl:part name="inputDecimal" type="s:decimal" />
    </wsdl:message>
    <wsdl:message name="echoDecimalSoapOut">
      <wsdl:part name="return" type="s:decimal" />
    </wsdl:message>
    <wsdl:message name="echoBooleanSoapIn">
      <wsdl:part name="inputBoolean" type="s:boolean" />
    </wsdl:message>
    <wsdl:message name="echoBooleanSoapOut">
      <wsdl:part name="return" type="s:boolean" />
    </wsdl:message>
    <wsdl:message name="echoHexBinarySoapIn">
      <wsdl:part name="inputHexBinary" type="s:hexBinary" />
    </wsdl:message>
    <wsdl:message name="echoHexBinarySoapOut">
      <wsdl:part name="return" type="s:hexBinary" />
    </wsdl:message>
    <wsdl:portType name="SimpleTestSoap">
      <wsdl:operation name="echoVoid">
        <wsdl:input message="tns:echoVoidSoapIn" />
        <wsdl:output message="tns:echoVoidSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoInteger">
        <wsdl:input message="tns:echoIntegerSoapIn" />
        <wsdl:output message="tns:echoIntegerSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoFloat">
        <wsdl:input message="tns:echoFloatSoapIn" />
        <wsdl:output message="tns:echoFloatSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoString">
        <wsdl:input message="tns:echoStringSoapIn" />
        <wsdl:output message="tns:echoStringSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoBase64">
        <wsdl:input message="tns:echoBase64SoapIn" />
        <wsdl:output message="tns:echoBase64SoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoDate">
        <wsdl:input message="tns:echoDateSoapIn" />
        <wsdl:output message="tns:echoDateSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoStruct">
        <wsdl:input message="tns:echoStructSoapIn" />
        <wsdl:output message="tns:echoStructSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoIntegerArray">
        <wsdl:input message="tns:echoIntegerArraySoapIn" />
        <wsdl:output message="tns:echoIntegerArraySoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoFloatArray">
        <wsdl:input message="tns:echoFloatArraySoapIn" />
        <wsdl:output message="tns:echoFloatArraySoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoStringArray">
        <wsdl:input message="tns:echoStringArraySoapIn" />
        <wsdl:output message="tns:echoStringArraySoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoStructArray">
        <wsdl:input message="tns:echoStructArraySoapIn" />
        <wsdl:output message="tns:echoStructArraySoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoDecimal">
        <wsdl:input message="tns:echoDecimalSoapIn" />
        <wsdl:output message="tns:echoDecimalSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoBoolean">
        <wsdl:input message="tns:echoBooleanSoapIn" />
        <wsdl:output message="tns:echoBooleanSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="echoHexBinary">
        <wsdl:input message="tns:echoHexBinarySoapIn" />
        <wsdl:output message="tns:echoHexBinarySoapOut" />
      </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="SimpleTestSoap" type="tns:SimpleTestSoap">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" />
      <wsdl:operation name="echoVoid">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoInteger">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoFloat">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoString">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoBase64">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoDate">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoStruct">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoIntegerArray">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoFloatArray">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoStringArray">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoStructArray">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoDecimal">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoBoolean">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoHexBinary">
        <soap:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:input>
        <wsdl:output>
          <soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
        </wsdl:output>
      </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="SimpleTestSoap12" type="tns:SimpleTestSoap">
      <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" />
      <wsdl:operation name="echoVoid">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoInteger">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoFloat">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoString">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoBase64">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoDate">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoStruct">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoIntegerArray">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoFloatArray">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoStringArray">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoStructArray">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoDecimal">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoBoolean">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="echoHexBinary">
        <soap12:operation soapAction="http://soapinterop.org/" style="rpc" />
        <wsdl:input>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:input>
        <wsdl:output>
          <soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
        </wsdl:output>
      </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="SimpleTest">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">These operations implement some simple Section 5, rpc-style SOAP operations, for interop testing. Please email keithba@microsoft.com with any  questions.</wsdl:documentation>
      <wsdl:port name="SimpleTestSoap" binding="tns:SimpleTestSoap">
        <soap:address location="http://www.mssoapinterop.org/asmx/simple.asmx" />
      </wsdl:port>
      <wsdl:port name="SimpleTestSoap12" binding="tns:SimpleTestSoap12">
        <soap12:address location="http://www.mssoapinterop.org/asmx/simple.asmx" />
      </wsdl:port>
    </wsdl:service>
  </wsdl:definitions>