You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2002/01/16 15:07:59 UTC

cvs commit: xml-axis/java/test/wsdl/inout DetailedInoutTestCase.java InoutSOAPBindingImpl.java inout.wsdl

butek       02/01/16 06:07:59

  Modified:    java/test build_functional_tests.xml
               java/test/wsdl Wsdl2javaTestSuite.xml
  Added:       java/test/wsdl/_import Import.wsdl Import.xsd
                        ImportBinding1.wsdl ImportBinding2.wsdl
                        ImportInterface.wsdl ImportMessages.wsdl
                        NStoPkg.properties Phone.xsd
               java/test/wsdl/inout DetailedInoutTestCase.java
                        InoutSOAPBindingImpl.java inout.wsdl
  Removed:     java/test/import_ Import.wsdl Import.xsd ImportBinding1.wsdl
                        ImportBinding2.wsdl ImportInterface.wsdl
                        ImportMessages.wsdl NStoPkg.properties Phone.xsd
               java/test/inout .cvsignore DetailedInoutTestCase.java
                        InoutSOAPBindingImpl.java inout.wsdl
  Log:
  Moved test/inout and test/import_ to test/wsdl/inout and test/wsdl/_import,
  respectively.  I moved import_ to _import because the spec has changed wrt
  where to put the underscore on Java keyword mappings.
  
  Revision  Changes    Path
  1.30      +1 -1      xml-axis/java/test/build_functional_tests.xml
  
  Index: build_functional_tests.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/build_functional_tests.xml,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- build_functional_tests.xml	4 Jan 2002 19:09:41 -0000	1.29
  +++ build_functional_tests.xml	16 Jan 2002 14:07:58 -0000	1.30
  @@ -120,7 +120,7 @@
     <!-- =================================================================== -->
     <target name="wsdl-setup" if="junit.present" >
       <copy todir="${build.dir}/classes" overwrite="yes">
  -      <fileset dir="${test.dir}/import_">
  +      <fileset dir="${test.dir}/wsdl/_import">
           <include name="NStoPkg.properties"/>
         </fileset>
       </copy>
  
  
  
  1.57      +7 -7      xml-axis/java/test/wsdl/Wsdl2javaTestSuite.xml
  
  Index: Wsdl2javaTestSuite.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/wsdl/Wsdl2javaTestSuite.xml,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- Wsdl2javaTestSuite.xml	15 Jan 2002 16:00:45 -0000	1.56
  +++ Wsdl2javaTestSuite.xml	16 Jan 2002 14:07:58 -0000	1.57
  @@ -162,20 +162,20 @@
       <!-- Import Test 1:  some namespace->package mappings from the -->
       <!--                 command line, some generated, some from   -->
       <!--                 NStoPkg.properties.                       -->
  -    <wsdl2java url="test/import_/Import.wsdl"
  +    <wsdl2java url="test/wsdl/_import/Import.wsdl"
                  output="build/work"
                  deployscope="none"
                  skeleton="yes"
                  noimports="no"
                  verbose="no"
                  testcase="yes">
  -        <mapping namespace="urn:import" package="test.import"/>
  -        <mapping namespace="urn:importBinding1" package="test.import.binding1"/>
  -        <mapping namespace="urn:importBinding2" package="test.import.binding2"/>
  +        <mapping namespace="urn:import" package="test.wsdl.import"/>
  +        <mapping namespace="urn:importBinding1" package="test.wsdl.import.binding1"/>
  +        <mapping namespace="urn:importBinding2" package="test.wsdl.import.binding2"/>
       </wsdl2java>
       <!-- Import Test 2:  all namespace->package mappings from the -->
       <!--                 command line.                            -->
  -    <wsdl2java url="test/import_/Import.wsdl"
  +    <wsdl2java url="test/wsdl/_import/Import.wsdl"
                  output="build/work"
                  deployscope="none"
                  skeleton="yes"
  @@ -191,14 +191,14 @@
       </wsdl2java>
   
       <!-- InOut Sample -->
  -    <wsdl2java url="test/inout/inout.wsdl"
  +    <wsdl2java url="test/wsdl/inout/inout.wsdl"
                  output="build/work"
                  deployscope="none"
                  skeleton="yes"
                  noimports="no"
                  verbose="no"
                  testcase="no">
  -        <mapping namespace="http://www.apache.org/inout" package="test.inout"/>
  +        <mapping namespace="http://www.apache.org/inout" package="test.wsdl.inout"/>
       </wsdl2java>
   
       <!-- SOAPBuilders Interoperability Lab "Round 1" -->
  
  
  
  1.1                  xml-axis/java/test/wsdl/_import/Import.wsdl
  
  Index: Import.wsdl
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <definitions
      targetNamespace="urn:import"
      xmlns="http://schemas.xmlsoap.org/wsdl/"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:b1="urn:importBinding1"
      xmlns:b2="urn:importBinding2">
  
  <import
      location="ImportBinding1.wsdl"
      namespace="urn:importBinding1">
  </import>
  
  <import
      location="ImportBinding2.wsdl"
      namespace="urn:importBinding2">
  </import>
  
  <service name="ImportService">
    <documentation>Import test</documentation>
    <port name="ImportTest1" binding="b1:ImportBinding1">
      <soap:address location="http://localhost:8080/axis/services/ImportTest1"/>
    </port>
    <port name="ImportTest2" binding="b2:ImportBinding2">
      <soap:address location="http://localhost:8080/axis/services/ImportTest2"/>
    </port>
  </service>
  
  </definitions>
  
  
  
  1.1                  xml-axis/java/test/wsdl/_import/Import.xsd
  
  Index: Import.xsd
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
    <schema
      targetNamespace="urn:types.import.test"
      xmlns:tns="urn:types.import.test"
      xmlns="http://www.w3.org/2001/XMLSchema/">
  
      <import
        schemaLocation="Phone.xsd"
        namespace="urn:types.import.test">
      </import>
  
      <complexType name="Address">
        <all>
          <element name="streetNum" type="int"/>
          <element name="streetName" type="string"/>
          <element name="city" type="string"/>
          <element name="state" type="string"/>
          <element name="zip" type="int"/>
          <element name="phoneNumber" type="tns:PhoneNumber"/>
        </all>
      </complexType>
  
    </schema>
  
  
  
  1.1                  xml-axis/java/test/wsdl/_import/ImportBinding1.wsdl
  
  Index: ImportBinding1.wsdl
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <definitions
      targetNamespace="urn:importBinding1"
      xmlns="http://schemas.xmlsoap.org/wsdl/"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:iface="urn:iface.import.test">
  
  <import
      location="ImportInterface.wsdl"
      namespace="urn:iface.import.test">
  </import>
  
  <binding name="ImportBinding1" type="iface:Import">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="addEntry">
      <soap:operation soapAction=""/>
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Import" use="encoded"/>
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Import" use="encoded"/>
      </output>
    </operation>
    <operation name="getAddressFromName">
      <soap:operation soapAction=""/>
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Import" use="encoded"/>
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Import" use="encoded"/>
      </output>
    </operation>
  </binding>
  </definitions>
  
  
  
  1.1                  xml-axis/java/test/wsdl/_import/ImportBinding2.wsdl
  
  Index: ImportBinding2.wsdl
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <definitions
      targetNamespace="urn:importBinding2"
      xmlns="http://schemas.xmlsoap.org/wsdl/"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:iface="urn:iface.import.test">
  
  <import
      location="ImportInterface.wsdl"
      namespace="urn:iface.import.test">
  </import>
  
  <binding name="ImportBinding2" type="iface:Import">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="addEntry">
      <soap:operation soapAction=""/>
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Import" use="encoded"/>
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Import" use="encoded"/>
      </output>
    </operation>
    <operation name="getAddressFromName">
      <soap:operation soapAction=""/>
      <input>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Import" use="encoded"/>
      </input>
      <output>
        <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:Import" use="encoded"/>
      </output>
    </operation>
  </binding>
  </definitions>
  
  
  
  1.1                  xml-axis/java/test/wsdl/_import/ImportInterface.wsdl
  
  Index: ImportInterface.wsdl
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <definitions
      targetNamespace="urn:iface.import.test"
      xmlns="http://schemas.xmlsoap.org/wsdl/"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:messages="urn:messages.import.test">
  
  <import
      location="ImportMessages.wsdl"
      namespace="urn:messages.import.test">
  </import>
  
  <portType name="Import">
    <operation name="addEntry">
      <input message="messages:InaddEntryRequest"/>
      <output message="messages:empty"/>
    </operation>
  
    <operation name="getAddressFromName">
      <input message="messages:IngetAddressFromNameRequest"/>
      <output message="messages:OutgetAddressFromNameResponse"/>
      <fault message="messages:Fault"/>
    </operation>
  </portType>
  
  </definitions>
  
  
  
  1.1                  xml-axis/java/test/wsdl/_import/ImportMessages.wsdl
  
  Index: ImportMessages.wsdl
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <definitions
      targetNamespace="urn:messages.import.test"
      xmlns="http://schemas.xmlsoap.org/wsdl/"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:addressTypes="urn:types.import.test">
  
  <import
      location="Import.xsd"
      namespace="urn:types.import.test">
  </import>
  
  <message name="empty"/>
  
  <message name="InaddEntryRequest">
    <part name="key" type="xsd:string"/>
    <part name="value" type="addressTypes:Address"/>
  </message>
  
  <message name="IngetAddressFromNameRequest">
    <part name="key" type="xsd:string"/>
  </message>
  
  <message name="OutgetAddressFromNameResponse">
    <part name="value" type="addressTypes:Address"/>
  </message>
  
  <message name="Fault">
    <part name="value" type="xsd:string"/>
  </message>
  
  </definitions>
  
  
  
  1.1                  xml-axis/java/test/wsdl/_import/NStoPkg.properties
  
  Index: NStoPkg.properties
  ===================================================================
  urn\:types.import.test=test.import3
  
  
  
  1.1                  xml-axis/java/test/wsdl/_import/Phone.xsd
  
  Index: Phone.xsd
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
    <schema
      targetNamespace="urn:types.import.test"
      xmlns:tns="urn:types.import.test"
      xmlns="http://www.w3.org/2001/XMLSchema/">
  
      <complexType name="PhoneNumber">
        <all>
          <element name="areaCode" type="int"/>
          <element name="exchange" type="string"/>
          <element name="number" type="string"/>
        </all>
      </complexType>
  
    </schema>
  
  
  
  1.1                  xml-axis/java/test/wsdl/inout/DetailedInoutTestCase.java
  
  Index: DetailedInoutTestCase.java
  ===================================================================
  package test.wsdl.inout;
  
  import junit.framework.AssertionFailedError;
  import junit.framework.TestCase;
  import junit.swingui.TestRunner;
  import org.apache.axis.utils.Options;
  
  import javax.xml.rpc.holders.IntHolder;
  import javax.xml.rpc.holders.StringHolder;
  
  /**
   * This class shows how to use the ServiceClient's ability to
   * become session aware.
   *
   * @author Rob Jellinghaus (robj@unrealities.com)
   * @author Sanjiva Weerawarana <sa...@watson.ibm.com>
   */
  public class DetailedInoutTestCase extends TestCase
  {
      private static Inout io = new InoutService().getInoutService();
      
      public DetailedInoutTestCase(String name) {
          super(name);
      }
  
      private String printAddress (Address ad) {
          String out;
          if (ad == null)
              out = "\t[ADDRESS NOT FOUND!]";
          else
              out ="\t" + ad.getStreetNum () + " " + ad.getStreetName () + "\n\t" + ad.getCity () + ", " + ad.getState () + " " + ad.getZip () + "\n\t" + printPhone (ad.getPhoneNumber ());
          return out;
      }
  
      private String printPhone (Phone ph)
      {
          String out;
          if (ph == null)
              out = "[PHONE NUMBER NOT FOUND!]";
          else
              out ="Phone: (" + ph.getAreaCode () + ") " + ph.getExchange () + "-" + ph.getNumber ();
          return out;
      }
  
      public boolean equals (Address a1, Address a2)
      {
          try
          {
              return a1.getStreetNum() == a2.getStreetNum() && a1.getZip() == a2.getZip() && equals (a1.getPhoneNumber(), a2.getPhoneNumber()) && ((a1.getStreetName() == null && a2.getStreetName() == null) || a1.getStreetName().equals (a2.getStreetName())) && ((a1.getCity() == null && a2.getCity() == null) || a1.getCity().equals (a2.getCity())) && ((a1.getState() == null && a2.getState() == null) || a1.getState().equals (a2.getState()));
          }
          catch (Throwable t)
          {
              return false;
          }
      }
  
      public boolean equals (Phone p1, Phone p2)
      {
          try
          {
              return p1.getAreaCode() == p2.getAreaCode() && ((p1.getExchange() == null && p2.getExchange() == null) || p1.getExchange().equals (p2.getExchange())) && ((p1.getNumber() == null && p2.getNumber() == null) || p1.getNumber().equals (p2.getNumber()));
          }
          catch (Throwable t)
          {
              return false;
          }
      }
  
      private Phone expectedPhone = new Phone (765, "494", "4900");
      private Address expectedAddress = new Address (1, "University Drive", "West Lafayette", "IN", 47907, expectedPhone);
      private int expectedNumber = 99;
  
      private Phone returnPhone = new Phone (999, "one", "two");
      private Address returnAddress = new Address (555, "Monroe Street", "Madison", "WI", 54444, returnPhone);
      private int returnNumber = 66;
  
      public void testOut0Inout0In0 ()
      {
          try
          {
              io.out0Inout0In0 ();
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure: out0Inout0In0: " + t.getMessage());
          }
      }
  
      public void testOut0Inout0In1 ()
      {
          try
          {
              io.out0Inout0In1 ("out0Inout0In1");
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out0Inout0In1" + t.getMessage());
          }
      }
  
      public void testOut0Inout0InMany ()
      {
          try
          {
              io.out0Inout0InMany ("out0Inout0InMany", expectedAddress);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out0Inout0InMany" + t.getMessage());
          }
      }
  
      public void testOut0Inout1In0 ()
      {
          PhoneHolder ph = new PhoneHolder (expectedPhone);
          try
          {
              io.out0Inout1In0 (ph);
              assertTrue("out0Inout1In0 returned bad value", equals(ph.value, returnPhone));
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out0Inout1In0\nexpected phone = "
                                             + printPhone (returnPhone) + "\nactual phone = "
                                             + printPhone (ph.value) + t.getMessage());
          }
      }
  
      public void testOut0Inout1In1 ()
      {
          StringHolder sh = new StringHolder ("out0Inout1In1");
          try
          {
              io.out0Inout1In1 (sh, expectedAddress);
              assertEquals("StringHolder returned bad value", "out0Inout1In1 yo ho ho!", sh.value);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out0Inout1In1\nexpected string = out0Inout1In1 yo ho ho!\nactual string = "
                                             + sh.value + t.getMessage());
          }
      }
  
      public void testOut0Inout1InMany ()
      {
          PhoneHolder ph = new PhoneHolder (expectedPhone);
          try
          {
              io.out0Inout1InMany ("out0Inout1InMany", expectedAddress, ph);
              assertTrue("out0Inout1InMany returned bad value", equals(ph.value, returnPhone));
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out0Inout1InMany\nexpected phone = "
                                             + printPhone (returnPhone) + "\nactual phone = "
                                             + printPhone (ph.value) + t.getMessage());
          }
      }
  
      public void testOut0InoutManyIn0 ()
      {
          StringHolder sh = new StringHolder ("out0InoutManyIn0");
          AddressHolder ah = new AddressHolder (expectedAddress);
          try
          {
              io.out0InoutManyIn0 (sh, ah);
              assertEquals("out0InoutManyIn0 yo ho ho!", sh.value);
              assertTrue("out0InoutManyIn0 returned bad value", equals (ah.value, returnAddress));
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out0InoutManyIn0\nexpected string = out0InoutManyIn0 yo ho ho!\nactual string = "
                                             + sh.value + "\nexpected address =\n" + printAddress (returnAddress)
                                             + "\nactual address =\n" + printAddress (ah.value) + t.getMessage());
          }
      }
  
      public void testOut0InoutManyIn1 ()
      {
          try
          {
              StringHolder sh = new StringHolder ("out0InoutManyIn1");
              AddressHolder ah = new AddressHolder (expectedAddress);
              io.out0InoutManyIn1 (sh, ah, expectedPhone);
              assertEquals("out0InoutManyIn1 yo ho ho!", sh.value);
              assertTrue("testOut0InoutManyIn1 returned bad value", equals (ah.value, returnAddress));
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out0InoutManyIn1\n" + t.getMessage());
          }
      }
  
      public void testOut0InoutManyInMany ()
      {
          StringHolder sh = new StringHolder ("out0InoutManyInMany");
          AddressHolder ah = new AddressHolder (expectedAddress);
          try
          {
              io.out0InoutManyInMany (sh, ah, expectedPhone, expectedNumber);
              assertEquals("out0InoutManyInMany yo ho ho!", sh.value);
              assertTrue(equals (ah.value, returnAddress));
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out0InoutManyInMany\nexpected string = out0InoutManyInMany yo ho ho!\nactual string = "
                                             + sh.value + "\nexpected address =\n" + printAddress (returnAddress)
                                             + "\nactual address =\n" + printAddress (ah.value) + t.getMessage());
          }
      }
  
      public void testOut1Inout0In0 ()
      {
          int ret = 0;
          try
          {
              ret = io.out1Inout0In0 ();
              assertEquals("out1Inout0In0 returned wrong value", returnNumber, ret);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out1Inout0In0\nexpected number = "
                                             + returnNumber + "\nactual number = " + ret + t.getMessage());
          }
      }
  
      public void testOut1Inout0In1 ()
      {
          int ret = 0;
          try
          {
              ret = io.out1Inout0In1 ("out1Inout0In1");
              assertEquals(returnNumber, ret);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out1Inout0In1\nexpected number = "
                                             + returnNumber + "\nactual number = " + ret + t.getMessage());
          }
      }
  
      public void testOut1Inout0InMany ()
      {
          int ret = 0;
          try
          {
              ret = io.out1Inout0InMany ("out1Inout0InMany", expectedAddress);
              assertEquals(returnNumber, ret);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out1Inout0InMany\nexpected number = "
                                             + returnNumber + "\nactual number = " + ret + t.getMessage());
          }
      }
  
      public void testOut1Inout1In0 ()
      {
          StringHolder sh = new StringHolder ("out1Inout1In0");
          Address ret = null;
          try
          {
              ret = io.out1Inout1In0 (sh);
              assertEquals("out1Inout1In0 yo ho ho!", sh.value);
              assertTrue(equals (ret, returnAddress));
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out1Inout1In0\nexpected string = out1Inout1In0 yo ho ho!\nactual string = "
                                             + sh.value + "\nexpected address =\n" + printAddress (returnAddress)
                                             + "\nactual address =\n" + printAddress (ret) + t.getMessage());
          }
      }
  
      public void testOut1Inout1In1 ()
      {
          StringHolder sh = new StringHolder ("out1Inout1In1");
          String ret = null;
          try
          {
              ret = io.out1Inout1In1 (sh, expectedAddress);
              assertEquals("out1Inout1In1 yo ho ho!", sh.value);
              assertEquals("out1Inout1In1 arghhh!", ret);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out1Inout1In1\nexpected string1 = out1Inout1In1 yo ho ho!\nactual string1 = "
                                             + sh.value + "\nexpected string2 = out1Inout1In1 arghhh!\nactual string2 = " + ret);
          }
      }
  
      public void testOut1Inout1InMany ()
      {
          StringHolder sh = new StringHolder ("out1Inout1InMany");
          String ret = null;
          try
          {
              ret = io.out1Inout1InMany (sh, expectedAddress, expectedPhone);
              assertEquals("out1Inout1InMany yo ho ho!", sh.value);
              assertEquals("out1Inout1InMany arghhh!", ret);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out1Inout1InMany\nexpected string1 = out1Inout1InMany yo ho ho!\nactual string1 = "
                                             + sh.value + "\nexpected string2 = out1Inout1InMany arghhh!\nactual string2 = " + ret + t.getMessage());
          }
      }
  
      public void testOut1InoutManyIn0 ()
      {
          StringHolder sh = new StringHolder ("out1InoutManyIn0");
          AddressHolder ah = new AddressHolder (expectedAddress);
          String ret = null;
          try
          {
              ret = io.out1InoutManyIn0 (sh, ah);
              assertEquals("out1InoutManyIn0 yo ho ho!", sh.value);
              assertTrue(equals (ah.value, returnAddress));
              assertEquals("out1InoutManyIn0 arghhh!", ret);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out1InoutManyIn0\nexpected string1 = out1InoutManyIn0 yo ho ho!\nactual string1 = "
                                             + sh.value + "\nexpected address = " + printAddress (returnAddress)
                                             + "\nactual address = " + printAddress (ah.value)
                                             + "\nexpected string2 = out1InoutManyIn0 arghhh!\nactual string2 = " + ret + t.getMessage());
          }
      }
  
      public void testOut1InoutManyIn1 ()
      {
          StringHolder sh = new StringHolder ("out1InoutManyIn1");
          AddressHolder ah = new AddressHolder (expectedAddress);
          String ret = null;
          try
          {
              ret = io.out1InoutManyIn1 (sh, ah, expectedPhone);
              assertEquals("out1InoutManyIn1 yo ho ho!", sh.value);
              assertTrue(equals (ah.value, returnAddress));
              assertEquals("out1InoutManyIn1 arghhh!", ret);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out1InoutManyIn1\nexpected string1 = out1InoutManyIn1 yo ho ho!\nactual string1 = "
                                             + sh.value + "\nexpected address = " + printAddress (returnAddress)
                                             + "\nactual address = " + printAddress (ah.value)
                                             + "\nexpected string2 = out1InoutManyIn1 arghhh!\nactual string2 = " + ret + t.getMessage());
          }
      }
  
      public void testOut1InoutManyInMany ()
      {
          StringHolder sh = new StringHolder ("out1InoutManyInMany");
          AddressHolder ah = new AddressHolder (expectedAddress);
          String ret = null;
          try
          {
              ret = io.out1InoutManyInMany (sh, ah, expectedPhone, expectedNumber);
              assertEquals("out1InoutManyInMany yo ho ho!", sh.value);
              assertTrue(equals (ah.value, returnAddress));
              assertEquals("out1InoutManyInMany arghhh!", ret);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  out1InoutManyInMany\nexpected string1 = out1InoutManyInMany yo ho ho!\nactual string1 = "
                                             + sh.value + "\nexpected address = " + printAddress (returnAddress)
                                             + "\nactual address = " + printAddress (ah.value)
                                             + "\nexpected string2 = out1InoutManyInMany arghhh!\nactual string2 = " + ret + t.getMessage());
          }
      }
  
      public void testOutManyInout0In0 ()
      {
          StringHolder sh = new StringHolder("outManyInout0In0");
          AddressHolder ah = new AddressHolder (expectedAddress);
          try
          {
              io.outManyInout0In0 (sh, ah);
              assertEquals (sh.value, " arghhh!");
              assertTrue(equals (ah.value, returnAddress));
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  outManyInout0In0\nexpected address = "
                      + printAddress (returnAddress) + "\nactual address = "
                      + printAddress (ah.value)
                      + "\nexpected string =  arghhh!\nactual string = "
                      + sh.value + " " + t.getMessage());
          }
      }
  
      public void testOutManyInout0In1 ()
      {
          IntHolder ih = new IntHolder();
          StringHolder sh = new StringHolder ();
          try
          {
              io.outManyInout0In1 ("outManyInout0In1", ih, sh);
              assertEquals(returnNumber, ih.value);
              assertEquals(" yo ho ho!", sh.value);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  outManyInout0In1\nexpected string =  yo ho ho!\nactual string = "
                      + sh.value + "\nexpected number = " + returnNumber
                      + "\nactual number = " + ih.value + " " + t.getMessage());
          }
      }
  
      public void testOutManyInout0InMany ()
      {
          IntHolder ih = new IntHolder();
          StringHolder sh = new StringHolder ();
          try
          {
              io.outManyInout0InMany ("outManyInout0InMany", expectedAddress, ih, sh);
              assertEquals(returnNumber, ih.value);
              assertEquals(" yo ho ho!", sh.value);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  outManyInout0InMany\nexpected string =  yo ho ho!\nactual string = "
                      + sh.value + "\nexpected number = " + returnNumber
                      + "\nactual number = " + ih.value + " " + t.getMessage());
          }
      }
  
      public void testOutManyInout1In0 ()
      {
          StringHolder shinout = new StringHolder ("outManyInout1In0");
          IntHolder ihout = new IntHolder();
          StringHolder shout = new StringHolder ();
          try
          {
              io.outManyInout1In0 (shinout, ihout, shout);
              assertEquals("outManyInout1In0 yo ho ho!", shinout.value);
              assertEquals(returnNumber, ihout.value);
              assertEquals(" yo ho ho!", shout.value);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  outManyInout1In0\nexpected string1 = outManyInout1In0 yo ho ho!\nactual string1 = "
                      + shinout.value
                      + "\nexpected string2 =  yo ho ho!\nactual string2 = "
                      + shout.value + "\nexpected number = " + returnNumber
                      + "\nactual number = " + ihout.value + " "
                      + t.getMessage());
          }
      }
  
      public void testOutManyInout1In1 ()
      {
          StringHolder shinout = new StringHolder ("outManyInout1In1");
          IntHolder ihout = new IntHolder();
          StringHolder shout = new StringHolder ();
          try
          {
              io.outManyInout1In1 (shinout, expectedAddress, ihout, shout);
              assertEquals("outManyInout1In1 yo ho ho!", shinout.value);
              assertEquals(returnNumber, ihout.value);
              assertEquals(" yo ho ho!", shout.value);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  outManyInout1In1\nexpected string1 = outManyInout1In1 yo ho ho!\nactual string = "
                      + shinout.value
                      + "\nexpected string2 =  yo ho ho!\nactual string2 = "
                      + shout.value + "\nexpected number = " + returnNumber
                      + "\nactual number = " + ihout.value + " "
                      + t.getMessage());
          }
      }
  
      public void testOutManyInout1InMany ()
      {
          PhoneHolder ph = new PhoneHolder (expectedPhone);
          IntHolder ih = new IntHolder();
          StringHolder sh = new StringHolder ();
          try
          {
              io.outManyInout1InMany ("outManyInout1InMany", expectedAddress, ph, ih, sh);
              assertTrue(equals (ph.value, returnPhone));
              assertEquals(returnNumber, ih.value);
              assertEquals(" yo ho ho!", sh.value);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  outManyInout1InMany\nexpected phone = "
                      + printPhone (returnPhone) + "\nactual phone = "
                      + printPhone (ph.value)
                      + "\nexpected string =  yo ho ho!\nactual string = "
                      + sh.value + "\nexpected number = " + returnNumber
                      + "\nactual number = " + ih.value + " " + t.getMessage());
          }
      }
  
      public void testOutManyInoutManyIn0 ()
      {
          StringHolder shinout = new StringHolder ("outManyInoutManyIn0");
          AddressHolder ah = new AddressHolder (expectedAddress);
          IntHolder ihout = new IntHolder();
          StringHolder shout = new StringHolder ();
          try
          {
              io.outManyInoutManyIn0 (shinout, ah, ihout, shout);
              assertEquals("outManyInoutManyIn0 yo ho ho!", shinout.value);
              assertTrue(equals (ah.value, returnAddress));
              assertEquals(returnNumber, ihout.value);
              assertEquals(" yo ho ho!", shout.value);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  outManyInoutManyIn0\nexpected string1 = outManyInoutManyIn0 yo ho ho!\nactual string1 = "
                      + shinout.value + "\nexpected address = "
                      + printAddress (returnAddress) + "\nactual address = "
                      + printAddress (ah.value)
                      + "\nexpected string2 =  yo ho ho!\nactual string2 = "
                      + shout.value + "\nexpected number = " + returnNumber
                      + "\nactual number = " + ihout.value + " "
                      + t.getMessage());
          }
      }
  
      public void testOutManyInoutManyIn1 ()
      {
          StringHolder shinout = new StringHolder ("outManyInoutManyIn1");
          AddressHolder ah = new AddressHolder (expectedAddress);
          IntHolder ihout = new IntHolder();
          StringHolder shout = new StringHolder ();
          try
          {
              io.outManyInoutManyIn1 (shinout, ah, expectedPhone, ihout, shout);
              assertEquals("outManyInoutManyIn1 yo ho ho!", shinout.value);
              assertTrue(equals (ah.value, returnAddress));
              assertEquals(returnNumber, ihout.value);
              assertEquals(" yo ho ho!", shout.value);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  outManyInoutManyIn1\nexpected string1 = outManyInoutManyIn1 yo ho ho!\nactual string1 = "
                      + shinout.value + "\nexpected address = "
                      + printAddress (returnAddress) + "\nactual address = "
                      + printAddress (ah.value)
                      + "\nexpected string2 =  yo ho ho!\nactual string2 = "
                      + shout.value + "\nexpected number = " + returnNumber
                      + "\nactual number = " + ihout.value + " "
                      + t.getMessage());
          }
      }
  
      public void testOutManyInoutManyInMany ()
      {
          StringHolder shinout = new StringHolder ("outManyInoutManyInMany");
          AddressHolder ah = new AddressHolder (expectedAddress);
          IntHolder ihout = new IntHolder();
          StringHolder shout = new StringHolder ();
          try
          {
              io.outManyInoutManyInMany (shinout, ah, expectedPhone, expectedNumber, ihout, shout);
              assertEquals("outManyInoutManyInMany yo ho ho!", shinout.value);
              assertTrue(equals (ah.value, returnAddress));
              assertEquals(returnNumber, ihout.value);
              assertEquals(" yo ho ho!", shout.value);
          }
          catch (Throwable t)
          {
              throw new AssertionFailedError("Test failure:  outManyInoutManyInMany\nexpected string1 = outManyInoutManyInMany yo ho ho!\nactual string1 = "
                      + shinout.value + "\nexpected address = "
                      + printAddress (returnAddress) + "\nactual address = "
                      + printAddress (ah.value)
                      + "\nexpected string2 =  yo ho ho!\nactual string2 = "
                      + shout.value + "\nexpected number = " + returnNumber
                      + "\nactual number = " + ihout.value + " "
                      + t.getMessage());
          }
      }
  
      public static void main (String[] args) throws Exception {
          try
          {
              Options opts = new Options(args);
  //            Category category = Category.getInstance(org.apache.axis.transport.http.HTTPSender.class.getName());
  //            category.setPriority (Priority.DEBUG);
  
              TestRunner.main(new String[] {DetailedInoutTestCase.class.getName()});
          }
          catch (Throwable t)
          {
              t.printStackTrace (System.err);
          }
      }
  }
  
  
  
  1.1                  xml-axis/java/test/wsdl/inout/InoutSOAPBindingImpl.java
  
  Index: InoutSOAPBindingImpl.java
  ===================================================================
  package test.wsdl.inout;
  
  import javax.xml.rpc.holders.IntHolder;
  import javax.xml.rpc.holders.StringHolder;
  
  public class InoutSOAPBindingImpl implements Inout
  {
      private String printAddress (Address ad) {
          String out;
          if (ad == null)
              out = "\t[ADDRESS NOT FOUND!]";
          else
              out ="\t" + ad.getStreetNum () + " " + ad.getStreetName () + "\n\t" + ad.getCity () + ", " + ad.getState () + " " + ad.getZip () + "\n\t" + printPhone (ad.getPhoneNumber ());
          return out;
  
      }
  
  
      private String printPhone (Phone ph)
      {
          String out;
          if (ph == null)
              out = "[PHONE NUMBER NOT FOUND!}";
          else
              out ="Phone: (" + ph.getAreaCode () + ") " + ph.getExchange () + "-" + ph.getNumber ();
          return out;
      }
  
      public boolean equals (Address a1, Address a2)
      {
          try
          {
              return a1.getStreetNum() == a2.getStreetNum() && a1.getZip() == a2.getZip() && equals (a1.getPhoneNumber(), a2.getPhoneNumber()) && ((a1.getStreetName() == null && a2.getStreetName() == null) || a1.getStreetName().equals (a2.getStreetName())) && ((a1.getCity() == null && a2.getCity() == null) || a1.getCity().equals (a2.getCity())) && ((a1.getState() == null && a2.getState() == null) || a1.getState().equals (a2.getState()));
          }
          catch (Throwable t)
          {
              return false;
          }
      }
  
      public boolean equals (Phone p1, Phone p2)
      {
          try
          {
              return p1.getAreaCode() == p2.getAreaCode() && ((p1.getExchange() == null && p2.getExchange() == null) || p1.getExchange().equals (p2.getExchange())) && ((p1.getNumber() == null && p2.getNumber() == null) || p1.getNumber().equals (p2.getNumber()));
          }
          catch (Throwable t)
          {
              return false;
          }
      }
  
      private Phone expectedPhone = new Phone (765, "494", "4900");
      private Address expectedAddress = new Address (1, "University Drive", "West Lafayette", "IN", 47907, expectedPhone);
      private int expectedNumber = 99;
  
      private Phone returnPhone = new Phone (999, "one", "two");
      private Address returnAddress = new Address (555, "Monroe Street", "Madison", "WI", 54444, returnPhone);
      private int returnNumber = 66;
  
      public void out0Inout0In0 () throws org.apache.axis.AxisFault, TestFailed
      {
      }
  
      public void out0Inout0In1 (String name) throws org.apache.axis.AxisFault, TestFailed
      {
          if (!"out0Inout0In1".equals (name))
          {
              System.err.println ("Test failure:  out0Inout0In1");
              System.err.println ("expected name = out0Inout0In1");
              System.err.println ("actual name = " + name);
              throw new TestFailed ();
          }
      }
  
      public void out0Inout0InMany (String name, Address address) throws org.apache.axis.AxisFault, TestFailed
      {
          if (!"out0Inout0InMany".equals (name) || !equals (address, expectedAddress))
          {
              System.err.println ("Test failure:  out0Inout0InMany");
              System.err.println ("expected name = out0Inout0InMany");
              System.err.println ("actual name = " + name);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address));
              throw new TestFailed ();
          }
      }
  
      public void out0Inout1In0 (PhoneHolder phone) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (phone.value, expectedPhone))
              phone.value = returnPhone;
          else
          {
              System.err.println ("Test failure:  out0Inout1In0");
              System.err.println ("expected phone = " + printPhone (expectedPhone));
              System.err.println ("actual phone = " + printPhone (phone.value));
              throw new TestFailed ();
          }
      }
  
      public void out0Inout1In1 (StringHolder name, Address address) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (address, expectedAddress) && "out0Inout1In1".equals (name.value))
              name.value = name.value + " yo ho ho!";
          else
          {
              System.err.println ("Test failure:  out0Inout1In1");
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address));
              System.err.println ("expected name = out0Inout1In1");
              System.err.println ("actual name = " + name.value);
              throw new TestFailed ();
          }
      }
  
      public void out0Inout1InMany (String name, Address address, PhoneHolder phone) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("out0Inout1InMany".equals (name) && equals (address, expectedAddress) && equals (phone.value, expectedPhone))
              phone.value = returnPhone;
          else
          {
              System.err.println ("Test failure:  out0Inout1InMany");
              System.err.println ("expected name = out0Inout1InMany");
              System.err.println ("actual name = " + name);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address));
              System.err.println ("expected phone = " + printPhone (expectedPhone));
              System.err.println ("actual phone = " + printPhone (phone.value));
              throw new TestFailed ();
          }
      }
  
      public void out0InoutManyIn0 (StringHolder name, AddressHolder address) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("out0InoutManyIn0".equals (name.value) && equals (address.value, expectedAddress))
          {
              name.value = name.value + " yo ho ho!";
              address.value = returnAddress;
          }
          else
          {
              System.err.println ("Test failure:  out0InoutManyIn0");
              System.err.println ("expected name = out0InoutManyIn0");
              System.err.println ("actual name = " + name.value);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address.value));
              throw new TestFailed ();
          }
      }
  
      public void out0InoutManyIn1 (StringHolder name, AddressHolder address, Phone phone) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (phone, expectedPhone) && "out0InoutManyIn1".equals (name.value) && equals (address.value, expectedAddress))
          {
              name.value = name.value + " yo ho ho!";
              address.value = returnAddress;
          }
          else
          {
              System.err.println ("Test failure:  out0InoutManyIn1");
              System.err.println ("expected phone = " + printPhone (expectedPhone));
              System.err.println ("actual phone = " + printPhone (phone));
              System.err.println ("expected name = out0InoutManyIn1");
              System.err.println ("actual name = " + name.value);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address.value));
              throw new TestFailed ();
          }
      }
  
  
      public void out0InoutManyInMany (StringHolder name, AddressHolder address, Phone phone, int number) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (phone, expectedPhone) && expectedNumber == number && "out0InoutManyInMany".equals (name.value) && equals (address.value, expectedAddress))
          {
              name.value = name.value + " yo ho ho!";
              address.value = returnAddress;
          }
          else
          {
              System.err.println ("Test failure:  out0InoutManyInMany");
              System.err.println ("expected phone = " + printPhone (expectedPhone));
              System.err.println ("actual phone = " + printPhone (phone));
              System.err.println ("expected number = " + expectedNumber);
              System.err.println ("actual number = " + number);
              System.err.println ("expected name = out0InoutManyInMany");
              System.err.println ("actual name = " + name.value);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address.value));
              throw new TestFailed ();
          }
      }
  
  
      public int out1Inout0In0 () throws org.apache.axis.AxisFault, TestFailed
      {
          return returnNumber;
      }
  
  
      public int out1Inout0In1 (String name) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("out1Inout0In1".equals (name))
          {
              return returnNumber;
          }
          else
          {
              System.err.println ("Test failure:  out1Inout0In1");
              System.err.println ("expected name = out1Inout0In1");
              System.err.println ("actual name = " + name);
              throw new TestFailed ();
          }
      }
  
  
      public int out1Inout0InMany (String name, Address address) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("out1Inout0InMany".equals (name) && equals (address, expectedAddress))
          {
              return returnNumber;
          }
          else
          {
              System.err.println ("Test failure:  out1Inout0InMany");
              System.err.println ("expected name = out1Inout0InMany");
              System.err.println ("actual name = " + name);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address));
              throw new TestFailed ();
          }
      }
  
      public Address out1Inout1In0 (StringHolder name) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("out1Inout1In0".equals (name.value))
          {
              name.value = name.value + " yo ho ho!";
              return returnAddress;
          }
          else
          {
              System.err.println ("Test failure:  out1Inout1In0");
              System.err.println ("expected name = out1Inout1In0");
              System.err.println ("actual name = " + name.value);
              throw new TestFailed ();
          }
      }
  
      public String out1Inout1In1 (StringHolder name, Address address) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (address, expectedAddress) && "out1Inout1In1".equals (name.value))
          {
              name.value = name.value + " yo ho ho!";
              return "out1Inout1In1 arghhh!";
          }
          else
          {
              System.err.println ("Test failure:  out1Inout1In1");
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address));
              System.err.println ("expected name = out1Inout1In1");
              System.err.println ("actual name = " + name.value);
              throw new TestFailed ();
          }
      }
  
  
      public String out1Inout1InMany (StringHolder name, Address address, Phone phone) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (address, expectedAddress) && equals (phone, expectedPhone) && "out1Inout1InMany".equals (name.value))
          {
              name.value = name.value + " yo ho ho!";
              return "out1Inout1InMany arghhh!";
          }
          else
          {
              System.err.println ("Test failure:  out1Inout1InMany");
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address));
              System.err.println ("expected phone = " + printPhone (expectedPhone));
              System.err.println ("actual phone = " + printPhone (phone));
              System.err.println ("expected name = out1Inout1InMany");
              System.err.println ("actual name = " + name.value);
              throw new TestFailed ();
          }
      }
  
  
      public String out1InoutManyIn0 (StringHolder name, AddressHolder address) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("out1InoutManyIn0".equals (name.value) && equals (address.value, expectedAddress))
          {
              name.value = name.value + " yo ho ho!";
              address.value = returnAddress;
              return "out1InoutManyIn0 arghhh!";
          }
          else
          {
              System.err.println ("Test failure:  out1InoutManyIn0");
              System.err.println ("expected name = out1InoutManyIn0");
              System.err.println ("actual name = " + name.value);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address.value));
              throw new TestFailed ();
          }
      }
  
  
      public String out1InoutManyIn1 (StringHolder name, AddressHolder address, Phone phone) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (phone, expectedPhone) && "out1InoutManyIn1".equals (name.value) && equals (address.value, expectedAddress))
          {
              name.value = name.value + " yo ho ho!";
              address.value = returnAddress;
              return "out1InoutManyIn1 arghhh!";
          }
          else
          {
              System.err.println ("Test failure:  out1InoutManyIn1");
              System.err.println ("expected phone = " + printPhone (expectedPhone));
              System.err.println ("actual phone = " + printPhone (phone));
              System.err.println ("expected name = out1InoutManyIn1");
              System.err.println ("actual name = " + name.value);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address.value));
              throw new TestFailed ();
          }
      }
  
  
      public String out1InoutManyInMany (StringHolder name, AddressHolder address, Phone phone, int number) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (phone, expectedPhone) && expectedNumber == number && "out1InoutManyInMany".equals (name.value) && equals (address.value, expectedAddress))
          {
              name.value = name.value + " yo ho ho!";
              address.value = returnAddress;
              return "out1InoutManyInMany arghhh!";
          }
          else
          {
              System.err.println ("Test failure:  out1InoutManyInMany");
              System.err.println ("expected phone = " + printPhone (expectedPhone));
              System.err.println ("actual phone = " + printPhone (phone));
              System.err.println ("expected number = " + expectedNumber);
              System.err.println ("actual number = " + number);
              System.err.println ("expected name = out1InoutManyInMany");
              System.err.println ("actual name = " + name.value);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address.value));
              throw new TestFailed ();
          }
      }
  
  
      public void outManyInout0In0 (StringHolder name, AddressHolder address) throws org.apache.axis.AxisFault, TestFailed
      {
          if (name.value == null && address.value == null) {
              name.value = " arghhh!";
              address.value = returnAddress;
          }
          else
              throw new TestFailed ();
      }
  
  
      public void outManyInout0In1 (String name, IntHolder number, StringHolder otherName) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("outManyInout0In1".equals (name) && otherName.value == null)
          {
              number.value = returnNumber;
              otherName.value = " yo ho ho!";
          }
          else
          {
              System.err.println ("Test failure:  outManyInout0In1");
              System.err.println ("expected name = outManyInout0In1");
              System.err.println ("actual name = " + name);
              throw new TestFailed ();
          }
      }
  
  
      public void outManyInout0InMany (String name, Address address, IntHolder number, StringHolder otherName) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("outManyInout0InMany".equals (name) && equals (address, expectedAddress) && otherName.value == null)
          {
              number.value = returnNumber;
              otherName.value = " yo ho ho!";
          }
          else
          {
              System.err.println ("Test failure:  outManyInout0InMany");
              System.err.println ("expected name = outManyInout0InMany");
              System.err.println ("actual name = " + name);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address));
              throw new TestFailed ();
          }
      }
  
  
      public void outManyInout1In0 (StringHolder name, IntHolder number, StringHolder otherName) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("outManyInout1In0".equals (name.value) && otherName.value == null)
          {
              number.value = returnNumber;
              name.value = name.value + " yo ho ho!";
              otherName.value = " yo ho ho!";
          }
          else
          {
              System.err.println ("Test failure:  outManyInout1In0");
              System.err.println ("expected name = outManyInout1In0");
              System.err.println ("actual name = " + name.value);
              throw new TestFailed ();
          }
      }
  
  
      public void outManyInout1In1 (StringHolder name, Address address, IntHolder number, StringHolder otherName) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (address, expectedAddress) && "outManyInout1In1".equals (name.value) && otherName.value == null)
          {
              number.value = returnNumber;
              name.value = name.value + " yo ho ho!";
              otherName.value = " yo ho ho!";
          }
          else
          {
              System.err.println ("Test failure:  outManyInout1In1");
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address));
              System.err.println ("expected name = out1InoutManyInMany");
              System.err.println ("actual name = " + name.value);
              System.err.println ("expected otherName = null");
              System.err.println ("actual otherName = " + otherName.value);
              throw new TestFailed ();
          }
      }
  
  
      public void outManyInout1InMany (String name, Address address, PhoneHolder phone, IntHolder number, StringHolder otherName) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("outManyInout1InMany".equals (name) && equals (address, expectedAddress) && equals (phone.value, expectedPhone) && otherName.value == null)
          {
              phone.value = returnPhone;
              number.value = returnNumber;
              otherName.value = " yo ho ho!";
          }
          else
          {
              System.err.println ("Test failure:  outManyInout1InMany");
              System.err.println ("expected name = outManyInout1InMany");
              System.err.println ("actual name = " + name);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address));
              System.err.println ("expected phone = " + printPhone (expectedPhone));
              System.err.println ("actual phone = " + printPhone (phone.value));
              throw new TestFailed ();
          }
      }
  
  
      public void outManyInoutManyIn0 (StringHolder name, AddressHolder address, IntHolder number, StringHolder otherName) throws org.apache.axis.AxisFault, TestFailed
      {
          if ("outManyInoutManyIn0".equals (name.value) && equals (address.value, expectedAddress) && otherName.value == null)
          {
              name.value = name.value + " yo ho ho!";
              address.value = returnAddress;
              number.value = returnNumber;
              otherName.value = " yo ho ho!";
          }
          else
          {
              System.err.println ("Test failure:  outManyInoutManyIn0");
              System.err.println ("expected name = outManyInoutManyIn0");
              System.err.println ("actual name = " + name.value);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address.value));
              throw new TestFailed ();
          }
      }
  
  
      public void outManyInoutManyIn1 (StringHolder name, AddressHolder address, Phone phone, IntHolder number, StringHolder otherName) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (phone, expectedPhone) && "outManyInoutManyIn1".equals (name.value) && equals (address.value, expectedAddress) && otherName.value == null)
          {
              name.value = name.value + " yo ho ho!";
              address.value = returnAddress;
              number.value = returnNumber;
              otherName.value = " yo ho ho!";
          }
          else
          {
              System.err.println ("Test failure:  outManyInoutManyIn1");
              System.err.println ("expected phone = " + printPhone (expectedPhone));
              System.err.println ("actual phone = " + printPhone (phone));
              System.err.println ("expected name = out1InoutManyInMany");
              System.err.println ("actual name = " + name.value);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address.value));
              throw new TestFailed ();
          }
      }
  
  
      public void outManyInoutManyInMany (StringHolder name, AddressHolder address, Phone phone, int otherNumber, IntHolder number, StringHolder otherName) throws org.apache.axis.AxisFault, TestFailed
      {
          if (equals (phone, expectedPhone) && expectedNumber == otherNumber && "outManyInoutManyInMany".equals (name.value) && equals (address.value, expectedAddress) && otherName.value == null)
          {
              name.value = name.value + " yo ho ho!";
              address.value = returnAddress;
              number.value = returnNumber;
              otherName.value = " yo ho ho!";
          }
          else
          {
              System.err.println ("Test failure:  outManyInoutManyInMany");
              System.err.println ("expected phone = " + printPhone (expectedPhone));
              System.err.println ("actual phone = " + printPhone (phone));
              System.err.println ("expected number = " + expectedNumber);
              System.err.println ("actual number = " + otherNumber);
              System.err.println ("expected name = outManyInoutManyInMany");
              System.err.println ("actual name = " + name.value);
              System.err.println ("expected address =\n" + printAddress (expectedAddress));
              System.err.println ("actual address =\n" + printAddress (address.value));
              throw new TestFailed ();
          }
      }
  }
  
  
  
  1.1                  xml-axis/java/test/wsdl/inout/inout.wsdl
  
  Index: inout.wsdl
  ===================================================================
  <?xml version="1.0" ?>
  
  <definitions name="http://www.apache.org/inout"
               targetNamespace="http://www.apache.org/inout"
  	         xmlns:tns="http://www.apache.org/inout"
               xmlns:typens="http://www.apache.org/inout"
               xmlns:xsd="http://www.w3.org/1999/XMLSchema"
               xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
               xmlns="http://schemas.xmlsoap.org/wsdl/">
  
    <!-- type defs -->
    <types>
      <xsd:schema targetNamespace="http://www.apache.org/inout"
                  xmlns:xsd="http://www.w3.org/1999/XMLSchema">
        <xsd:complexType name="phone">
          <xsd:all>
            <xsd:element name="areaCode" type="xsd:int"/>
            <xsd:element name="exchange" type="xsd:string"/>
            <xsd:element name="number" type="xsd:string"/>
          </xsd:all>
        </xsd:complexType>
  
        <xsd:complexType name="address">
          <xsd:all>
            <xsd:element name="streetNum" type="xsd:int"/>
            <xsd:element name="streetName" type="xsd:string"/>
            <xsd:element name="city" type="xsd:string"/>
            <xsd:element name="state" type="xsd:string"/>
            <xsd:element name="zip" type="xsd:int"/>
            <xsd:element name="phoneNumber" type="typens:phone"/>
          </xsd:all>
        </xsd:complexType>
      </xsd:schema>
    </types>
  
    <!-- message declns -->
    <message name="TestFailedMessage"/>
  
    <message name="Msg0"/>
  
    <message name="Msg1">
      <part name="name" type="xsd:string"/>
    </message>
  
    <message name="Msg2">
      <part name="name" type="xsd:string"/>
      <part name="address" type="typens:address"/>
    </message>
  
    <message name="Msg3">
      <part name="phone" type="typens:phone"/>
    </message>
  
    <message name="Msg4">
      <part name="number" type="xsd:int"/>
    </message>
  
    <message name="Msg5">
      <part name="otherName" type="xsd:string"/>
    </message>
  
    <message name="Msg6">
      <part name="otherNumber" type="xsd:int"/>
    </message>
  
    <message name="Msg15">
      <part name="name" type="xsd:string"/>
      <part name="otherName" type="xsd:string"/>
    </message>
  
    <message name="Msg23">
      <part name="name" type="xsd:string"/>
      <part name="address" type="typens:address"/>
      <part name="phone" type="typens:phone"/>
    </message>
  
    <message name="Msg25">
      <part name="name" type="xsd:string"/>
      <part name="address" type="typens:address"/>
      <part name="otherName" type="xsd:string"/>
    </message>
  
    <message name="Msg145">
      <part name="name" type="xsd:string"/>
      <part name="number" type="xsd:int"/>
      <part name="otherName" type="xsd:string"/>
    </message>
  
    <message name="Msg234">
      <part name="name" type="xsd:string"/>
      <part name="address" type="typens:address"/>
      <part name="phone" type="typens:phone"/>
      <part name="number" type="xsd:int"/>
    </message>
  
    <message name="Msg236">
      <part name="name" type="xsd:string"/>
      <part name="address" type="typens:address"/>
      <part name="phone" type="typens:phone"/>
      <part name="otherNumber" type="xsd:int"/>
    </message>
   
    <message name="Msg245">
      <part name="name" type="xsd:string"/>
      <part name="address" type="typens:address"/>
      <part name="number" type="xsd:int"/>
      <part name="otherName" type="xsd:string"/>
    </message>
  
    <message name="Msg345">
      <part name="phone" type="typens:phone"/>
      <part name="number" type="xsd:int"/>
      <part name="otherName" type="xsd:string"/>
    </message>
  
    <message name="Msg45">
      <part name="number" type="xsd:int"/>
      <part name="otherName" type="xsd:string"/>
    </message>
  
    <!-- port type declns -->
    <portType name="Inout">
  
      <!-- all permutations in order out, inout, in -->
      <operation name="out0Inout0In0">
        <input message="tns:Msg0"/>
        <output message="tns:Msg0"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out0Inout0In1">
        <input message="tns:Msg1"/>
        <output message="tns:Msg0"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out0Inout0InMany">
        <input message="tns:Msg2"/>
        <output message="tns:Msg0"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out0Inout1In0">
        <input message="tns:Msg3"/>
        <output message="tns:Msg3"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out0Inout1In1">
        <input message="tns:Msg2"/>
        <output message="tns:Msg1"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out0Inout1InMany">
        <input message="tns:Msg23"/>
        <output message="tns:Msg3"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out0InoutManyIn0">
        <input message="tns:Msg2"/>
        <output message="tns:Msg2"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out0InoutManyIn1">
        <input message="tns:Msg23"/>
        <output message="tns:Msg2"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out0InoutManyInMany">
        <input message="tns:Msg234"/>
        <output message="tns:Msg2"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out1Inout0In0">
        <input message="tns:Msg0"/>
        <output message="tns:Msg4"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out1Inout0In1">
        <input message="tns:Msg1"/>
        <output message="tns:Msg4"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out1Inout0InMany">
        <input message="tns:Msg2"/>
        <output message="tns:Msg4"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out1Inout1In0">
        <input message="tns:Msg1"/>
        <output message="tns:Msg2"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out1Inout1In1">
        <input message="tns:Msg2"/>
        <output message="tns:Msg15"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out1Inout1InMany">
        <input message="tns:Msg23"/>
        <output message="tns:Msg15"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out1InoutManyIn0">
        <input message="tns:Msg2"/>
        <output message="tns:Msg25"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out1InoutManyIn1">
        <input message="tns:Msg23"/>
        <output message="tns:Msg25"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="out1InoutManyInMany">
        <input message="tns:Msg234"/>
        <output message="tns:Msg25"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="outManyInout0In0">
        <input message="tns:Msg0"/>
        <output message="tns:Msg2"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="outManyInout0In1">
        <input message="tns:Msg1"/>
        <output message="tns:Msg45"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="outManyInout0InMany">
        <input message="tns:Msg2"/>
        <output message="tns:Msg45"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="outManyInout1In0">
        <input message="tns:Msg1"/>
        <output message="tns:Msg145"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="outManyInout1In1">
        <input message="tns:Msg2"/>
        <output message="tns:Msg145"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="outManyInout1InMany">
        <input message="tns:Msg23"/>
        <output message="tns:Msg345"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="outManyInoutManyIn0">
        <input message="tns:Msg2"/>
        <output message="tns:Msg245"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="outManyInoutManyIn1">
        <input message="tns:Msg23"/>
        <output message="tns:Msg245"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
      <operation name="outManyInoutManyInMany">
        <input message="tns:Msg236"/>
        <output message="tns:Msg245"/>
        <fault name="TestFailed" message="tns:TestFailed"/>
      </operation>
  
    </portType>
  
    <!-- binding declns -->
    <binding name="InoutSOAPBinding" type="tns:Inout">
      <soap:binding style="rpc" 
                    transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="out0Inout0In0">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out0Inout0In1">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out0Inout0InMany">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out0Inout1In0">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out0Inout1In1">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out0Inout1InMany">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out0InoutManyIn0">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out0InoutManyIn1">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out0InoutManyInMany">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out1Inout0In0">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out1Inout0In1">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out1Inout0InMany">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out1Inout1In0">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out1Inout1In1">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out1Inout1InMany">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out1InoutManyIn0">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out1InoutManyIn1">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="out1InoutManyInMany">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="outManyInout0In0">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="outManyInout0In1">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="outManyInout0InMany">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="outManyInout1In0">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="outManyInout1In1">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="outManyInout1InMany">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="outManyInoutManyIn0">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="outManyInoutManyIn1">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
      <operation name="outManyInoutManyInMany">
        <soap:operation soapAction=""/>
        <input>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout" 
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </input>
        <output>
          <soap:body use="encoded" 
                     namespace="http://www.apache.org/inout"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
        </output>
        <fault name="TestFailed">
        </fault>
      </operation>
    </binding>
  
    <!-- service decln -->
    <service name="InoutService">
      <port name="InoutService" binding="tns:InoutSOAPBinding">
        <soap:address location="http://localhost:8080/axis/services/InoutService"/>
      </port>
    </service>
  
  </definitions>