<?xml version="1.0" ?>

<definitions 
    name="comprehensive types test"
    targetNamespace="urn:comprehensive-service.types.wsdl.test"
    xmlns:tns="urn:comprehensive-service.types.wsdl.test"
    xmlns:typens="urn:comprehensive-types.types.wsdl.test"
    xmlns:typens2="urn:comprehensive-types2.types.wsdl.test"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns="http://schemas.xmlsoap.org/wsdl/">

  <!-- type defs -->
  <types>
    <xsd:schema 
        targetNamespace="urn:comprehensive-types.types.wsdl.test"
        xmlns:xsd="http://www.w3.org/1999/XMLSchema"
        xmlns:xsd2="http://www.w3.org/2001/XMLSchema">

      <xsd:simpleType name="simple">
        <xsd:restriction base="xsd:string" />
      </xsd:simpleType>
      
      <xsd:simpleType name="simpleDate">
        <xsd:restriction base="xsd:date" />
      </xsd:simpleType>

      <xsd:simpleType name="simpleDateTime">
        <xsd:restriction base="xsd2:dateTime" />
      </xsd:simpleType>
      
      <xsd:simpleType name="enum">
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value="one"/>                      
          <xsd:enumeration value="two"/>                    
          <xsd:enumeration value="three"/>                    
        </xsd:restriction>
      </xsd:simpleType>

      <xsd:complexType name="array">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>

      <xsd:complexType name="array_of_base64">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:base64Binary[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>

      <xsd:complexType name="complexAll">
        <xsd:all>
          <xsd:element name="areaCode" type="xsd:int"/>
          <xsd:element name="exchange" nillable="true" type="xsd:string"/>
          <xsd:element name="number" nillable="true" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>

      <xsd:complexType name="complexSequence">
        <xsd:sequence>
          <xsd:element name="areaCode" type="xsd:int"/>
          <xsd:element name="exchange" nillable="true" type="xsd:string"/>
          <xsd:element name="number" nillable="true" type="xsd:string"/>
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="complexChoice">
        <xsd:choice>
          <xsd:element name="choiceA" type="xsd:int"/>
          <xsd:element name="choiceB" type="xsd:string"/>
          <xsd:element name="choiceC" type="xsd:string"/>
        </xsd:choice>
      </xsd:complexType>

      <!-- Test proper construction of types with names that match common java.lang classes -->
      <xsd:complexType name="Object">
        <xsd:sequence>
           <xsd:element name="test" type="xsd:string" />
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="String">
        <xsd:sequence>
           <xsd:element name="test" type="xsd:string" />
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="Class">
        <xsd:sequence>
           <xsd:element name="test" type="xsd:string" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:element name="enumValue" type="typens:enum"/>

      <xsd:complexType name="time">
        <xsd:simpleContent>
          <xsd:extension base="xsd:string">
            <xsd:attribute name="DST" type="xsd:boolean" />
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>

      <xsd:complexType name="complexWComplex">
        <xsd:sequence>
          <xsd:element name="stock_quote" nillable="true">
            <xsd:complexType>
              <xsd:attribute name="symbol" type="xsd:string"/> 
              <xsd:sequence>
                <!-- forward simple type ref -->
                <xsd:element name="time" type="typens:time"/>
                <xsd:element name="change" type="typens:simpleFwd"/>  
                <xsd:element name="pctchange" type="xsd:string"/>
                <xsd:element name="bid" type="xsd:string"/>
                <xsd:element name="ask" type="xsd:string"/>
                <xsd:element name="choice" nillable="true" type="typens:complexChoice"/>
              </xsd:sequence>
              <xsd:attribute name="last" type="xsd:string"/>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="outside" type="xsd:int"/>
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="emptyFault">
        <xsd:sequence />
      </xsd:complexType>

      <xsd:element name="faultElement" type="typens:faultType" />
      <xsd:complexType name="faultType">
        <xsd:sequence>
           <xsd:element name="userData" type="xsd:string" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:complexType name="emptyComplexType">
        <xsd:sequence />
      </xsd:complexType>

      <xsd:simpleType name="simpleFwd">
        <xsd:restriction base="typens:simple" />
      </xsd:simpleType>

      <!-- The following definitions validate forward refs -->
      <xsd:complexType name="arrayM">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:arrayM2[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="arrayM2">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:arrayM3[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="arrayM3">
        <xsd:complexContent>
          <xsd:restriction base="soapenc:Array">
            <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:int[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>


      <!-- The following is a simple test of inheritance with types -->
      <xsd:complexType name="Animal">
        <xsd:all>
          <xsd:element name="Name" nillable="true" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:element name="Animal" nillable="true" type="typens:Animal"/>
      <xsd:complexType name="Cat">
        <xsd:complexContent>
          <xsd:extension base="typens:Animal">
            <xsd:all>
              <xsd:element name="Purr" nillable="true" type="xsd:string"/>
            </xsd:all>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:element name="Cat" nillable="true" type="typens:Cat"/>

      <!-- Even though PersionCat is not directly referenced, it should
      be generated and registered because its base class (Cat) is referenced -->
      <xsd:complexType name="PersionCat">
        <xsd:complexContent>
          <xsd:extension base="typens:Cat">
            <xsd:all>
              <xsd:element name="Color" type="xsd:string"/>
              <xsd:element name="Toy" /> <!-- Defaults to xsd:anyType -->
            </xsd:all>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>

      <!-- Even though Yarn is not directly referenced, it should
      be generated and registered because the Toy above is an anyType -->
      <xsd:complexType name="Yarn">
         <xsd:all>
           <xsd:element name="Color" type="xsd:string"/>
         </xsd:all>
      </xsd:complexType>

      <!-- The following test all of the valid enum basic types -->
      <xsd:simpleType name="enumString">
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value="Ho Ho Ho"/> <!-- Blanks should force value<1..n> names -->        
          <xsd:enumeration value="He He He"/>                    
          <xsd:enumeration value="Ha Ha Ha"/>                    
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="enumInt">
        <xsd:restriction base="xsd:int">
          <xsd:enumeration value="1"/>
          <xsd:enumeration value="2"/>                    
          <xsd:enumeration value="3"/>                    
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="enumLong">
        <xsd:restriction base="xsd:long">
          <xsd:enumeration value="1"/>
          <xsd:enumeration value="2"/>                    
          <xsd:enumeration value="3"/>                    
          <xsd:enumeration value="-9223372036854775808"/>                    
          <xsd:enumeration value="9223372036854775807"/>                    
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="enumShort">
        <xsd:restriction base="xsd:short">
          <xsd:enumeration value="1"/>
          <xsd:enumeration value="2"/>                    
          <xsd:enumeration value="3"/>                    
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="enumFloat">
        <xsd:restriction base="xsd:float">
          <xsd:enumeration value="1.1"/>
          <xsd:enumeration value="2.2"/>                    
          <xsd:enumeration value="3.3"/>                    
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="enumDouble">
        <xsd:restriction base="xsd:double">
          <xsd:enumeration value="1.1"/>
          <xsd:enumeration value="2.2"/>                    
          <xsd:enumeration value="3.3"/>                    
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="enumByte">
        <xsd:restriction base="xsd:byte">
          <xsd:enumeration value="1"/>
          <xsd:enumeration value="2"/>                    
          <xsd:enumeration value="3"/>                    
        </xsd:restriction>
      </xsd:simpleType>

      <xsd:simpleType name="enumInteger">
        <xsd:restriction base="xsd:integer">
          <xsd:enumeration value="1"/>
          <xsd:enumeration value="2"/>                    
          <xsd:enumeration value="3"/>                    
        </xsd:restriction>
      </xsd:simpleType>

      <xsd:simpleType name="flowDirectionType">
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value="in"/>
          <xsd:enumeration value="inOut"/>
          <xsd:enumeration value="out"/>
        </xsd:restriction>
      </xsd:simpleType>

      <xsd:simpleType name="enumNMTOKEN">
        <xsd:restriction base="xsd:NMTOKEN"> <!-- axis provided simple type -->
          <xsd:enumeration value="NameToken1"/>
          <xsd:enumeration value="NameToken2"/>                    
          <xsd:enumeration value="NameToken3"/>                    
        </xsd:restriction>
      </xsd:simpleType>

      <xsd:simpleType name="AIDType">
        <xsd:restriction base="xsd:hexBinary">
          <xsd:maxLength value="16"/>
          <xsd:minLength value="5"/>
        </xsd:restriction>
      </xsd:simpleType>

<xsd:simpleType name="passModeType">
    <xsd:restriction base="xsd:string">
        <xsd:enumeration value="passByValue"/>
        <xsd:enumeration value="passByReference"/>
     </xsd:restriction>
</xsd:simpleType>


<xsd:element name="StringParameter" type="typens:StringParameter" />
 <xsd:complexType name="StringParameter">
   <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="numBytes" type="soapenc:int"/>
        <xsd:attribute name="storageEncoding" type="xsd:string"/>
        <xsd:attribute name="direction" type="typens:flowDirectionType"/>  <!-- in, out, or inOut -->
        <xsd:attribute name="passMode" type="typens:passModeType"/>  <!-- passByValue or passByReference -->
        <xsd:attribute name="description" type="xsd:string"/>
      </xsd:extension>
   </xsd:simpleContent>
</xsd:complexType>

    </xsd:schema>


    <xsd:schema 
        targetNamespace="urn:comprehensive-types2.types.wsdl.test"
        xmlns:xsd="http://www.w3.org/1999/XMLSchema">
        <xsd:complexType name="fwd">
          <xsd:complexContent>
            <xsd:restriction base="soapenc:Array">
              <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:QName[]"/>
            </xsd:restriction>
          </xsd:complexContent>
        </xsd:complexType>

        <!-- Collection of enums -->
        <xsd:element name="three" type="typens:enum" maxOccurs="unbounded" />


        <!-- Test for nested defined complexType -->
        <xsd:element name="a" type="xsd:short" />
            <xsd:complexType name="a">
              <xsd:sequence>
                <xsd:element name="c" type="xsd:int" />
              </xsd:sequence>
            </xsd:complexType>
        <xsd:complexType name="b">
          <xsd:sequence>
            <xsd:element name="d" type="typens2:a" />
          </xsd:sequence>
        </xsd:complexType>

  <!-- Test for a WS-I-like type that we used to fail on. -->
        <xsd:complexType name="SimpleAnyURIType">
          <xsd:simpleContent>
            <xsd:extension base="xsd:anyURI">
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>

    </xsd:schema>

  </types>

  <!-- message declns -->
  <message name="empty"/>

  <message name="allPrimitives">
    <part name="string" type="xsd:string"/>
    <part name="integer" type="xsd:integer"/>
    <part name="int" type="xsd:int"/>
    <part name="long" type="xsd:long"/>
    <part name="short" type="xsd:short"/>
    <part name="decimal" type="xsd:decimal"/>
    <part name="float" type="xsd:float"/>
    <part name="double" type="xsd:double"/>
    <part name="boolean" type="xsd:boolean"/>
    <part name="byte" type="xsd:byte"/>
    <part name="QName" type="xsd:QName"/>
    <part name="dateTime" type="xsd:dateTime"/>
    <part name="base64Binary" type="xsd:base64Binary"/>
    <part name="hexBinary" type="xsd:hexBinary"/>
    <part name="soapString" type="soapenc:string"/>
    <part name="soapBoolean" type="soapenc:boolean"/>
    <part name="soapFloat" type="soapenc:float"/>
    <part name="soapDouble" type="soapenc:double"/>
    <part name="soapDecimal" type="soapenc:decimal"/>
    <part name="soapInt" type="soapenc:int"/>
    <part name="soapShort" type="soapenc:short"/>
    <part name="soapBase64" type="soapenc:base64"/>
    <part name="time" type="xsd:time"/>
    <part name="unsignedLong" type="xsd:unsignedLong"/>
    <part name="unsignedInt" type="xsd:unsignedInt"/>
    <part name="unsignedShort" type="xsd:unsignedShort"/>
    <part name="unsignedByte" type="xsd:unsignedByte"/>
    <part name="nonNegativeInteger" type="xsd:nonNegativeInteger"/>
    <part name="positiveInteger" type="xsd:positiveInteger"/>
    <part name="nonPositiveInteger" type="xsd:nonPositiveInteger"/>
    <part name="negativeInteger" type="xsd:negativeInteger"/>
    <part name="anyURI" type="xsd:anyURI"/>
    <part name="gYear" type="xsd:gYear"/>
    <part name="gMonth" type="xsd:gMonth"/>
    <part name="gDay" type="xsd:gDay"/>
    <part name="gYearMonth" type="xsd:gYearMonth"/>
    <part name="gMonthDay" type="xsd:gMonthDay"/>
  </message>
  <message name="inputBoolean">
    <part name="inBoolean" type="xsd:boolean"/>
    <part name="boolean" type="xsd:boolean"/>
  </message>

  <message name="outputBoolean">
    <part name="outBoolean" type="xsd:boolean"/>
    <part name="boolean" type="xsd:boolean"/>
  </message> 

  <message name="inputByte">
    <part name="inByte" type="xsd:byte"/>
    <part name="byte" type="xsd:byte"/>
  </message>

  <message name="outputByte">
    <part name="outByte" type="xsd:byte"/>
    <part name="byte" type="xsd:byte"/>
  </message> 

  <message name="inputShort">
    <part name="inShort" type="xsd:short"/>
    <part name="short" type="xsd:short"/>
  </message>

  <message name="outputShort">
    <part name="outShort" type="xsd:short"/>
    <part name="short" type="xsd:short"/>
  </message>

  <message name="inputInt">
    <part name="inInt" type="xsd:int"/>
    <part name="int" type="xsd:int"/>
  </message>

  <message name="outputInt">
    <part name="outInt" type="xsd:int"/>
    <part name="int" type="xsd:int"/>
  </message>

  <message name="inputLong">
    <part name="inLong" type="xsd:long"/>
    <part name="long" type="xsd:long"/>
  </message>

  <message name="outputLong">
    <part name="outLong" type="xsd:long"/>
    <part name="long" type="xsd:long"/>
  </message>

  <message name="inputFloat">
    <part name="inFloat" type="xsd:float"/>
    <part name="float" type="xsd:float"/>
  </message>

  <message name="outputFloat">
    <part name="outFloat" type="xsd:float"/>
    <part name="float" type="xsd:float"/>
  </message>

  <message name="inputDouble">
    <part name="inDouble" type="xsd:double"/>
    <part name="double" type="xsd:double"/>
  </message>

  <message name="outputDouble">
    <part name="outDouble" type="xsd:double"/>
    <part name="double" type="xsd:double"/>
  </message>

  <message name="inputString">
    <part name="inString" type="xsd:string"/>
    <part name="string" type="xsd:string"/>
  </message>

  <message name="outputString">
    <part name="outString" type="xsd:string"/>
    <part name="string" type="xsd:string"/>
  </message> 

  <message name="inputInteger">
    <part name="inInteger" type="xsd:integer"/>
    <part name="integer" type="xsd:integer"/>
  </message>

  <message name="outputInteger">
    <part name="outInteger" type="xsd:integer"/>
    <part name="integer" type="xsd:integer"/>
  </message>

  <message name="inputDecimal">
    <part name="inDecimal" type="xsd:decimal"/>
    <part name="decimal" type="xsd:decimal"/>
  </message>

  <message name="outputDecimal">
    <part name="outDecimal" type="xsd:decimal"/>
    <part name="decimal" type="xsd:decimal"/>
  </message>

  <message name="inputDateTime">
    <part name="inDateTime" type="xsd:dateTime"/>
    <part name="dateTime" type="xsd:dateTime"/>
  </message>

  <message name="outputDateTime">
    <part name="outDateTime" type="xsd:dateTime"/>
    <part name="dateTime" type="xsd:dateTime"/>
  </message>

  <message name="inputBase64Binary">
    <part name="inBase64Binary" type="xsd:base64Binary"/>
    <part name="base64Binary" type="xsd:base64Binary"/>
  </message>

  <message name="outputBase64Binary">
    <part name="outBase64Binary" type="xsd:base64Binary"/>
    <part name="base64Binary" type="xsd:base64Binary"/>
  </message>

  <message name="inputQName">
    <part name="inQName" type="xsd:QName"/>
    <part name="qName" type="xsd:QName"/>
  </message>

  <message name="outputQName">
    <part name="outQName" type="xsd:QName"/>
    <part name="qName" type="xsd:QName"/>
  </message>

  <message name="inputHexBinary">
    <part name="inHexBinary" type="xsd:hexBinary"/>
    <part name="hexBinary" type="xsd:hexBinary"/>
  </message>

  <message name="outputHexBinary">
    <part name="outHexBinary" type="xsd:hexBinary"/>
    <part name="hexBinary" type="xsd:hexBinary"/>
  </message>

  <message name="inputTime">
    <part name="inTime" type="xsd:time"/>
    <part name="time" type="xsd:time"/>
  </message>

  <message name="outputTime">
    <part name="outTime" type="xsd:time"/>
    <part name="time" type="xsd:time"/>
  </message>

  <message name="inputUnsignedLong">
    <part name="inUnsignedLong" type="xsd:unsignedLong"/>
    <part name="unsignedLong" type="xsd:unsignedLong"/>
  </message>

  <message name="outputUnsignedLong">
    <part name="outUnsignedLong" type="xsd:unsignedLong"/>
    <part name="unsignedLong" type="xsd:unsignedLong"/>
  </message>

  <message name="inputUnsignedInt">
    <part name="inUnsignedInt" type="xsd:unsignedInt"/>
    <part name="unsignedInt" type="xsd:unsignedInt"/>
  </message>

  <message name="outputUnsignedInt">
    <part name="outUnsignedInt" type="xsd:unsignedInt"/>
    <part name="unsignedInt" type="xsd:unsignedInt"/>
  </message>

  <message name="inputUnsignedShort">
    <part name="inUnsignedShort" type="xsd:unsignedShort"/>
    <part name="unsignedShort" type="xsd:unsignedShort"/>
  </message>

  <message name="outputUnsignedShort">
    <part name="outUnsignedShort" type="xsd:unsignedShort"/>
    <part name="unsignedShort" type="xsd:unsignedShort"/>
  </message>

  <message name="inputUnsignedByte">
    <part name="inUnsignedByte" type="xsd:unsignedByte"/>
    <part name="unsignedByte" type="xsd:unsignedByte"/>
  </message>

  <message name="outputUnsignedByte">
    <part name="outUnsignedByte" type="xsd:unsignedByte"/>
    <part name="unsignedByte" type="xsd:unsignedByte"/>
  </message>

  <message name="inputNonNegativeInteger">
    <part name="inNonNegativeInteger" type="xsd:nonNegativeInteger"/>
    <part name="NonNegativeInteger" type="xsd:nonNegativeInteger"/>
  </message>

  <message name="outputNonNegativeInteger">
    <part name="outNonNegativeInteger" type="xsd:nonNegativeInteger"/>
    <part name="NonNegativeInteger" type="xsd:nonNegativeInteger"/>
  </message>

  <message name="inputPositiveInteger">
    <part name="inPositiveInteger" type="xsd:positiveInteger"/>
    <part name="PositiveInteger" type="xsd:positiveInteger"/>
  </message>

  <message name="outputPositiveInteger">
    <part name="outPositiveInteger" type="xsd:positiveInteger"/>
    <part name="PositiveInteger" type="xsd:positiveInteger"/>
  </message>

  <message name="inputNonPositiveInteger">
    <part name="inNonPositiveInteger" type="xsd:nonPositiveInteger"/>
    <part name="NonPositiveInteger" type="xsd:nonPositiveInteger"/>
  </message>

  <message name="outputNonPositiveInteger">
    <part name="outNonPositiveInteger" type="xsd:nonPositiveInteger"/>
    <part name="NonPositiveInteger" type="xsd:nonPositiveInteger"/>
  </message>

  <message name="inputNegativeInteger">
    <part name="inNegativeInteger" type="xsd:negativeInteger"/>
    <part name="NegativeInteger" type="xsd:negativeInteger"/>
  </message>

  <message name="outputNegativeInteger">
    <part name="outNegativeInteger" type="xsd:negativeInteger"/>
    <part name="NegativeInteger" type="xsd:negativeInteger"/>
  </message>

  <message name="inputAnyURI">
    <part name="inAnyURI" type="xsd:anyURI"/>
    <part name="anyURI" type="xsd:anyURI"/>
  </message>

  <message name="outputAnyURI">
    <part name="outAnyURI" type="xsd:anyURI"/>
    <part name="anyURI" type="xsd:anyURI"/>
  </message>

  <message name="inputSimpleAnyURI">
    <part name="inAnyURI" type="typens2:SimpleAnyURIType"/>
    <part name="anyURI" type="typens2:SimpleAnyURIType"/>
  </message>

  <message name="outputSimpleAnyURI">
    <part name="outAnyURI" type="typens2:SimpleAnyURIType"/>
    <part name="anyURI" type="typens2:SimpleAnyURIType"/>
  </message>

  <message name="inputYear">
    <part name="inYear" type="xsd:gYear"/>
    <part name="Year" type="xsd:gYear"/>
  </message>

  <message name="outputYear">
    <part name="outYear" type="xsd:gYear"/>
    <part name="Year" type="xsd:gYear"/>
  </message>

  <message name="inputMonth">
    <part name="inMonth" type="xsd:gMonth"/>
    <part name="Month" type="xsd:gMonth"/>
  </message>

  <message name="outputMonth">
    <part name="outMonth" type="xsd:gMonth"/>
    <part name="Month" type="xsd:gMonth"/>
  </message>

  <message name="inputDay">
    <part name="inDay" type="xsd:gDay"/>
    <part name="Day" type="xsd:gDay"/>
  </message>

  <message name="outputDay">
    <part name="outDay" type="xsd:gDay"/>
    <part name="Day" type="xsd:gDay"/>
  </message>

  <message name="inputYearMonth">
    <part name="inYearMonth" type="xsd:gYearMonth"/>
    <part name="YearMonth" type="xsd:gYearMonth"/>
  </message>

  <message name="outputYearMonth">
    <part name="outYearMonth" type="xsd:gYearMonth"/>
    <part name="YearMonth" type="xsd:gYearMonth"/>
  </message>

  <message name="inputMonthDay">
    <part name="inMonthDay" type="xsd:gMonthDay"/>
    <part name="MonthDay" type="xsd:gMonthDay"/>
  </message>

  <message name="outputMonthDay">
    <part name="outMonthDay" type="xsd:gMonthDay"/>
    <part name="MonthDay" type="xsd:gMonthDay"/>
  </message>

  <message name="inputSoapString">
    <part name="inSoapString" type="soapenc:string"/>
    <part name="soapencString" type="soapenc:string"/>
  </message>

  <message name="outputSoapString">
    <part name="outSoapString" type="soapenc:string"/>
    <part name="soapencString" type="soapenc:string"/>
  </message>

  <message name="inputSoapBoolean">
    <part name="inSoapBoolean" type="soapenc:boolean"/>
    <part name="soapencBoolean" type="soapenc:boolean"/>
  </message>

  <message name="outputSoapBoolean">
    <part name="outSoapBoolean" type="soapenc:boolean"/>
    <part name="soapencBoolean" type="soapenc:boolean"/>
  </message>

  <message name="inputSoapFloat">
    <part name="inSoapFloat" type="soapenc:float"/>
    <part name="soapencFloat" type="soapenc:float"/>
  </message>

  <message name="outputSoapFloat">
    <part name="outSoapFloat" type="soapenc:float"/>
    <part name="soapencFloat" type="soapenc:float"/>
  </message>

  <message name="inputSoapDouble">
    <part name="inSoapDouble" type="soapenc:double"/>
    <part name="soapencDouble" type="soapenc:double"/>
  </message>

  <message name="outputSoapDouble">
    <part name="outSoapDouble" type="soapenc:double"/>
    <part name="soapencDouble" type="soapenc:double"/>
  </message>

  <message name="inputSoapDecimal">
    <part name="inSoapDecimal" type="soapenc:decimal"/>
    <part name="soapencDecimal" type="soapenc:decimal"/>
  </message>

  <message name="outputSoapDecimal">
    <part name="outSoapDecimal" type="soapenc:decimal"/>
    <part name="soapencDecimal" type="soapenc:decimal"/>
  </message>

  <message name="inputSoapInt">
    <part name="inSoapInt" type="soapenc:int"/>
    <part name="soapencInt" type="soapenc:int"/>
  </message>

  <message name="outputSoapInt">
    <part name="outSoapInt" type="soapenc:int"/>
    <part name="soapencInt" type="soapenc:int"/>
  </message>

  <message name="inputSoapShort">
    <part name="inSoapShort" type="soapenc:short"/>
    <part name="soapencShort" type="soapenc:short"/>
  </message>

  <message name="outputSoapShort">
    <part name="outSoapShort" type="soapenc:short"/>
    <part name="soapencShort" type="soapenc:short"/>
  </message>

  <message name="inputSoapBase64">
    <part name="inSoapBase64" type="soapenc:base64"/>
    <part name="soapencBase64" type="soapenc:base64"/>
  </message>

  <message name="outputSoapBase64">
    <part name="outSoapBase64" type="soapenc:base64"/>
    <part name="soapencBase64" type="soapenc:base64"/>
  </message>
                     
  <message name="enum">
    <part name="enum" type="typens:enum"/>
  </message>

  <message name="enumInt">
    <part name="enumInt" type="typens:enumInt"/>
  </message>

  <message name="array">
    <part name="array" type="typens:array"/>
  </message>

  <message name="arrayM">
    <part name="arrayM" type="typens:arrayM"/>
  </message>

  <message name="complexAll">
    <part name="complexAll" type="typens:complexAll"/>
  </message>

  <message name="complexSequence">
    <part name="complexSequence" type="typens:complexSequence"/>
  </message>

  <message name="complexWComplex">
    <part name="complexWComplex" type="typens:complexWComplex"/>
  </message>

  <message name="any">
    <part name="any" type="xsd:anyType"/>
  </message>

  <message name="animal">
    <part name="animal" type="typens:Animal"/>
  </message>

  <message name="cat">
    <part name="cat" type="typens:Cat"/>
  </message>

  <message name="emptyFault">
    <part name="theFault" type="typens:emptyFault" />
  </message>

  <message name="faultWithElement">
    <part name="fault2" element="typens:faultElement" />
  </message>

  <message name="emptyComplexType">
    <part name="emptyComplexType" type="typens:emptyComplexType" />
  </message>

  <!-- port type declns -->
  <portType name="TypeTest">
    <operation name="allPrimitivesIn">
      <input message="tns:allPrimitives"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="allPrimitivesInout">
      <input message="tns:allPrimitives"/>
      <output message="tns:allPrimitives"/>
    </operation>
    <operation name="allPrimitivesOut">
      <input message="tns:empty"/>
      <output message="tns:allPrimitives"/>
    </operation>
    <operation name="enumIn">
      <input message="tns:enum"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="enumInout">
      <input message="tns:enum"/>
      <output message="tns:enum"/>
    </operation>
    <operation name="enumOut" parameterOrder="enum">
      <input message="tns:empty"/>
      <output message="tns:enum"/>
    </operation>
    <operation name="enumReturn">
      <input message="tns:empty"/>
      <output message="tns:enum"/>
    </operation>
    <operation name="enumIntIn">
      <input message="tns:enumInt"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="enumIntInout">
      <input message="tns:enumInt"/>
      <output message="tns:enumInt"/>
    </operation>
    <operation name="enumIntOut" parameterOrder="enumInt">
      <input message="tns:empty"/>
      <output message="tns:enumInt"/>
    </operation>
    <operation name="enumIntReturn">
      <input message="tns:empty"/>
      <output message="tns:enumInt"/>
    </operation>
    <operation name="arrayIn">
      <input message="tns:array"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="arrayInout">
      <input message="tns:array"/>
      <output message="tns:array"/>
    </operation>
    <operation name="arrayOut" parameterOrder="array">
      <input message="tns:empty"/>
      <output message="tns:array"/>
    </operation>
    <operation name="arrayReturn">
      <input message="tns:empty"/>
      <output message="tns:array"/>
    </operation>

    <operation name="arrayMIn">
      <input message="tns:arrayM"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="arrayMInout">
      <input message="tns:arrayM"/>
      <output message="tns:arrayM"/>
    </operation>
    <operation name="arrayMOut" parameterOrder="arrayM">
      <!-- BUG: type emptyM not defined ! Replacing by type empty
      	for the time being.
      -->
      <input message="tns:empty"/>
      <output message="tns:arrayM"/>
    </operation>
    <operation name="arrayMReturn">
      <!-- BUG: type emptyM not defined ! Replacing by type empty
      	for the time being.
      -->
      <input message="tns:empty"/>      
      <output message="tns:arrayM"/>
    </operation>

    <operation name="complexAllIn">
      <input message="tns:complexAll"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="complexAllInout">
      <input message="tns:complexAll"/>
      <output message="tns:complexAll"/>
    </operation>
    <operation name="complexAllOut" parameterOrder="complexAll">
      <input message="tns:empty"/>
      <output message="tns:complexAll"/>
    </operation>
    <operation name="complexAllReturn">
      <input message="tns:empty"/>
      <output message="tns:complexAll"/>
    </operation>
    <operation name="complexSequenceIn">
      <input message="tns:complexSequence"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="complexSequenceInout">
      <input message="tns:complexSequence"/>
      <output message="tns:complexSequence"/>
    </operation>
    <operation name="complexSequenceOut" parameterOrder="complexSequence">
      <input message="tns:empty"/>
      <output message="tns:complexSequence"/>
    </operation>
    <operation name="complexSequenceReturn">
      <input message="tns:empty"/>
      <output message="tns:complexSequence"/>
    </operation>
    <operation name="complexWComplexIn">
      <input message="tns:complexWComplex"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="complexWComplexInout">
      <input message="tns:complexWComplex"/>
      <output message="tns:complexWComplex"/>
    </operation>
    <operation name="complexWComplexOut" parameterOrder="complexWComplex">
      <input message="tns:empty"/>
      <output message="tns:complexWComplex"/>
    </operation>
    <operation name="complexWComplexReturn">
      <input message="tns:empty"/>
      <output message="tns:complexWComplex"/>
    </operation>
    <operation name="emptyComplexTypeIn" parameterOrder="emptyComplexType">
      <input message="tns:emptyComplexType"/>
      <output message="tns:empty"/>
      <fault name="emptyFault" message="tns:emptyFault"/>
        <!-- Can't have faults with <part element=""> in an RPC service...
             Don't know what the intent was here, but since no one is actually
             throwing this fault, commenting it out because it's now triggering
             our more-draconian error checking.
             
      <fault name="faultWithElement" message="tns:faultWithElement"/>
      -->
    </operation>
    <operation name="emptyComplexTypeInout" parameterOrder="emptyComplexType">
      <input message="tns:emptyComplexType"/>
      <output message="tns:emptyComplexType"/>
      <fault name="emptyFault" message="tns:emptyFault"/>
    </operation>
    <operation name="emptyComplexTypeOut" parameterOrder="emptyComplexType">
      <input message="tns:empty"/>
      <output message="tns:emptyComplexType"/>
      <fault name="emptyFault" message="tns:emptyFault"/>
    </operation>
    <operation name="emptyComplexTypeReturn">
      <input message="tns:empty"/>
      <output message="tns:emptyComplexType"/>
      <fault name="emptyFault" message="tns:emptyFault"/>
    </operation>
    <operation name="anyIn">
      <input message="tns:any"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="anyInout">
      <input message="tns:any"/>
      <output message="tns:any"/>
    </operation>
    <operation name="anyOut" parameterOrder="any">
      <input message="tns:empty"/>
      <output message="tns:any"/>
    </operation>
    <operation name="anyReturn">
      <input message="tns:empty"/>
      <output message="tns:any"/>
    </operation>
    <operation name="animalIn">
      <input message="tns:animal"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="animalInout">
      <input message="tns:animal"/>
      <output message="tns:animal"/>
    </operation>
    <operation name="animalOut" parameterOrder="animal">
      <input message="tns:empty"/>
      <output message="tns:animal"/>
    </operation>
    <operation name="animalReturn">
      <input message="tns:empty"/>
      <output message="tns:animal"/>
    </operation>
    <operation name="catIn">
      <input message="tns:cat"/>
      <output message="tns:empty"/>
    </operation>
    <operation name="catInout">
      <input message="tns:cat"/>
      <output message="tns:cat"/>
    </operation>
    <operation name="catOut" parameterOrder="cat">
      <input message="tns:empty"/>
      <output message="tns:cat"/>
    </operation>
    <operation name="catReturn">
      <input message="tns:empty"/>
      <output message="tns:cat"/>
    </operation>
    <operation name="methodBoolean">
      <input message="tns:inputBoolean"/>
      <output message="tns:outputBoolean"/>
    </operation>
    <operation name="methodByte">
      <input message="tns:inputByte"/>
      <output message="tns:outputByte"/>
    </operation>
    <operation name="methodShort">
      <input message="tns:inputShort"/>
      <output message="tns:outputShort"/>
    </operation>
    <operation name="methodInt">
      <input message="tns:inputInt"/>
      <output message="tns:outputInt"/>
    </operation>
    <operation name="methodLong">
      <input message="tns:inputLong"/>
      <output message="tns:outputLong"/>
    </operation>
    <operation name="methodFloat">
      <input message="tns:inputFloat"/>
      <output message="tns:outputFloat"/>
    </operation>
    <operation name="methodDouble">
      <input message="tns:inputDouble"/>
      <output message="tns:outputDouble"/>
    </operation>
    <operation name="methodString">
      <input message="tns:inputString"/>
      <output message="tns:outputString"/>
    </operation>
    <operation name="methodInteger">
      <input message="tns:inputInteger"/>
      <output message="tns:outputInteger"/>
    </operation>
    <operation name="methodDecimal">
      <input message="tns:inputDecimal"/>
      <output message="tns:outputDecimal"/>
    </operation>
    <operation name="methodDateTime">
      <input message="tns:inputDateTime"/>
      <output message="tns:outputDateTime"/>
    </operation>    
    <!-- Comment out for now because causes compile errors
    <operation name="methodBase64Binary">
      <input message="tns:inputBase64Binary"/>
      <output message="tns:outputBase64Binary"/>
    </operation>
    -->
    <operation name="methodQName">
      <input message="tns:inputQName"/>
      <output message="tns:outputQName"/>
    </operation>    
    <!-- Comment out for now because causes compile errors
    <operation name="methodHexBinary">
      <input message="tns:inputHexBinary"/>
      <output message="tns:outputHexBinary"/>
    </operation>
    -->
    <operation name="methodTime">
      <input message="tns:inputTime"/>
      <output message="tns:outputTime"/>
    </operation>    
    <operation name="methodUnsignedLong">
      <input message="tns:inputUnsignedLong"/>
      <output message="tns:outputUnsignedLong"/>
    </operation>    
    <operation name="methodUnsignedInt">
      <input message="tns:inputUnsignedInt"/>
      <output message="tns:outputUnsignedInt"/>
    </operation>    
    <operation name="methodUnsignedShort">
      <input message="tns:inputUnsignedShort"/>
      <output message="tns:outputUnsignedShort"/>
    </operation>    
    <operation name="methodUnsignedByte">
      <input message="tns:inputUnsignedByte"/>
      <output message="tns:outputUnsignedByte"/>
    </operation>
    <operation name="methodNonNegativeInteger">
      <input message="tns:inputNonNegativeInteger"/>
      <output message="tns:outputNonNegativeInteger"/>
    </operation>    
    <operation name="methodPositiveInteger">
      <input message="tns:inputPositiveInteger"/>
      <output message="tns:outputPositiveInteger"/>
    </operation>    
    <operation name="methodNonPositiveInteger">
      <input message="tns:inputNonPositiveInteger"/>
      <output message="tns:outputNonPositiveInteger"/>
    </operation>    
    <operation name="methodNegativeInteger">
      <input message="tns:inputNegativeInteger"/>
      <output message="tns:outputNegativeInteger"/>
    </operation>    
    <operation name="methodAnyURI">
      <input message="tns:inputAnyURI"/>
      <output message="tns:outputAnyURI"/>
    </operation>
    <operation name="methodSimpleAnyURI">
      <input message="tns:inputSimpleAnyURI"/>
      <output message="tns:outputSimpleAnyURI"/>
    </operation>
    <operation name="methodYear">
      <input message="tns:inputYear"/>
      <output message="tns:outputYear"/>
    </operation>    
    <operation name="methodMonth">
      <input message="tns:inputMonth"/>
      <output message="tns:outputMonth"/>
    </operation>    
    <operation name="methodDay">
      <input message="tns:inputDay"/>
      <output message="tns:outputDay"/>
    </operation>    
    <operation name="methodYearMonth">
      <input message="tns:inputYearMonth"/>
      <output message="tns:outputYearMonth"/>
    </operation>    
    <operation name="methodMonthDay">
      <input message="tns:inputMonthDay"/>
      <output message="tns:outputMonthDay"/>
    </operation>    
    <operation name="methodSoapString">
      <input message="tns:inputSoapString"/>
      <output message="tns:outputSoapString"/>
    </operation>
    <operation name="methodSoapBoolean">
      <input message="tns:inputSoapBoolean"/>
      <output message="tns:outputSoapBoolean"/>
    </operation>
    <operation name="methodSoapFloat">
      <input message="tns:inputSoapFloat"/>
      <output message="tns:outputSoapFloat"/>
    </operation>
    <operation name="methodSoapDouble">
      <input message="tns:inputSoapDouble"/>
      <output message="tns:outputSoapDouble"/>
    </operation>
    <operation name="methodSoapDecimal">
      <input message="tns:inputSoapDecimal"/>
      <output message="tns:outputSoapDecimal"/>
    </operation>
    <operation name="methodSoapInt">
      <input message="tns:inputSoapInt"/>
      <output message="tns:outputSoapInt"/>
    </operation>
    <operation name="methodSoapShort">
      <input message="tns:inputSoapShort"/>
      <output message="tns:outputSoapShort"/>
    </operation>    
    <!-- Comment out for now because causes compile errors 
    <operation name="methodSoapBase64">
      <input message="tns:inputSoapBase64"/>
      <output message="tns:outputSoapBase64"/>
    </operation>
    -->
  </portType>

  <!-- binding declns -->
  <binding name="TypeTestBinding" type="tns:TypeTest">
    <soap:binding
        style="rpc"
        transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="allPrimitivesIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="allPrimitivesInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="allPrimitivesOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="enumIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="enumInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="enumOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="enumReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="enumIntIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="enumIntInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="enumIntOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="enumIntReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="arrayIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="arrayInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="arrayOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="arrayReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>

    <operation name="arrayMIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="arrayMInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="arrayMOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="arrayMReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>

    <operation name="complexAllIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexAllInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexAllOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexAllReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexSequenceIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexSequenceInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexSequenceOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexSequenceReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexWComplexIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexWComplexInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexWComplexOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="complexWComplexReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="emptyComplexTypeIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
      <fault name="emptyFault">
          <soap:fault name="emptyFault" use="encoded"/>
      </fault>
    </operation>
    <operation name="emptyComplexTypeInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
      <fault name="emptyFault">
        <soap:fault name="emptyFault" use="encoded"/>
      </fault>
    </operation>
    <operation name="emptyComplexTypeOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
      <fault name="emptyFault">
        <soap:fault name="emptyFault" use="encoded"/>
      </fault>
    </operation>
    <operation name="emptyComplexTypeReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
      <fault name="emptyFault">
        <soap:fault name="emptyFault" use="encoded"/>
      </fault>
    </operation>
    <operation name="anyIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="anyInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="anyOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="anyReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="animalIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="animalInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="animalOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="animalReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="catIn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="catInout">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="catOut">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="catReturn">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodBoolean">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodByte">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodShort">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodInt">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodLong">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodFloat">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodDouble">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodString">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodInteger">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodDecimal">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodDateTime">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <!-- Comment out for now because causes compile errors
    <operation name="methodBase64Binary">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    -->
    <operation name="methodQName">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <!-- Comment out for now because causes compile errors
    <operation name="methodHexBinary">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    -->
    <operation name="methodTime">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodUnsignedLong">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodUnsignedInt">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodUnsignedShort">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodUnsignedByte">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodNonNegativeInteger">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodPositiveInteger">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodNonPositiveInteger">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodNegativeInteger">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    
    <operation name="methodAnyURI">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodSimpleAnyURI">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodYear">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodMonth">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodDay">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodYearMonth">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodMonthDay">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>    
    <operation name="methodSoapString">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodSoapBoolean">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodSoapFloat">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodSoapDouble">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodSoapDecimal">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodSoapInt">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    <operation name="methodSoapShort">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>  
    <!-- Comment out for now because causes compile errors
    <operation name="methodSoapBase64">
      <soap:operation soapAction=""/>
      <input>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </input>
      <output>
        <soap:body
            use="encoded"
            namespace=""
            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </output>
    </operation>
    -->
  </binding>

  <!-- service decln -->
  <service name="TypeTestService">
    <port name="TypeTest" binding="tns:TypeTestBinding">
      <soap:address location="http://localhost:8080/axis/services/TypeTest"/>
    </port>
  </service>

</definitions>

