dims        2003/01/19 13:25:11

  Modified:    java/src/org/apache/axis Constants.java
               java/src/org/apache/axis/wsdl/symbolTable FaultInfo.java
                        SymbolTable.java
               java/src/org/apache/axis/wsdl/toJava JavaSkelWriter.java
                        JavaStubWriter.java Utils.java
               java/test/soap12 TestDeser.java TestHrefs.java TestRPC.java
                        TestVersionMismatch.java
               java/src/org/apache/axis/utils WSDLUtils.java
  Added:       java/test/wsdl/soap12/assertion build.xml soap12-test.wsdl
                        Soap12TestDocBindingImpl.java
                        Soap12TestRpcBindingImpl.java
                        WhiteMesaSoap12TestSvcTestCase.java
               java/test/wsdl/soap12/additional soap12-add-test.wsdl
  Log:
  - Updating to latest SOAP1.2 CR (http://www.w3.org/TR/soap12-part1/)
  - Upgrading WSDL2Java to support WSDL 1.2 as well 
(http://www.w3.org/TR/2002/WD-wsdl12-20020709/)
  - Started work on test cases for both in test\wsdl\soap12 directory
  - Picked up 2 wsdls from http://www.whitemesa.net/test-soap12/soap12-test-index.htm
  - Currently test\wsdl\soap12\additional\soap12-add-test.wsdl points to WhiteMesa's 
endpoint.
  
  Notes:
  - FYI, WSDL4J does not support DIME or SOAP1.2. Had to use 
UnknownExtensibilityElement to extract info :-(
  
  Revision  Changes    Path
  1.1                  xml-axis/java/test/wsdl/soap12/assertion/build.xml
  
  Index: build.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE project [
          <!ENTITY properties SYSTEM "file:../../../../xmls/properties.xml">
          <!ENTITY paths  SYSTEM "file:../../../../xmls/path_refs.xml">
          <!ENTITY taskdefs SYSTEM "file:../../../../xmls/taskdefs.xml">
          <!ENTITY taskdefs_post_compile SYSTEM 
"file:../../../../xmls/taskdefs_post_compile.xml">
          <!ENTITY targets SYSTEM "file:../../../../xmls/targets.xml">
  ]>
  
  <!-- ===================================================================
  <description>
  Test/Sample Component file for Axis
  
  Notes:
  This is a build file for use with the Jakarta Ant build tool.
  
  Prerequisites:
  
  jakarta-ant from http://jakarta.apache.org
  
  Build Instructions:
  To compile
  ant compile
  To execute
  ant run
  
  Author:
  Matt Seibert [EMAIL PROTECTED]
  Glen Daniels [EMAIL PROTECTED]
  
  Copyright:
  Copyright (c) 2002-2003 Apache Software Foundation.
  </description>
  ==================================================================== -->
  
  <project name="Round4" default="compile">
      <property name="axis.home" location="../../../.." />
      <property name="componentName" value="test/wsdl/soap12/assertion" />
      &properties;
      &paths;
      &taskdefs;
      &taskdefs_post_compile;
      &targets;
      <property name="root.dir" value="../../../.."/>
      <target name="clean">
          <echo message="Removing ${build.dir}/classes/${componentName} and 
${build.dir}/work/${componentName}" />
          <delete dir="${build.dir}/classes/${componentName}"/>
          <delete dir="${build.dir}/work/${componentName}"/>
      </target>
      
      <target name="compile" depends="setenv">
          <property name="testname" value="assertion"/>
          
          <!-- generate skeletons -->
          <wsdl2java url="${axis.home}/test/wsdl/soap12/assertion/soap12-test.wsdl"
              output="${root.dir}/build/work" skeletonDeploy="no" testCase="yes" 
timeout="-1"
              serverSide="yes">
              <mapping namespace="http://whitemesa.net/wsdl/soap12-test"; 
package="test.wsdl.soap12.assertion"/>
              <mapping namespace="http://example.org/ts-tests/xsd"; 
package="test.wsdl.soap12.assertion.xsd"/>
          </wsdl2java>
          
          <mkdir dir="${build.dest}"/>
  
          <copy todir="${build.dir}/work/test/wsdl/soap12/assertion" overwrite="yes">
            <fileset dir="${axis.home}/test/wsdl/soap12/assertion">
              <include name="*TestCase.java"/>
              <include name="*Impl.java"/>
            </fileset>
          </copy>
  
          <!-- compile the code -->
          <javac srcdir="${build.dir}/work"
              destdir="${build.dest}" debug="on">
              <classpath refid="classpath" />
              <include name="test/wsdl/soap12/assertion/**/*.java" />
          </javac>
      </target>
      
      <target name="run" >
          <antcall target="execute-Component" />
      </target>
      
  </project>
  
  
  
  1.1                  xml-axis/java/test/wsdl/soap12/assertion/soap12-test.wsdl
  
  Index: soap12-test.wsdl
  ===================================================================
  <?xml version="1.0"?>
  
  <definitions name="SOAP-12-TestDefinitions"
        targetNamespace="http://whitemesa.net/wsdl/soap12-test";
        xmlns="http://schemas.xmlsoap.org/wsdl/";
        xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
        xmlns:xsd="http://www.w3.org/2001/XMLSchema";
        xmlns:enc="http://www.w3.org/2002/12/soap-encoding";
        xmlns:tns="http://whitemesa.net/wsdl/soap12-test";
        xmlns:types="http://example.org/ts-tests/xsd";
        xmlns:test="http://example.org/ts-tests";
        xmlns:xlink="http://www.w3.org/1999/xlink";
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>
        <types>
                <schema xmlns="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="http://example.org/ts-tests/xsd";>
  
                        <import namespace="http://www.w3.org/2002/12/soap-encoding"; />
  
                        <complexType name="ArrayOfstring">
                                <complexContent>
                                        <restriction base="enc:Array">
                                                <sequence>
                                                        <element name="item" 
type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
                                                </sequence>
                                                <attributeGroup 
ref="enc:arrayAttributes" /> 
                                                <attributeGroup 
ref="enc:commonAttributes" /> 
                                        </restriction>
                                </complexContent>
                        </complexType>
  
                        <complexType name="ArrayOfint">
                                <complexContent>
                                        <restriction base="enc:Array">
                                                <sequence>
                                                        <element name="item" 
type="xsd:int" minOccurs="0" maxOccurs="unbounded"/>
                                                </sequence>
                                                <attributeGroup 
ref="enc:arrayAttributes" /> 
                                                <attributeGroup 
ref="enc:commonAttributes" /> 
                                        </restriction>
                                </complexContent>
                        </complexType>
  
                        <complexType name="ArrayOffloat">
                                <complexContent>
                                        <restriction base="enc:Array">
                                                <sequence>
                                                        <element name="item" 
type="xsd:float" minOccurs="0" maxOccurs="unbounded"/>
                                                </sequence>
                                                <attributeGroup 
ref="enc:arrayAttributes" /> 
                                                <attributeGroup 
ref="enc:commonAttributes" /> 
                                        </restriction>
                                </complexContent>
                        </complexType>
  
                        <complexType name="ArrayOfSOAPStruct">
                                <complexContent>
                                        <restriction base="enc:Array">
                                                <sequence>
                                                        <element name="item" 
type="types:SOAPStruct" minOccurs="0" maxOccurs="unbounded"/>
                                                </sequence>
                                                <attributeGroup 
ref="enc:arrayAttributes" /> 
                                                <attributeGroup 
ref="enc:commonAttributes" /> 
                                        </restriction>
                                </complexContent>
                        </complexType>
  
                        <complexType name="SOAPStruct">
                                <all>
                                        <element name="varString" type="xsd:string"/>
                                        <element name="varInt" type="xsd:int"/>
                                        <element name="varFloat" type="xsd:float"/>
                                </all>
                        </complexType>
                        <complexType name="SOAPStructStruct">
                                <all>
                                        <element name="varString" type="xsd:string"/>
                                        <element name="varInt" type="xsd:int"/>
                                        <element name="varFloat" type="xsd:float"/>
                                        <element name="varStruct" 
type="types:SOAPStruct"/>
                                </all>
                        </complexType>
  
                        <complexType name="SOAPArrayStruct">
                                <all>
                                        <element name="varString" type="xsd:string"/>
                                        <element name="varInt" type="xsd:int"/>
                                        <element name="varFloat" type="xsd:float"/>
                                        <element name="varArray" 
type="types:ArrayOfstring"/>
                                </all>
                        </complexType>
  
                </schema>
  
                <schema xmlns="http://www.w3.org/2001/XMLSchema";
                        elementFormDefault="qualified"
                        targetNamespace="http://example.org/ts-tests";>
  
                        <import namespace="http://www.w3.org/1999/xlink"; />
  
                        <!-- 3.2.1 echoOk -->
                        <element name="echoOk" type="xsd:string"/>
  
                        <!-- 3.2.2 responseOk -->
                        <element name="responseOk" type="xsd:string"/>
  
                        <!-- 3.2.3 Ignore -->
                        <element name="Ignore" type="xsd:string"/>
  
                        <!-- 3.2.4 requiredHeader -->
                        <element name="requiredHeader" type="xsd:string"/>
  
                        <!-- 3.2.5 DataHolder -->
                        <element name="DataHolder" type="test:DataHolder_t"/>
                        <complexType name="DataHolder_t">
                                <sequence>
                                        <element name="Data" type="xsd:string" 
minOccurs="1" maxOccurs="unbounded"/>
                                </sequence>
                        </complexType>
  
                        <!-- 3.2.6 concatAndForwardEchoOk -->
                        <element name="concatAndForwardEchoOk"/>
  
                        <!-- 3.2.7 concatAndForwardEchoOkArg1 -->
                        <element name="concatAndForwardEchoOkArg1" type="xsd:string"/>
  
                        <!-- 3.2.8 concatAndForwardEchoOkArg2 -->
                        <element name="concatAndForwardEchoOkArg2" type="xsd:string"/>
  
                        <!-- 3.2.9 validateCountryCode -->
                        <element name="validateCountryCode" type="xsd:string"/>
  
                        <!-- 3.2.10 validateCountryCodeFault -->
                        <element name="validateCountryCodeFault" type="xsd:string"/>
  
                        <!-- 3.2.11 echoResolvedRef -->
                        <element name="RelativeReference" 
type="test:RelativeReference_t"/>
                        <complexType name="RelativeReference_t">
                                <attribute ref="xml:base"/>
                                <attribute ref="xlink:href"/>
                        </complexType>
  
                        <element name="echoResolvedRef" type="test:echoResolvedRef_t"/>
                        <complexType name="echoResolvedRef_t">
                                <complexContent>
                                        <sequence>
                                                <element ref="test:RelativeReference" 
minOccurs="1" maxOccurs="1"/>
                                        </sequence>
                                </complexContent>
                        </complexType>
  
                        <!-- 3.2.12 responseResolvedRef -->
                        <element name="responseResolvedRef" type="xsd:string"/>
  
                        <!-- echoOkUltimateReceiver added to support testing of 
"relay" -->
                        <element name="echoOkUltimateReceiver" type="xsd:string"/>
  
                        <!-- responseOkUltimateReceiver added to support testing of 
"relay" -->
                        <element name="responseOkUltimateReceiver" type="xsd:string"/>
  
                </schema>
  
        </types>
  
        <!-- 3.4.1 returnVoid rpc operation -->
        <message name="returnVoidRequest"/>
        <message name="returnVoidResponse"/>
  
        <!-- 3.4.2 echoStruct rpc operation -->
        <message name="echoStructRequest">
                <part name="inputStruct" type="types:SOAPStruct"/>
        </message>
        <message name="echoStructResponse">
                <part name="return" type="types:SOAPStruct"/>
        </message>
  
        <!-- 3.4.3 echoStructArray rpc operation -->
        <message name="echoStructArrayRequest">
                <part name="inputStructArray" type="types:ArrayOfSOAPStruct"/>
        </message>
        <message name="echoStructArrayResponse">
                <part name="return" type="types:ArrayOfSOAPStruct"/>
        </message>
  
        <!-- 3.4.4 echoStructAsSimpleTypes rpc operation -->
        <message name="echoStructAsSimpleTypesRequest">
                <part name="inputStruct" type="types:SOAPStruct"/>
        </message>
        <message name="echoStructAsSimpleTypesResponse">
                <part name="outputString" type="xsd:string"/>
                <part name="outputInteger" type="xsd:int"/>
                <part name="outputFloat" type="xsd:float"/>
        </message>
  
        <!-- 3.4.5 echoSimpleTypesAsStruct rpc operation -->
        <message name="echoSimpleTypesAsStructRequest">
                <part name="inputString" type="xsd:string"/>
                <part name="inputInteger" type="xsd:int"/>
                <part name="inputFloat" type="xsd:float"/>
        </message>
        <message name="echoSimpleTypesAsStructResponse">
                <part name="return" type="types:SOAPStruct"/>
        </message>
  
        <!-- 3.4.6 echoNestedStruct rpc operation -->
        <message name="echoNestedStructRequest">
                <part name="inputStruct" type="types:SOAPStructStruct"/>
        </message>
        <message name="echoNestedStructResponse">
                <part name="return" type="types:SOAPStructStruct"/>
        </message>
  
        <!-- 3.4.7 echoNestedArray rpc operation -->
        <message name="echoNestedArrayRequest">
                <part name="inputStruct" type="types:SOAPArrayStruct"/>
        </message>
        <message name="echoNestedArrayResponse">
                <part name="return" type="types:SOAPArrayStruct"/>
        </message>
  
        <!-- 3.4.8 echoFloatArray rpc operation -->
        <message name="echoFloatArrayRequest">
                <part name="inputFloatArray" type="types:ArrayOffloat"/>
        </message>
        <message name="echoFloatArrayResponse">
                <part name="return" type="types:ArrayOffloat"/>
        </message>
  
        <!-- 3.4.9 echoStringArray rpc operation -->
        <message name="echoStringArrayRequest">
                <part name="inputStringArray" type="types:ArrayOfstring"/>
        </message>
        <message name="echoStringArrayResponse">
                <part name="return" type="types:ArrayOfstring"/>
        </message>
  
        <!-- 3.4.10 echoIntegerArray rpc operation -->
        <message name="echoIntegerArrayRequest">
                <part name="inputIntegerArray" type="types:ArrayOfint"/>
        </message>
        <message name="echoIntegerArrayResponse">
                <part name="return" type="types:ArrayOfint"/>
        </message>
  
        <!-- 3.4.11 echoBase64 rpc operation -->
        <message name="echoBase64Request">
                <part name="inputBase64" type="xsd:base64Binary"/>
        </message>
        <message name="echoBase64Response">
                <part name="return" type="xsd:base64Binary"/>
        </message>
  
        <!-- 3.4.12 echoBoolean rpc operation -->
        <message name="echoBooleanRequest">
                <part name="inputBoolean" type="xsd:boolean"/>
        </message>
        <message name="echoBooleanResponse">
                <part name="return" type="xsd:boolean"/>
        </message>
  
        <!-- 3.4.13 echoDate rpc operation -->
        <message name="echoDateRequest">
                <part name="inputDate" type="xsd:dateTime"/>
        </message>
        <message name="echoDateResponse">
                <part name="return" type="xsd:dateTime"/>
        </message>
  
        <!-- 3.4.14 echoDecimal rpc operation -->
        <message name="echoDecimalRequest">
                <part name="inputDecimal" type="xsd:decimal"/>
        </message>
        <message name="echoDecimalResponse">
                <part name="return" type="xsd:decimal"/>
        </message>
  
        <!-- 3.4.15 echoFloat rpc operation -->
        <message name="echoFloatRequest">
                <part name="inputFloat" type="xsd:float"/>
        </message>
        <message name="echoFloatResponse">
                <part name="return" type="xsd:float"/>
        </message>
  
        <!-- 3.4.16 echoString rpc operation -->
        <message name="echoStringRequest">
                <part name="inputString" type="xsd:string"/>
        </message>
        <message name="echoStringResponse">
                <part name="return" type="xsd:string"/>
        </message>
  
        <!-- 3.4.17 countItems rpc operation -->
        <message name="countItemsRequest">
                <part name="inputStringArray" type="types:ArrayOfstring"/>
        </message>
        <message name="countItemsResponse">
                <part name="return" type="xsd:int"/>
        </message>
  
        <!-- 3.4.18 isNil rpc operation -->
        <message name="isNilRequest">
                <part name="inputString" type="xsd:string"/>
        </message>
        <message name="isNilResponse">
                <part name="return" type="xsd:boolean"/>
        </message>
  
        <!-- DataHolder header block -->
        <message name="DataHolderRequest">
                <part name="DataHolder" type="test:DataHolder_t"/>
        </message>
        <message name="DataHolderResponse">
                <part name="DataHolder" type="test:DataHolder_t"/>
        </message>
  
        <!-- empty message for doc/literal testing -->
        <message name="emptyBodyRequest"/>
        <message name="emptyBodyResponse"/>
  
        <!-- echoOk body/header block -->
        <message name="echoOkRequest">
                <part name="echoOk" element="test:echoOk"/>
        </message>
        <message name="echoOkResponse">
                <part name="responseOk" element="test:responseOk"/>
        </message>
  
  
        <portType name="Soap12TestPortTypeDoc">
                <operation name="emptyBody">
                                <input message="tns:emptyBodyRequest" />
                                <output message="tns:emptyBodyResponse" />
                </operation>
                <operation name="echoOk">
                                <input message="tns:echoOkRequest" />
                                <output message="tns:echoOkResponse" />
                </operation>
        </portType>
  
        <portType name="Soap12TestPortTypeRpc">
  
                <!-- 3.4.1 returnVoid rpc operation -->
                <operation name="returnVoid">
                        <input message="tns:returnVoidRequest" name="returnVoid"/>
                        <output message="tns:returnVoidResponse" 
name="returnVoidResponse"/>
                </operation>
  
                <!-- 3.4.2 echoStruct rpc operation -->
                <operation name="echoStruct" parameterOrder="inputStruct">
                        <input message="tns:echoStructRequest" name="echoStruct"/>
                        <output message="tns:echoStructResponse" 
name="echoStructResponse"/>
                </operation>
  
                <!-- 3.4.3 echoStructArray rpc operation -->
                <operation name="echoStructArray" parameterOrder="inputStructArray">
                        <input message="tns:echoStructArrayRequest" 
name="echoStructArray"/>
                        <output message="tns:echoStructArrayResponse" 
name="echoStructArrayResponse"/>
                </operation>
  
                <!-- 3.4.4 echoStructAsSimpleTypes rpc operation -->
                <operation name="echoStructAsSimpleTypes" parameterOrder="inputStruct 
outputString outputInteger outputFloat">
                        <input message="tns:echoStructAsSimpleTypesRequest"/>
                        <output message="tns:echoStructAsSimpleTypesResponse"/>
                </operation>
  
                <!-- 3.4.5 echoSimpleTypesAsStruct rpc operation -->
                <operation name="echoSimpleTypesAsStruct" parameterOrder="inputString 
inputInteger inputFloat">
                        <input message="tns:echoSimpleTypesAsStructRequest"/>
                        <output message="tns:echoSimpleTypesAsStructResponse"/>
                </operation>
  
                <!-- 3.4.6 echoNestedStruct rpc operation -->
                <operation name="echoNestedStruct" parameterOrder="inputStruct">
                        <input message="tns:echoNestedStructRequest"/>
                        <output message="tns:echoNestedStructResponse"/>
                </operation>
  
                <!-- 3.4.7 echoNestedArray rpc operation -->
                <operation name="echoNestedArray" parameterOrder="inputStruct">
                        <input message="tns:echoNestedArrayRequest"/>
                        <output message="tns:echoNestedArrayResponse"/>
                </operation>
  
                <!-- 3.4.8 echoFloatArray rpc operation -->
                <operation name="echoFloatArray" parameterOrder="inputFloatArray">
                        <input message="tns:echoFloatArrayRequest" 
name="echoFloatArray"/>
                        <output message="tns:echoFloatArrayResponse" 
name="echoFloatArrayResponse"/>
                </operation>
  
                <!-- 3.4.9 echoStringArray rpc operation -->
                <operation name="echoStringArray" parameterOrder="inputStringArray">
                        <input message="tns:echoStringArrayRequest" 
name="echoStringArray"/>
                        <output message="tns:echoStringArrayResponse" 
name="echoStringArrayResponse"/>
                </operation>
  
                <!-- 3.4.10 echoIntegerArray rpc operation -->
                <operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
                        <input message="tns:echoIntegerArrayRequest" 
name="echoIntegerArray"/>
                        <output message="tns:echoIntegerArrayResponse" 
name="echoIntegerArrayResponse"/>
                </operation>
  
                <!-- 3.4.11 echoBase64 rpc operation -->
                <operation name="echoBase64" parameterOrder="inputBase64">
                        <input message="tns:echoBase64Request" name="echoBase64"/>
                        <output message="tns:echoBase64Response" 
name="echoBase64Response"/>
                </operation>
  
                <!-- 3.4.12 echoBoolean rpc operation -->
                <operation name="echoBoolean" parameterOrder="inputBoolean">
                        <input message="tns:echoBooleanRequest" name="echoBoolean"/>
                        <output message="tns:echoBooleanResponse" 
name="echoBooleanResponse"/>
                </operation>
  
                <!-- 3.4.13 echoDate rpc operation -->
                <operation name="echoDate" parameterOrder="inputDate">
                        <input message="tns:echoDateRequest" name="echoDate"/>
                        <output message="tns:echoDateResponse" 
name="echoDateResponse"/>
                </operation>
  
                <!-- 3.4.14 echoDecimal rpc operation -->
                <operation name="echoDecimal" parameterOrder="inputDecimal">
                        <input message="tns:echoDecimalRequest" name="echoDecimal"/>
                        <output message="tns:echoDecimalResponse" 
name="echoDecimalResponse"/>
                </operation>
  
                <!-- 3.4.15 echoFloat rpc operation -->
                <operation name="echoFloat" parameterOrder="inputFloat">
                        <input message="tns:echoFloatRequest" name="echoFloat"/>
                        <output message="tns:echoFloatResponse" 
name="echoFloatResponse"/>
                </operation>
  
                <!-- 3.4.16 echoString rpc operation -->
                <operation name="echoString" parameterOrder="inputString">
                        <input message="tns:echoStringRequest" name="echoString"/>
                        <output message="tns:echoStringResponse" 
name="echoStringResponse"/>
                </operation>
  
                <!-- 3.4.17 countItems rpc operation -->
                <operation name="countItems" parameterOrder="inputStringArray">
                        <input message="tns:countItemsRequest" name="countItems"/>
                        <output message="tns:countItemsResponse" 
name="countItemsResponse"/>
                </operation>
  
                <!-- 3.4.18 isNil rpc operation -->
                <operation name="isNil" parameterOrder="inputString">
                        <input message="tns:isNilRequest" name="isNil"/>
                        <output message="tns:isNilResponse" name="isNilResponse"/>
                </operation>
  
        </portType>
  
        <binding name="Soap12TestDocBinding" type="tns:Soap12TestPortTypeDoc">
                <soap12:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"; />
                <operation name="emptyBody">
                                <soap12:operation/>
                                <input>
                                <soap12:body use="literal" />
                                <soap12:header message="tns:echoOkRequest" 
part="echoOk" use="literal" />
                                </input>
                                <output>
                                <soap12:body use="literal" />
                                <soap12:header message="tns:echoOkResponse" 
part="responseOk" use="literal" />
                                </output>
                </operation>
                <operation name="echoOk">
                                <soap12:operation/>
                                <input>
                                <soap12:body use="literal" />
                                <soap12:header message="tns:echoOkRequest" 
part="echoOk" use="literal" />
                                </input>
                                <output>
                                <soap12:body use="literal" />
                                <soap12:header message="tns:echoOkResponse" 
part="responseOk" use="literal" />
                                </output>
                </operation>
        </binding>
  
        <binding name="Soap12TestRpcBinding" type="tns:Soap12TestPortTypeRpc">
                <soap12:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
  
                <!-- 3.4.1 returnVoid rpc operation -->
                <operation name="returnVoid">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.2 echoStruct rpc operation -->
                <operation name="echoStruct">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.3 echoStructArray rpc operation -->
                <operation name="echoStructArray">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.4 echoStructAsSimpleTypes rpc operation -->
                <operation name="echoStructAsSimpleTypes">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.5 echoSimpleTypesAsStruct rpc operation -->
                <operation name="echoSimpleTypesAsStruct">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.6 echoNestedStruct rpc operation -->
                <operation name="echoNestedStruct">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.7 echoNestedArray rpc operation -->
                <operation name="echoNestedArray">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.8 echoFloatArray rpc operation -->
                <operation name="echoFloatArray">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.9 echoStringArray rpc operation -->
                <operation name="echoStringArray">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.10 echoIntegerArray rpc operation -->
                <operation name="echoIntegerArray">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.11 echoBase64 rpc operation -->
                <operation name="echoBase64">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.12 echoBoolean rpc operation -->
                <operation name="echoBoolean">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.13 echoDate rpc operation -->
                <operation name="echoDate">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.14 echoDecimal rpc operation -->
                <operation name="echoDecimal">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.15 echoFloat rpc operation -->
                <operation name="echoFloat">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.16 echoString rpc operation -->
                <operation name="echoString">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                                <soap12:header use="encoded" 
message="tns:DataHolder_Request" part="DataHolder" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                                <soap12:header use="encoded" 
message="tns:DataHolder_Response" part="DataHolder" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.17 countItems rpc operation -->
                <operation name="countItems">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- 3.4.18 isNil rpc operation -->
                <operation name="isNil">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
        </binding>
  
  
        <service name="WhiteMesaSoap12TestSvc">
  
                <port name="Soap12TestDocPort" binding="tns:Soap12TestDocBinding">
                        <soap12:address 
location="http://www.whitemesa.net/soap12/test-doc"/>
                </port>
                <port name="Soap12TestRpcPort" binding="tns:Soap12TestRpcBinding">
                        <soap12:address 
location="http://www.whitemesa.net/soap12/test-rpc"/>
                </port>
  
        </service>
  
  </definitions>
  
  
  
  1.1                  
xml-axis/java/test/wsdl/soap12/assertion/Soap12TestDocBindingImpl.java
  
  Index: Soap12TestDocBindingImpl.java
  ===================================================================
  /**
   * Soap12TestDocBindingImpl.java
   *
   * This file was auto-generated from WSDL
   * by the Apache Axis WSDL2Java emitter.
   */
  
  package test.wsdl.soap12.assertion;
  
  public class Soap12TestDocBindingImpl implements 
test.wsdl.soap12.assertion.Soap12TestPortTypeDoc{
      public void emptyBody() throws java.rmi.RemoteException {
      }
  
      public java.lang.String echoOk(java.lang.String echoOk) throws 
java.rmi.RemoteException {
          return null;
      }
  
  }
  
  
  
  1.1                  
xml-axis/java/test/wsdl/soap12/assertion/Soap12TestRpcBindingImpl.java
  
  Index: Soap12TestRpcBindingImpl.java
  ===================================================================
  /**
   * Soap12TestRpcBindingImpl.java
   *
   * This file was auto-generated from WSDL
   * by the Apache Axis WSDL2Java emitter.
   */
  
  package test.wsdl.soap12.assertion;
  
  public class Soap12TestRpcBindingImpl implements 
test.wsdl.soap12.assertion.Soap12TestPortTypeRpc{
      public void returnVoid() throws java.rmi.RemoteException {
      }
  
      public test.wsdl.soap12.assertion.xsd.SOAPStruct 
echoStruct(test.wsdl.soap12.assertion.xsd.SOAPStruct inputStruct) throws 
java.rmi.RemoteException {
          return null;
      }
  
      public test.wsdl.soap12.assertion.xsd.SOAPStruct[] 
echoStructArray(test.wsdl.soap12.assertion.xsd.SOAPStruct[] inputStructArray) throws 
java.rmi.RemoteException {
          return null;
      }
  
      public void echoStructAsSimpleTypes(test.wsdl.soap12.assertion.xsd.SOAPStruct 
inputStruct, javax.xml.rpc.holders.StringHolder outputString, 
javax.xml.rpc.holders.IntHolder outputInteger, javax.xml.rpc.holders.FloatHolder 
outputFloat) throws java.rmi.RemoteException {
          outputString.value = new java.lang.String();
          outputInteger.value = 0;
          outputFloat.value = 0;
      }
  
      public test.wsdl.soap12.assertion.xsd.SOAPStruct 
echoSimpleTypesAsStruct(java.lang.String inputString, int inputInteger, float 
inputFloat) throws java.rmi.RemoteException {
          return null;
      }
  
      public test.wsdl.soap12.assertion.xsd.SOAPStructStruct 
echoNestedStruct(test.wsdl.soap12.assertion.xsd.SOAPStructStruct inputStruct) throws 
java.rmi.RemoteException {
          return null;
      }
  
      public test.wsdl.soap12.assertion.xsd.SOAPArrayStruct 
echoNestedArray(test.wsdl.soap12.assertion.xsd.SOAPArrayStruct inputStruct) throws 
java.rmi.RemoteException {
          return null;
      }
  
      public float[] echoFloatArray(float[] inputFloatArray) throws 
java.rmi.RemoteException {
          return null;
      }
  
      public java.lang.String[] echoStringArray(java.lang.String[] inputStringArray) 
throws java.rmi.RemoteException {
          return null;
      }
  
      public int[] echoIntegerArray(int[] inputIntegerArray) throws 
java.rmi.RemoteException {
          return null;
      }
  
      public byte[] echoBase64(byte[] inputBase64) throws java.rmi.RemoteException {
          return null;
      }
  
      public boolean echoBoolean(boolean inputBoolean) throws java.rmi.RemoteException 
{
          return false;
      }
  
      public java.util.Calendar echoDate(java.util.Calendar inputDate) throws 
java.rmi.RemoteException {
          return null;
      }
  
      public java.math.BigDecimal echoDecimal(java.math.BigDecimal inputDecimal) 
throws java.rmi.RemoteException {
          return null;
      }
  
      public float echoFloat(float inputFloat) throws java.rmi.RemoteException {
          return -3;
      }
  
      public java.lang.String echoString(java.lang.String inputString) throws 
java.rmi.RemoteException {
          return null;
      }
  
      public int countItems(java.lang.String[] inputStringArray) throws 
java.rmi.RemoteException {
          return -3;
      }
  
      public boolean isNil(java.lang.String inputString) throws 
java.rmi.RemoteException {
          return false;
      }
  
  }
  
  
  
  1.1                  
xml-axis/java/test/wsdl/soap12/assertion/WhiteMesaSoap12TestSvcTestCase.java
  
  Index: WhiteMesaSoap12TestSvcTestCase.java
  ===================================================================
  /**
   * WhiteMesaSoap12TestSvcTestCase.java
   *
   * This file was auto-generated from WSDL
   * by the Apache Axis WSDL2Java emitter.
   */
  
  package test.wsdl.soap12.assertion;
  
  public class WhiteMesaSoap12TestSvcTestCase extends junit.framework.TestCase {
      public WhiteMesaSoap12TestSvcTestCase(java.lang.String name) {
          super(name);
      }
      public void test1Soap12TestRpcPortReturnVoid() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          binding.returnVoid();
          // TBD - validate results
      }
  
      public void test2Soap12TestRpcPortEchoStruct() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          test.wsdl.soap12.assertion.xsd.SOAPStruct value = null;
          value = binding.echoStruct(new test.wsdl.soap12.assertion.xsd.SOAPStruct());
          // TBD - validate results
      }
  
      public void test3Soap12TestRpcPortEchoStructArray() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          test.wsdl.soap12.assertion.xsd.SOAPStruct[] value = null;
          value = binding.echoStructArray(new 
test.wsdl.soap12.assertion.xsd.SOAPStruct[0]);
          // TBD - validate results
      }
  
      public void test4Soap12TestRpcPortEchoStructAsSimpleTypes() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          //TODO: Why does this not work?
          //binding.echoStructAsSimpleTypes(new 
test.wsdl.soap12.assertion.xsd.SOAPStruct(), new javax.xml.rpc.holders.StringHolder(), 
new javax.xml.rpc.holders.IntHolder(), new javax.xml.rpc.holders.FloatHolder());
          // TBD - validate results
      }
  
      public void test5Soap12TestRpcPortEchoSimpleTypesAsStruct() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          test.wsdl.soap12.assertion.xsd.SOAPStruct value = null;
          value = binding.echoSimpleTypesAsStruct(new java.lang.String(), 0, 0);
          // TBD - validate results
      }
  
      public void test6Soap12TestRpcPortEchoNestedStruct() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          test.wsdl.soap12.assertion.xsd.SOAPStructStruct value = null;
          value = binding.echoNestedStruct(new 
test.wsdl.soap12.assertion.xsd.SOAPStructStruct());
          // TBD - validate results
      }
  
      public void test7Soap12TestRpcPortEchoNestedArray() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          test.wsdl.soap12.assertion.xsd.SOAPArrayStruct value = null;
          value = binding.echoNestedArray(new 
test.wsdl.soap12.assertion.xsd.SOAPArrayStruct());
          // TBD - validate results
      }
  
      public void test8Soap12TestRpcPortEchoFloatArray() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          float[] value = null;
          value = binding.echoFloatArray(new float[0]);
          // TBD - validate results
      }
  
      public void test9Soap12TestRpcPortEchoStringArray() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          java.lang.String[] value = null;
          value = binding.echoStringArray(new java.lang.String[0]);
          // TBD - validate results
      }
  
      public void test10Soap12TestRpcPortEchoIntegerArray() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          int[] value = null;
          value = binding.echoIntegerArray(new int[0]);
          // TBD - validate results
      }
  
      public void test11Soap12TestRpcPortEchoBase64() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          byte[] value = null;
          value = binding.echoBase64(new byte[0]);
          // TBD - validate results
      }
  
      public void test12Soap12TestRpcPortEchoBoolean() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          boolean value = false;
          value = binding.echoBoolean(true);
          // TBD - validate results
      }
  
      public void test13Soap12TestRpcPortEchoDate() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          java.util.Calendar value = null;
          value = binding.echoDate(java.util.Calendar.getInstance());
          // TBD - validate results
      }
  
      public void test14Soap12TestRpcPortEchoDecimal() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          java.math.BigDecimal value = null;
          value = binding.echoDecimal(new java.math.BigDecimal(0));
          // TBD - validate results
      }
  
      public void test15Soap12TestRpcPortEchoFloat() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          float value = -3;
          value = binding.echoFloat(0);
          // TBD - validate results
      }
  
      public void test16Soap12TestRpcPortEchoString() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          java.lang.String value = null;
          value = binding.echoString(new java.lang.String());
          // TBD - validate results
      }
  
      public void test17Soap12TestRpcPortCountItems() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          int value = -3;
          value = binding.countItems(new java.lang.String[0]);
          // TBD - validate results
      }
  
      public void test18Soap12TestRpcPortIsNil() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestRpcBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestRpcBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestRpcPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          boolean value = false;
          //TODO: Why does this not work?
          //value = binding.isNil(new java.lang.String());
          // TBD - validate results
      }
  
      public void test19Soap12TestDocPortEmptyBody() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestDocBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestDocBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestDocPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          binding.emptyBody();
          // TBD - validate results
      }
  
      public void test20Soap12TestDocPortEchoOk() throws Exception {
          test.wsdl.soap12.assertion.Soap12TestDocBindingStub binding;
          try {
              binding = (test.wsdl.soap12.assertion.Soap12TestDocBindingStub)
                            new 
test.wsdl.soap12.assertion.WhiteMesaSoap12TestSvcLocator().getSoap12TestDocPort();
          }
          catch (javax.xml.rpc.ServiceException jre) {
              if(jre.getLinkedCause()!=null)
                  jre.getLinkedCause().printStackTrace();
              throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException 
caught: " + jre);
          }
          assertNotNull("binding is null", binding);
  
          // Time out after a minute
          binding.setTimeout(60000);
  
          // Test operation
          java.lang.String value = null;
          value = binding.echoOk(new java.lang.String());
          // TBD - validate results
      }
  
  }
  
  
  
  1.109     +13 -10    xml-axis/java/src/org/apache/axis/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Constants.java,v
  retrieving revision 1.108
  retrieving revision 1.109
  diff -u -r1.108 -r1.109
  --- Constants.java    16 Jan 2003 23:47:27 -0000      1.108
  +++ Constants.java    19 Jan 2003 21:25:10 -0000      1.109
  @@ -103,7 +103,7 @@
       public static final String URI_SOAP11_ENV =
                                   "http://schemas.xmlsoap.org/soap/envelope/"; ;
       public static final String URI_SOAP12_ENV =
  -                                   "http://www.w3.org/2002/06/soap-envelope";;
  +                                   "http://www.w3.org/2002/12/soap-envelope";;
       public static final String URI_DEFAULT_SOAP_ENV =
           DEFAULT_SOAP_VERSION.getEnvelopeURI();
   
  @@ -152,9 +152,9 @@
       public static final String URI_SOAP11_ENC =
                                   "http://schemas.xmlsoap.org/soap/encoding/"; ;
       public static final String URI_SOAP12_ENC =
  -                                   "http://www.w3.org/2002/06/soap-encoding";;
  +                                   "http://www.w3.org/2002/12/soap-encoding";;
       public static final String URI_SOAP12_NOENC =
  -                     "http://www.w3.org/2002/06/soap-envelope/encoding/none";;
  +                     "http://www.w3.org/2002/12/soap-envelope/encoding/none";;
       public static final String URI_DEFAULT_SOAP_ENC =
           DEFAULT_SOAP_VERSION.getEncodingURI();
   
  @@ -275,26 +275,26 @@
       public static final String URI_SOAP11_NEXT_ACTOR =
                                        "http://schemas.xmlsoap.org/soap/actor/next"; ;
       public static final String URI_SOAP12_NEXT_ACTOR =
  -                                     
"http://www.w3.org/2002/06/soap-envelope/actor/next";;
  +                                     
"http://www.w3.org/2002/12/soap-envelope/actor/next";;
   
       public static final String URI_SOAP12_FAULT =
  -                                     "http://www.w3.org/2002/06/soap-faults";;
  +                                     "http://www.w3.org/2002/12/soap-faults";;
   
       public static final String URI_SOAP12_UPGRADE =
  -                                     "http://www.w3.org/2002/06/soap-upgrade";;
  +                                     "http://www.w3.org/2002/12/soap-upgrade";;
   
       public static final String URI_SOAP12_RPC =
  -                                     "http://www.w3.org/2002/06/soap-rpc";;
  +                                     "http://www.w3.org/2002/12/soap-rpc";;
   
       public static final String URI_SOAP12_NONE_ROLE =
  -                         "http://www.w3.org/2002/06/soap-envelope/role/none";;
  +                         "http://www.w3.org/2002/12/soap-envelope/role/none";;
       public static final String URI_SOAP12_ULTIMATE_ROLE =
  -             "http://www.w3.org/2002/06/soap-envelope/role/ultimateReceiver";;
  +             "http://www.w3.org/2002/12/soap-envelope/role/ultimateReceiver";;
   
       public static final String URI_SOAP11_HTTP =
                                        "http://schemas.xmlsoap.org/soap/http";;
       public static final String URI_SOAP12_HTTP =
  -                                    "http://www.w3.org/2002/06/http";;
  +                                    "http://www.w3.org/2002/12/http";;
   
       public static final String NS_URI_XMLNS =
                                          "http://www.w3.org/2000/xmlns/";;
  @@ -412,9 +412,12 @@
       //
       public static final String URI_WSDL11_SOAP =
                                    "http://schemas.xmlsoap.org/wsdl/soap/";;
  +    public static final String URI_WSDL12_SOAP =
  +                                 "http://schemas.xmlsoap.org/wsdl/soap12/";;
   
       public static final String[] NS_URIS_WSDL_SOAP = {
           URI_WSDL11_SOAP,
  +        URI_WSDL12_SOAP
       };
   
       /**
  
  
  
  1.6       +25 -0     
xml-axis/java/src/org/apache/axis/wsdl/symbolTable/FaultInfo.java
  
  Index: FaultInfo.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/FaultInfo.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FaultInfo.java    11 Dec 2002 22:38:29 -0000      1.5
  +++ FaultInfo.java    19 Jan 2003 21:25:10 -0000      1.6
  @@ -136,6 +136,31 @@
           
       } // ctor
   
  +    public FaultInfo(QName faultMessage, String faultPart, String faultUse, String 
faultNamespaceURI, SymbolTable symbolTable)
  +            throws IOException {
  +        MessageEntry mEntry = symbolTable.getMessageEntry(faultMessage);
  +        if (mEntry == null) {
  +            throw new IOException(Messages.getMessage("noMsg",
  +                    faultMessage.toString()));
  +        }
  +        this.message = mEntry.getMessage();
  +        Part part    = message.getPart(faultPart);
  +        this.xmlType = getFaultType(symbolTable, part);
  +        this.use     = Use.getUse(faultUse);
  +
  +        if (part == null) {
  +            this.qName = null;
  +        }
  +        else if (part.getTypeName() != null) {
  +            this.qName = new QName(faultNamespaceURI, part.getName());
  +        }
  +        else {
  +            this.qName = part.getElementName();
  +        }
  +        this.name    = qName.getLocalPart();
  +        
  +    } // ctor
  +
       public Message getMessage() {
           return message;
       } // getMessage
  
  
  
  1.70      +107 -21   
xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java
  
  Index: SymbolTable.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- SymbolTable.java  15 Jan 2003 13:38:34 -0000      1.69
  +++ SymbolTable.java  19 Jan 2003 21:25:10 -0000      1.70
  @@ -1587,30 +1587,33 @@
                   node = getTypeEntry(type, false).getNode();
               }
   
  +            Vector vTypes = null;
               // If we have nothing at this point, we're in trouble.
               if (node == null) {
  -                throw new IOException(
  +                if(bindingEntry.isInHeaderPart(opName, partName)) {
  +                    wrapped = false;
  +                } else {
  +                    throw new IOException(
                           Messages.getMessage("badTypeNode",
                                                new String[] {
                                                    partName,
                                                    opName,
                                                    elementName.toString()}));
  +                }                    
  +            } else { 
  +                // check for attributes
  +                Vector vAttrs = SchemaUtils.getContainedAttributeTypes(node, this);
  +                if (vAttrs != null) {
  +                    // can't do wrapped mode
  +                    wrapped = false;
  +                }
  +    
  +                // Get the nested type entries.
  +                // TODO - If we are unable to represent any of the types in the
  +                // element, we need to use SOAPElement/SOAPBodyElement.
  +                // I don't believe getContainedElementDecl does the right thing yet.
  +                vTypes = SchemaUtils.getContainedElementDeclarations(node, this);
               }
  -
  -            // check for attributes
  -            Vector vAttrs = SchemaUtils.getContainedAttributeTypes(node, this);
  -            if (vAttrs != null) {
  -                // can't do wrapped mode
  -                wrapped = false;
  -            }
  -
  -            // Get the nested type entries.
  -            // TODO - If we are unable to represent any of the types in the
  -            // element, we need to use SOAPElement/SOAPBodyElement.
  -            // I don't believe getContainedElementDecl does the right thing yet.
  -            Vector vTypes =
  -                    SchemaUtils.getContainedElementDeclarations(node, this);
  -
               // IF we got the type entries and we didn't find attributes
               // THEN use the things in this element as the parameters
               if (vTypes != null && wrapped) {
  @@ -1717,6 +1720,19 @@
                       else {
                           bEntry.setBindingType(BindingEntry.TYPE_HTTP_GET);
                       }
  +                } 
  +                else if (obj instanceof UnknownExtensibilityElement){
  +                    //TODO: After WSDL4J supports soap12, change this code
  +                    UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) obj;
  +                    QName name = unkElement.getElementType();
  +                    if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                       name.getLocalPart().equals("binding")){
  +                        bEntry.setBindingType(BindingEntry.TYPE_SOAP);
  +                        String style = 
unkElement.getElement().getAttribute("style");
  +                        if ("rpc".equalsIgnoreCase(style)) {
  +                            bEntry.setBindingStyle(Style.RPC);
  +                        }
  +                    }
                   }
               }
   
  @@ -1838,6 +1854,43 @@
                      name.getLocalPart().equals("message")) {
                       fillInDIMEInformation(unkElement, input, operation, bEntry);
                   }
  +                //TODO: After WSDL4J supports soap12, change this code
  +                if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                       name.getLocalPart().equals("body")){
  +                    setBodyType(unkElement.getElement().getAttribute("use"), 
bEntry, operation,
  +                            input);
  +                }
  +                //TODO: After WSDL4J supports soap12, change this code
  +                if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                       name.getLocalPart().equals("header")){
  +                    setBodyType(unkElement.getElement().getAttribute("use"), 
bEntry, operation, input);
  +
  +                    // Note, this only works for explicit headers - those whose
  +                    // parts come from messages used in the portType's operation
  +                    // input/output clauses - it does not work for implicit
  +                    // headers - those whose parts come from messages not used in
  +                    // the portType's operation's input/output clauses.  I don't
  +                    // know what we're supposed to emit for implicit headers.
  +                    bEntry.setHeaderPart(operation.getName(), 
unkElement.getElement().getAttribute("part"),
  +                            input ? BindingEntry.IN_HEADER : 
BindingEntry.OUT_HEADER);
  +
  +                    // Add any soap12:headerFault info to the faults array
  +                    NodeList headerFaults = unkElement.getElement().getChildNodes();
  +                    for(int i=0;i<headerFaults.getLength();i++){
  +                        String faultMessage = 
unkElement.getElement().getAttribute("message");
  +                        String faultPart = 
unkElement.getElement().getAttribute("part");
  +                        String faultUse = 
unkElement.getElement().getAttribute("use");
  +                        String faultNamespaceURI = 
unkElement.getElement().getAttribute("namespace");
  +                        QName faultMessageQName = null;
  +                        int sep = faultMessage.indexOf(':');
  +                        if(sep == -1) {
  +                            faultMessageQName = new QName (faultMessage);    
  +                        } else {
  +                            faultMessageQName = new QName(faultMessage.substring(0, 
sep), faultMessage.substring(sep + 1));    
  +                        }
  +                        faults.add(new FaultInfo(faultMessageQName, faultPart, 
faultUse, faultNamespaceURI, this));
  +                    }
  +                }
               }
           }
       } // fillInBindingInfo
  @@ -1922,18 +1975,36 @@
                           binding.getQName().toString()));
               }
   
  -            SOAPFault soapFault = null;
  +            boolean foundSOAPFault = false;
  +            String  soapFaultUse = "";
  +            String soapFaultNamespace = "";
  +            
               Iterator faultIter = bFault.getExtensibilityElements().iterator();
               for (; faultIter.hasNext();) {
                   Object obj = faultIter.next();
                   if (obj instanceof SOAPFault) {
  -                    soapFault = (SOAPFault) obj;
  +                    foundSOAPFault = true;
  +                    soapFaultUse = ((SOAPFault)obj).getUse();
  +                    soapFaultNamespace = ((SOAPFault)obj).getNamespaceURI();
                       break;
  +                } else if (obj instanceof UnknownExtensibilityElement) {
  +                    //TODO: After WSDL4J supports soap12, change this code
  +                    UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) obj;
  +                    QName name = unkElement.getElementType();
  +                    if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                       name.getLocalPart().equals("fault")){
  +                        if(unkElement.getElement().getAttribute("use")!=null) {
  +                            soapFaultUse = 
unkElement.getElement().getAttribute("use");
  +                        }
  +                        if(unkElement.getElement().getAttribute("namespace")!=null) 
{
  +                            soapFaultNamespace = 
unkElement.getElement().getAttribute("namespace");
  +                        }
  +                    }                    
                   }
               }
   
               // Check to make sure we have a soap:fault element
  -            if (soapFault == null) {
  +            if (!foundSOAPFault) {
                   throw new IOException(Messages.getMessage("missingSoapFault00",
                           faultName,
                           bindOp.getName(), 
  @@ -1955,8 +2026,8 @@
               }
               // put the updated entry back in the map
               faults.add(new FaultInfo(opFault,
  -                    Use.getUse(soapFault.getUse()),
  -                    soapFault.getNamespaceURI(),
  +                    Use.getUse(soapFaultUse),
  +                    soapFaultNamespace,
                       this));
           }
       } // faultsFromSOAPFault
  @@ -2015,6 +2086,21 @@
                       if (use.equalsIgnoreCase("literal")) {
                           bodyType = Use.LITERAL;
                       }
  +                } else if (obj instanceof UnknownExtensibilityElement) {
  +                    //TODO: After WSDL4J supports soap12, change this code
  +                    UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) obj;
  +                    QName name = unkElement.getElementType();
  +                    if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                       name.getLocalPart().equals("body")){
  +                        String use = unkElement.getElement().getAttribute("use");
  +                        if (use == null) {
  +                            throw new IOException(Messages.getMessage(
  +                                    "noUse", op.getName()));
  +                        }
  +                        if (use.equalsIgnoreCase("literal")) {
  +                            bodyType = Use.LITERAL;
  +                        }
  +                    }                    
                   }
               }
           }
  
  
  
  1.54      +38 -0     
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaSkelWriter.java
  
  Index: JavaSkelWriter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaSkelWriter.java,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- JavaSkelWriter.java       11 Dec 2002 22:38:30 -0000      1.53
  +++ JavaSkelWriter.java       19 Jan 2003 21:25:10 -0000      1.54
  @@ -60,6 +60,7 @@
   import org.apache.axis.wsdl.symbolTable.Parameter;
   import org.apache.axis.wsdl.symbolTable.Parameters;
   import org.apache.axis.wsdl.symbolTable.SymbolTable;
  +import org.apache.axis.Constants;
   
   import javax.wsdl.Binding;
   import javax.wsdl.BindingInput;
  @@ -68,6 +69,7 @@
   import javax.wsdl.Operation;
   import javax.wsdl.OperationType;
   import javax.wsdl.extensions.ExtensibilityElement;
  +import javax.wsdl.extensions.UnknownExtensibilityElement;
   import javax.wsdl.extensions.soap.SOAPBody;
   import javax.wsdl.extensions.soap.SOAPOperation;
   import javax.xml.namespace.QName;
  @@ -247,6 +249,18 @@
                               pw.println("        _oper.setSoapAction(\"" + action + 
"\");");
                               found = true;
                           }
  +                    } else if (elem instanceof UnknownExtensibilityElement) {
  +                        //TODO: After WSDL4J supports soap12, change this code
  +                        UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) elem;
  +                        QName name = unkElement.getElementType();
  +                        if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) 
&& 
  +                           name.getLocalPart().equals("operation")){
  +                            String action = 
unkElement.getElement().getAttribute("soapAction");
  +                            if (action != null) {
  +                                pw.println("        _oper.setSoapAction(\"" + 
action + "\");");
  +                                found = true;
  +                            }
  +                        }                    
                       }
                   }
   
  @@ -330,6 +344,16 @@
                   if (obj instanceof SOAPOperation) {
                       soapAction = ((SOAPOperation) obj).getSoapActionURI();
                       break;
  +                } else if (obj instanceof UnknownExtensibilityElement) {
  +                    //TODO: After WSDL4J supports soap12, change this code
  +                    UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) obj;
  +                    QName name = unkElement.getElementType();
  +                    if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                       name.getLocalPart().equals("operation")){
  +                        if (unkElement.getElement().getAttribute("soapAction") != 
null) {
  +                            soapAction = 
unkElement.getElement().getAttribute("soapAction");
  +                        }
  +                    }                    
                   }
               }
               // Get the namespace for the operation from the <soap:body>
  @@ -360,6 +384,20 @@
                           if (namespace == null)
                               namespace = "";
                           break;
  +                    } else if (obj instanceof UnknownExtensibilityElement) {
  +                        //TODO: After WSDL4J supports soap12, change this code
  +                        UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) obj;
  +                        QName name = unkElement.getElementType();
  +                        if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) 
&& 
  +                           name.getLocalPart().equals("body")){
  +                            namespace = 
unkElement.getElement().getAttribute("namespace");
  +                            if (namespace == null) {
  +                                namespace = 
symbolTable.getDefinition().getTargetNamespace();
  +                            }
  +                            if (namespace == null)
  +                                namespace = "";
  +                            break;
  +                        }                    
                       }
                   }
               }
  
  
  
  1.113     +56 -1     
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java
  
  Index: JavaStubWriter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java,v
  retrieving revision 1.112
  retrieving revision 1.113
  diff -u -r1.112 -r1.113
  --- JavaStubWriter.java       15 Jan 2003 00:52:08 -0000      1.112
  +++ JavaStubWriter.java       19 Jan 2003 21:25:10 -0000      1.113
  @@ -67,6 +67,7 @@
   import org.apache.axis.wsdl.symbolTable.SymbolTable;
   import org.apache.axis.wsdl.symbolTable.TypeEntry;
   import org.apache.axis.wsdl.symbolTable.MimeInfo;
  +import org.apache.axis.Constants;
   
   import javax.wsdl.Binding;
   import javax.wsdl.BindingOperation;
  @@ -77,6 +78,8 @@
   import javax.wsdl.Part;
   import javax.wsdl.PortType;
   import javax.wsdl.extensions.soap.SOAPOperation;
  +import javax.wsdl.extensions.soap.SOAPBinding;
  +import javax.wsdl.extensions.UnknownExtensibilityElement;
   import javax.xml.namespace.QName;
   import java.io.IOException;
   import java.io.PrintWriter;
  @@ -268,7 +271,23 @@
               if (bEntry.hasLiteral()) {
                   pw.println("                    _call.setEncodingStyle(null);");
               } else {
  -                pw.println("                    
_call.setEncodingStyle(org.apache.axis.Constants.URI_SOAP11_ENC);");
  +                Iterator iterator = 
bEntry.getBinding().getExtensibilityElements().iterator();
  +                while (iterator.hasNext()) {
  +                    Object obj = iterator.next();
  +                    if (obj instanceof SOAPBinding) {
  +                        pw.println("                    
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);");
  +                        pw.println("                    
_call.setEncodingStyle(org.apache.axis.Constants.URI_SOAP11_ENC);");
  +                    } else if (obj instanceof UnknownExtensibilityElement) {
  +                        //TODO: After WSDL4J supports soap12, change this code
  +                        UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) obj;
  +                        QName name = unkElement.getElementType();
  +                        if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) 
&& 
  +                           name.getLocalPart().equals("binding")){
  +                            pw.println("                    
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);");
  +                            pw.println("                    
_call.setEncodingStyle(org.apache.axis.Constants.URI_SOAP12_ENC);");
  +                        }
  +                    }
  +                }
               }
   
               pw.println("                    for (int i = 0; i < 
cachedSerFactories.size(); ++i) {");
  @@ -309,6 +328,17 @@
                       soapAction = ((SOAPOperation) obj).getSoapActionURI();
                       opStyle = ((SOAPOperation) obj).getStyle();
                       break;
  +                } else if (obj instanceof UnknownExtensibilityElement) {
  +                    //TODO: After WSDL4J supports soap12, change this code
  +                    UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) obj;
  +                    QName name = unkElement.getElementType();
  +                    if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                       name.getLocalPart().equals("operation")){
  +                        if (unkElement.getElement().getAttribute("soapAction") != 
null) {
  +                            soapAction = 
unkElement.getElement().getAttribute("soapAction"); 
  +                        }
  +                        opStyle = unkElement.getElement().getAttribute("style");
  +                    }                    
                   }
               }
               Operation ptOperation = operation.getOperation();
  @@ -347,6 +377,14 @@
                   if (obj instanceof SOAPOperation) {
                       opStyle = ((SOAPOperation) obj).getStyle();
                       break;
  +                } else if (obj instanceof UnknownExtensibilityElement) {
  +                    //TODO: After WSDL4J supports soap12, change this code
  +                    UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) obj;
  +                    QName name = unkElement.getElementType();
  +                    if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                       name.getLocalPart().equals("operation")){
  +                        opStyle = unkElement.getElement().getAttribute("style");
  +                    }                    
                   }
               }
               Operation ptOperation = operation.getOperation();
  @@ -713,6 +751,23 @@
               style = Style.WRAPPED;
           }
   
  +        
  +        Iterator iterator = 
bEntry.getBinding().getExtensibilityElements().iterator();
  +        while (iterator.hasNext()) {
  +            Object obj = iterator.next();
  +            if (obj instanceof SOAPBinding) {
  +                pw.println("        
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);");
  +            } else if (obj instanceof UnknownExtensibilityElement) {
  +                //TODO: After WSDL4J supports soap12, change this code
  +                UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) obj;
  +                QName name = unkElement.getElementType();
  +                if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                   name.getLocalPart().equals("binding")){
  +                    pw.println("        
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);");
  +                }
  +            }
  +        }
  +        
           // Operation name
           if (style == Style.WRAPPED) {
               // We need to make sure the operation name, which is what we
  
  
  
  1.67      +9 -0      xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java
  
  Index: Utils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Utils.java,v
  retrieving revision 1.66
  retrieving revision 1.67
  diff -u -r1.66 -r1.67
  --- Utils.java        3 Jan 2003 19:54:41 -0000       1.66
  +++ Utils.java        19 Jan 2003 21:25:10 -0000      1.67
  @@ -77,6 +77,7 @@
   import javax.wsdl.Operation;
   import javax.wsdl.Part;
   import javax.wsdl.extensions.ExtensibilityElement;
  +import javax.wsdl.extensions.UnknownExtensibilityElement;
   import javax.wsdl.extensions.soap.SOAPBody;
   import javax.xml.namespace.QName;
   import javax.xml.rpc.holders.BooleanHolder;
  @@ -627,6 +628,14 @@
                       SOAPBody body = (SOAPBody) elem;
                       ns = body.getNamespaceURI();
                       break;
  +                } else if (elem instanceof UnknownExtensibilityElement) {
  +                    //TODO: After WSDL4J supports soap12, change this code
  +                    UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) elem;
  +                    QName name = unkElement.getElementType();
  +                    if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                       name.getLocalPart().equals("body")){
  +                        ns = unkElement.getElement().getAttribute("namespace");
  +                    }                    
                   }
               }
           }
  
  
  
  1.1                  xml-axis/java/test/wsdl/soap12/additional/soap12-add-test.wsdl
  
  Index: soap12-add-test.wsdl
  ===================================================================
  <?xml version="1.0"?>
  
  <definitions name="SOAP-12-TestDefinitions"
        targetNamespace="http://whitemesa.net/wsdl/soap12-test";
        xmlns="http://schemas.xmlsoap.org/wsdl/";
        xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
        xmlns:xsd="http://www.w3.org/2001/XMLSchema";
        xmlns:enc="http://www.w3.org/2002/12/soap-encoding";
        xmlns:tns="http://whitemesa.net/wsdl/soap12-test";
        xmlns:types="http://example.org/ts-tests/xsd";
        xmlns:test="http://example.org/ts-tests";
        xmlns:iop="http://soapinterop.org/";
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>
        <types>
  
                <schema xmlns="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="http://example.org/ts-tests/xsd";>
  
                        <complexType name="SOAPStruct">
                                <all>
                                        <element name="varString" type="xsd:string"/>
                                        <element name="varInt" type="xsd:int"/>
                                        <element name="varFloat" type="xsd:float"/>
                                </all>
                        </complexType>
  
                </schema>
  
                <schema xmlns="http://www.w3.org/2001/XMLSchema"; 
targetNamespace="http://example.org/ts-tests/xsd";>
  
                        <!-- added to support test xmlp-10 -->
                        <complexType name="SOAPStructInputs">
                                <sequence>
                                        <element name="input1" type="anyType" />
                                        <element name="input2" type="anyType" />
                                        <element name="input3" type="anyType" />
                                        <element name="input4" type="anyType" />
                                </sequence>
                        </complexType>
                        <complexType name="SOAPStructTypes">
                                <sequence>
                                        <element name="type1" type="QName" />
                                        <element name="type2" type="QName" />
                                        <element name="type3" type="QName" />
                                        <element name="type4" type="QName" />
                                </sequence>
                        </complexType>
  
                </schema>
  
                <schema xmlns="http://www.w3.org/2001/XMLSchema"; 
elementFormDefault="qualified" targetNamespace="http://soapinterop.org/";>
  
                        <!-- xmlp-2 getTime -->
                        <element name="time" type="time"/>
  
                        <!-- xmlp-7 echoSenderFault -->
                        <element name="echoSenderFault" />
  
                        <!-- xmlp-8 echoReceiverFault -->
                        <element name="echoReceiverFault" />
  
                        <!-- xmlp-13 thru 19 echoString doc/lit operation -->
                        <element name="echoString">
                                <complexType>
                                        <sequence>
                                                <element minOccurs="0" maxOccurs="1" 
name="inputString" type="string" />
                                        </sequence>
                                </complexType>
                        </element>
                        <element name="echoStringResponse">
                                <complexType>
                                        <sequence>
                                                <element minOccurs="0" maxOccurs="1" 
name="return" type="string" />
                                        </sequence>
                                </complexType>
                        </element>
  
                </schema>
  
        </types>
  
        <!-- xmlp-5, xmlp-6 echoVoid rpc operation -->
        <message name="echoVoidRequest" />
        <message name="echoVoidResponse" />
  
        <!-- xmlp-4 echoSimpleTypesAsStruct rpc operation -->
        <message name="echoSimpleTypesAsStructRequest">
                <part name="inputString" type="xsd:string"/>
                <part name="inputInteger" type="xsd:int"/>
                <part name="inputFloat" type="xsd:float"/>
        </message>
        <message name="echoSimpleTypesAsStructResponse">
                <part name="return" type="types:SOAPStruct"/>
        </message>
  
        <!-- xmlp-1, xmlp-9 echoString rpc operation -->
        <message name="echoStringRequest">
                <part name="inputString" type="xsd:string"/>
        </message>
        <message name="echoStringResponse">
                <part name="return" type="xsd:string"/>
        </message>
  
        <!-- xmlp-10 echoSimpleTypesAsStructOfSchemaTypesRequest rpc operation -->
        <message name="echoSimpleTypesAsStructOfSchemaTypesRequest">
                <part name="input1" type="xsd:anyType"/>
                <part name="input2" type="xsd:anyType"/>
                <part name="input3" type="xsd:anyType"/>
                <part name="input4" type="xsd:anyType"/>
        </message>
        <message name="echoSimpleTypesAsStructOfSchemaTypesResponse">
                <part name="return" type="test:PolyMorphStruct"/>
        </message>
  
        <!-- xmlp-11 echoInteger rpc operation -->
        <message name="echoIntegerRequest">
                <part name="inputInteger" type="xsd:int"/>
        </message>
        <message name="echoIntegerResponse">
                <part name="return" type="xsd:int"/>
        </message>
  
        <!-- xmlp-3 getTime rpc operation -->
        <message name="getTimeRpcResponse">
                <part name="return" type="xsd:time"/>
        </message>
  
        <!-- xmlp-2 getTime doc/lit operation -->
        <message name="getTimeDocResponse">
                <part name="time" element="iop:time"/>
        </message>
  
        <!-- xmlp-13 thru 19 echoString doc/lit operation -->
        <message name="echoStringDocRequest">
                <part name="inElement" element="iop:echoString" />
        </message>
        <message name="echoStringDocResponse">
                <part name="outElement" element="iop:echoStringResponse" />
        </message>
  
        <!-- xmlp-7 echoSenderFault operation -->
        <message name="echoSenderFaultRequest">
                <part name="inElement" element="iop:echoSenderFault" />
        </message>
        <message name="echoSenderFaultResponse" />
  
        <!-- xmlp-8 echoReceiverFault operation -->
        <message name="echoReceiverFaultRequest">
                <part name="inElement" element="iop:echoReceiverFault" />
        </message>
        <message name="echoReceiverFaultResponse" />
  
        <portType name="Soap12AddTestPortTypeDoc">
                <!-- xmlp-2 getTime operation -->
                <operation name="getTime">
                                <output message="tns:getTimeDocResponse" />
                </operation>
                <!-- xmlp-13 thru xmlp-19 echoString doc/literal operation -->
                <operation name="echoString">
                        <input message="tns:echoStringDocRequest" />
                        <output message="tns:echoStringDocResponse" />
                </operation>
                <!-- xmlp-7 echoSenderFault doc/literal operation -->
                <operation name="echoSenderFault">
                        <input message="tns:echoSenderFaultRequest" />
                        <output message="tns:echoSenderFaultResponse" />
                </operation>
                <!-- xmlp-8 echoReceiverFault doc/literal operation -->
                <operation name="echoReceiverFault">
                        <input message="tns:echoReceiverFaultRequest" />
                        <output message="tns:echoReceiverFaultResponse" />
                </operation>
        </portType>
  
        <portType name="Soap12AddTestPortTypeRpc">
  
                <!-- xmlp-5, xmlp-6 echoVoid rpc operation -->
                <operation name="echoVoid">
                        <input message="tns:echoVoidRequest" name="echoVoid"/>
                        <output message="tns:echoVoidResponse" 
name="echoVoidResponse"/>
                </operation>
  
  
                <!-- xmlp-4 echoSimpleTypesAsStruct rpc operation -->
                <operation name="echoSimpleTypesAsStruct" parameterOrder="inputString 
inputInteger inputFloat">
                        <input message="tns:echoSimpleTypesAsStructRequest"/>
                        <output message="tns:echoSimpleTypesAsStructResponse"/>
                </operation>
  
  
                <!-- xmlp-1, xmlp-9 echoString rpc operation -->
                <operation name="echoString" parameterOrder="inputString">
                        <input message="tns:echoStringRequest" name="echoString"/>
                        <output message="tns:echoStringResponse" 
name="echoStringResponse"/>
                </operation>
  
                <!-- xmlp-10 echoSimpleTypesAsStructOfSchemaTypes rpc operation -->
                <operation name="echoSimpleTypesAsStructOfSchemaTypes" 
parameterOrder="input1 input2 input3 input4">
                        <input 
message="tns:echoSimpleTypesAsStructOfSchemaTypesRequest"/>
                        <output 
message="tns:echoSimpleTypesAsStructOfSchemaTypesResponse"/>
                </operation>
  
                <!-- xmlp-11 echoInteger rpc operation -->
                <operation name="echoInteger" parameterOrder="inputInteger">
                        <input message="tns:echoIntegerRequest" name="echoInteger"/>
                        <output message="tns:echoIntegerResponse" 
name="echoIntegerResponse"/>
                </operation>
  
                <!-- xmlp-3 getTime rpc operation -->
                <operation name="getTime">
                        <output message="tns:getTimeRpcResponse" 
name="getTimeRpcResponse"/>
                </operation>
  
        </portType>
  
        <binding name="Soap12AddTestDocBinding" type="tns:Soap12AddTestPortTypeDoc">
                <soap12:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"; />
                <operation name="getTime">
                                <soap12:operation style="document" />
                                <output>
                                <soap12:body use="literal" />
                                </output>
                </operation>
                <operation name="echoString">
                        <soap12:operation style="document" />
                        <input>
                                <soap12:body use="literal" />
                        </input>
                        <output>
                                <soap12:body use="literal" />
                        </output>
                </operation>
                <operation name="echoSenderFault">
                        <soap12:operation style="document" />
                        <input>
                                <soap12:body use="literal" />
                        </input>
                        <output>
                                <soap12:body use="literal" />
                        </output>
                </operation>
                <operation name="echoReceiverFault">
                        <soap12:operation style="document" />
                        <input>
                                <soap12:body use="literal" />
                        </input>
                        <output>
                                <soap12:body use="literal" />
                        </output>
                </operation>
        </binding>
  
        <binding name="Soap12AddTestRpcBinding" type="tns:Soap12AddTestPortTypeRpc">
                <soap12:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
  
                <!-- xmlp-5, xmlp-6 echoVoid rpc operation -->
                <operation name="echoVoid">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://soapinterop.org/"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://soapinterop.org/"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- xmlp-4 echoSimpleTypesAsStruct rpc operation -->
                <operation name="echoSimpleTypesAsStruct">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://soapinterop.org/"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://soapinterop.org/"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- xmlp-3 getTime rpc operation -->
                <operation name="getTime">
                        <soap12:operation/>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://soapinterop.org/"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- xmlp-1, xmlp-9 echoString rpc operation -->
                <operation name="echoString">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://soapinterop.org/"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://soapinterop.org/"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- xmlp-10 echoSimpleTypesAsStructOfSchemaTypes rpc operation -->
                <operation name="echoSimpleTypesAsStructOfSchemaTypes">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://example.org/ts-tests"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
                <!-- xmlp-11 echoInteger rpc operation -->
                <operation name="echoInteger">
                        <soap12:operation/>
                        <input>
                                <soap12:body use="encoded" 
namespace="http://soapinterop.org/"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </input>
                        <output>
                                <soap12:body use="encoded" 
namespace="http://soapinterop.org/"; 
encodingStyle="http://www.w3.org/2002/12/soap-encoding"/>
                        </output>
                </operation>
  
        </binding>
  
  
        <service name="WhiteMesaSoap12AddTestSvc">
  
                <port name="Soap12AddTestDocPort" 
binding="tns:Soap12AddTestDocBinding">
                        <soap12:address 
location="http://www.whitemesa.net/soap12/add-test-doc"/>
                </port>
                <port name="Soap12AddTestDocIntermediaryPort" 
binding="tns:Soap12AddTestDocBinding">
                        <soap12:address 
location="http://www.whitemesa.net/soap12/add-test-doc-int"/>
                </port>
                <port name="Soap12AddTestDocUpperPort" 
binding="tns:Soap12AddTestDocBinding">
                        <soap12:address 
location="http://www.whitemesa.net/soap12/add-test-doc-int-uc"/>
                </port>
                <port name="Soap12AddTestRpcPort" 
binding="tns:Soap12AddTestRpcBinding">
                        <soap12:address 
location="http://www.whitemesa.net/soap12/add-test-rpc"/>
                </port>
  
        </service>
  
  </definitions>
  
  
  
  1.4       +2 -2      xml-axis/java/test/soap12/TestDeser.java
  
  Index: TestDeser.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/soap12/TestDeser.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestDeser.java    20 Dec 2002 17:28:21 -0000      1.3
  +++ TestDeser.java    19 Jan 2003 21:25:10 -0000      1.4
  @@ -48,8 +48,8 @@
       private final String SOAP_HEAD =
           "<?xml version=\"1.0\"?>\n" +
           "<soap:Envelope " +
  -          "xmlns:soap=\"http://www.w3.org/2002/06/soap-envelope\"; " +
  -          "xmlns:soapenc=\"http://www.w3.org/2002/06/soap-encoding\"; " +
  +          "xmlns:soap=\"http://www.w3.org/2002/12/soap-envelope\"; " +
  +          "xmlns:soapenc=\"http://www.w3.org/2002/12/soap-encoding\"; " +
             "xmlns:this=\"http://encoding.test\"; " +
             "xmlns:xsi=\"" + Constants.URI_DEFAULT_SCHEMA_XSI + "\" " +
             "xmlns:xsd=\"" + Constants.URI_DEFAULT_SCHEMA_XSD + "\">\n";
  
  
  
  1.3       +2 -2      xml-axis/java/test/soap12/TestHrefs.java
  
  Index: TestHrefs.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/soap12/TestHrefs.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TestHrefs.java    16 Jan 2003 23:47:29 -0000      1.2
  +++ TestHrefs.java    19 Jan 2003 21:25:10 -0000      1.3
  @@ -34,8 +34,8 @@
           HEAD =
                   "<?xml version=\"1.0\"?>\n" +
                   "<soap:Envelope " +
  -                "xmlns:soap=\"http://www.w3.org/2002/06/soap-envelope\"; " +
  -                "xmlns:soapenc=\"http://www.w3.org/2002/06/soap-encoding\"; " +
  +                "xmlns:soap=\"http://www.w3.org/2002/12/soap-envelope\"; " +
  +                "xmlns:soapenc=\"http://www.w3.org/2002/12/soap-encoding\"; " +
                   "xmlns:xsi=\"" + NS_XSI + "\" " +
                   "xmlns:xsd=\"" + NS_XSD + "\">\n" +
                   "<soap:Header>\n";
  
  
  
  1.2       +1 -1      xml-axis/java/test/soap12/TestRPC.java
  
  Index: TestRPC.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/soap12/TestRPC.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestRPC.java      20 Dec 2002 17:28:21 -0000      1.1
  +++ TestRPC.java      19 Jan 2003 21:25:10 -0000      1.2
  @@ -86,7 +86,7 @@
   
           // Check DOM
           Element e = body.getAsDOM();
  -        NodeList l = 
e.getElementsByTagNameNS("http://www.w3.org/2002/06/soap-rpc","result";);
  +        NodeList l = 
e.getElementsByTagNameNS("http://www.w3.org/2002/12/soap-rpc","result";);
           assertTrue("No result element was fount", l.getLength() == 1);
           String ptr = l.item(0).getFirstChild().getNodeValue();
           assertNotNull("Ptr to the result value was null", ptr);
  
  
  
  1.2       +1 -1      xml-axis/java/test/soap12/TestVersionMismatch.java
  
  Index: TestVersionMismatch.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/soap12/TestVersionMismatch.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestVersionMismatch.java  7 Jan 2003 21:29:07 -0000       1.1
  +++ TestVersionMismatch.java  19 Jan 2003 21:25:10 -0000      1.2
  @@ -86,7 +86,7 @@
           "<?xml version=\"1.0\"?>\n" +
           "<soap:Envelope " +
             "xmlns:soap=\"http://www.w3.org/2002/wrong-envelope-version\"; " +
  -          "xmlns:soapenc=\"http://www.w3.org/2002/06/soap-encoding\"; " +
  +          "xmlns:soapenc=\"http://www.w3.org/2002/12/soap-encoding\"; " +
             "xmlns:this=\"http://encoding.test\"; " +
             "xmlns:xsi=\"" + Constants.URI_DEFAULT_SCHEMA_XSI + "\" " +
             "xmlns:xsd=\"" + Constants.URI_DEFAULT_SCHEMA_XSD + "\">\n" +
  
  
  
  1.33      +11 -0     xml-axis/java/src/org/apache/axis/utils/WSDLUtils.java
  
  Index: WSDLUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/WSDLUtils.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- WSDLUtils.java    11 Dec 2002 22:38:27 -0000      1.32
  +++ WSDLUtils.java    19 Jan 2003 21:25:11 -0000      1.33
  @@ -56,10 +56,13 @@
   package org.apache.axis.utils;
   
   import org.apache.axis.components.logger.LogFactory;
  +import org.apache.axis.Constants;
   import org.apache.commons.logging.Log;
   
   import javax.wsdl.Port;
   import javax.wsdl.extensions.soap.SOAPAddress;
  +import javax.wsdl.extensions.UnknownExtensibilityElement;
  +import javax.xml.namespace.QName;
   import java.util.List;
   import java.util.ListIterator;
   
  @@ -78,6 +81,14 @@
               Object obj = li.next();
               if (obj instanceof SOAPAddress) {
                   return ((SOAPAddress) obj).getLocationURI();
  +            } else if (obj instanceof UnknownExtensibilityElement){
  +                //TODO: After WSDL4J supports soap12, change this code
  +                UnknownExtensibilityElement unkElement = 
(UnknownExtensibilityElement) obj;
  +                QName name = unkElement.getElementType();
  +                if(name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP) && 
  +                   name.getLocalPart().equals("address")) {
  +                    return unkElement.getElement().getAttribute("location");
  +                }
               }
           }
           // didn't find it
  
  
  


Reply via email to