You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by gd...@apache.org on 2002/03/19 21:04:51 UTC

cvs commit: xml-axis/java/test/wsdl/literal SalesRankNPrice_ServiceTestCase.java

gdaniels    02/03/19 12:04:51

  Modified:    java/src/org/apache/axis/utils Tag: Beta1
                        resources.properties
               java/src/org/apache/axis/wsdl/toJava Tag: Beta1
                        JavaComplexTypeWriter.java JavaFaultWriter.java
                        JavaImplWriter.java JavaSkelWriter.java
                        JavaStubWriter.java JavaTestCaseWriter.java
                        JavaTypeWriter.java JavaWriterFactory.java
                        Parameter.java SchemaUtils.java SymbolTable.java
                        Utils.java
               java/test/wsdl Tag: Beta1 Wsdl2javaTestSuite.xml
               java/test/wsdl/literal Tag: Beta1
                        SalesRankNPrice_ServiceTestCase.java
  Added:       java/src/org/apache/axis/wsdl/toJava Tag: Beta1
                        ElementDecl.java
  Log:
  The main result of these changes is to enable the metadata in generated
  types to correctly reflect the namespaces of the defined elements in
  doc/lit schema.  Along the way, we cleaned up the fairly prevalent usage
  of the "Vector of alternating TypeEntry/String".  In cases where that
  pattern was used, we now either have a Vector of Parameter objects,
  or a Vector of ElementDecl objects.
  
  This should solve a bunch of .NET literal interop issues.
  
  Also reintroduce SalesRankNPriceTest, which works now!
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.73.2.1  +3 -0      xml-axis/java/src/org/apache/axis/utils/resources.properties
  
  Index: resources.properties
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/resources.properties,v
  retrieving revision 1.73
  retrieving revision 1.73.2.1
  diff -u -r1.73 -r1.73.2.1
  --- resources.properties	15 Mar 2002 17:15:52 -0000	1.73
  +++ resources.properties	19 Mar 2002 20:04:50 -0000	1.73.2.1
  @@ -771,3 +771,6 @@
   # NOTE:  in mustSpecifyReturnType and mustSpecifyParms, do not translate "addParameter()" and "setReturnType()"
   mustSpecifyReturnType=No returnType was specified to the Call object!  You must call setReturnType() if you have called addParameter().
   mustSpecifyParms=No parameters specified to the Call object!  You must call addParameter() for all parameters if you have called setReturnType().
  +noElemOrType=Error: Message part {0} of operation {1} should have either an element or a type attribute
  +badTypeNode=Error: Missing type resolution for element {2}, in WSDL message part {0} of operation {1}
  +
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.22.2.2  +35 -32    xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaComplexTypeWriter.java
  
  Index: JavaComplexTypeWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaComplexTypeWriter.java,v
  retrieving revision 1.22.2.1
  retrieving revision 1.22.2.2
  diff -u -r1.22.2.1 -r1.22.2.2
  --- JavaComplexTypeWriter.java	18 Mar 2002 16:16:58 -0000	1.22.2.1
  +++ JavaComplexTypeWriter.java	19 Mar 2002 20:04:50 -0000	1.22.2.2
  @@ -111,9 +111,10 @@
   
           // We are only interested in the java names of the types, so create a names list
           Vector names = new Vector();
  -        for (int i = 0; i < elements.size(); i += 2) {
  -            TypeEntry type = (TypeEntry) elements.get(i);
  -            String elemName = (String) elements.get(i + 1);
  +        for (int i = 0; i < elements.size(); i++) {
  +            ElementDecl elem = (ElementDecl)elements.get(i);
  +            TypeEntry type = elem.getType();
  +            String elemName = elem.getName().getLocalPart();
               String javaName = Utils.xmlNameToJava(elemName);
               if (!javaName.equals(elemName)) {
                   // If we did some mangling, make sure we'll write out the XML
  @@ -121,7 +122,7 @@
                   if (elementMappings == null)
                       elementMappings = new HashMap();
   
  -                elementMappings.put(javaName, new QName("", elemName));
  +                elementMappings.put(javaName, elem.getName());
               }
               names.add(type.getName());
               names.add(javaName);
  @@ -179,7 +180,8 @@
           }
   
           pw.println();
  -        for (int i = 0; i < names.size(); i += 2) {
  +        int j = 0; 
  +        for (int i = 0; i < names.size(); i += 2, j++) {
               String typeName = (String) names.get(i);
               String name = (String) names.get(i + 1);
               String capName = Utils.capitalizeFirstChar(name);
  @@ -206,33 +208,34 @@
               // like the reasonable approach to take for collection types.
               // (It may be more efficient to handle this with an ArrayList...but
               // for the initial support it was easier to use an actual array.) 
  -            if (i < elements.size() &&
  -                    ((TypeEntry) elements.elementAt(i)).getQName().getLocalPart().indexOf("[") > 0) {
  -
  -                String compName = typeName.substring(0, typeName.lastIndexOf("["));
  -
  -                int bracketIndex = typeName.indexOf("[");
  -                String newingName = typeName.substring(0, bracketIndex + 1);
  -                String newingSuffix = typeName.substring(bracketIndex + 1);
  -
  -                pw.println("    public " + compName + " " + get + capName + "(int i) {");
  -                pw.println("        return " + name + "[i];");
  -                pw.println("    }");
  -                pw.println();
  -                pw.println("    public void set" + capName + "(int i, " + compName + " value) {");
  -                pw.println("        if (this." + name + " == null ||");
  -                pw.println("            this." + name + ".length <= i) {");
  -                pw.println("            " + typeName + " a = new " +
  -                           newingName + "i + 1" + newingSuffix + ";");
  -                pw.println("            if (this." + name + " != null) {");
  -                pw.println("                for(int j = 0; j < this." + name + ".length; j++)");
  -                pw.println("                    a[j] = this." + name + "[j];");
  -                pw.println("            }");
  -                pw.println("            this." + name + " = a;");
  -                pw.println("        }");
  -                pw.println("        this." + name + "[i] = value;");
  -                pw.println("    }");
  -                pw.println();
  +            if (j < elements.size()) {
  +                ElementDecl elem = (ElementDecl)elements.get(j);
  +                if (elem.getType().getQName().getLocalPart().indexOf("[") > 0) {
  +                    String compName = typeName.substring(0, typeName.lastIndexOf("["));
  +                    
  +                    int bracketIndex = typeName.indexOf("[");
  +                    String newingName = typeName.substring(0, bracketIndex + 1);
  +                    String newingSuffix = typeName.substring(bracketIndex + 1);
  +                    
  +                    pw.println("    public " + compName + " " + get + capName + "(int i) {");
  +                    pw.println("        return " + name + "[i];");
  +                    pw.println("    }");
  +                    pw.println();
  +                    pw.println("    public void set" + capName + "(int i, " + compName + " value) {");
  +                    pw.println("        if (this." + name + " == null ||");
  +                    pw.println("            this." + name + ".length <= i) {");
  +                    pw.println("            " + typeName + " a = new " +
  +                               newingName + "i + 1" + newingSuffix + ";");
  +                    pw.println("            if (this." + name + " != null) {");
  +                    pw.println("                for(int j = 0; j < this." + name + ".length; j++)");
  +                    pw.println("                    a[j] = this." + name + "[j];");
  +                    pw.println("            }");
  +                    pw.println("            this." + name + " = a;");
  +                    pw.println("        }");
  +                    pw.println("        this." + name + "[i] = value;");
  +                    pw.println("    }");
  +                    pw.println();
  +                }
               }
           }
          
  
  
  
  1.5.4.1   +13 -9     xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaFaultWriter.java
  
  Index: JavaFaultWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaFaultWriter.java,v
  retrieving revision 1.5
  retrieving revision 1.5.4.1
  diff -u -r1.5 -r1.5.4.1
  --- JavaFaultWriter.java	12 Feb 2002 18:33:56 -0000	1.5
  +++ JavaFaultWriter.java	19 Mar 2002 20:04:50 -0000	1.5.4.1
  @@ -90,16 +90,17 @@
   
           // XXX  Have to get use information (literal/encoded) for fault from
           // XXX  BindingEntry, which we don't have the QName for
  -        symbolTable.partStrings(params, 
  +        symbolTable.getParametersFromParts(params, 
                                   fault.getMessage().getOrderedParts(null), 
                                   false, 
                                   fault.getName(), 
                                   "unknown");
   
           // Write data members of the exception and getter methods for them
  -        for (int i = 0; i < params.size(); i += 2) {
  -            String type = ((TypeEntry) params.get(i)).getName();
  -            String variable = (String) params.get(i + 1);
  +        for (int i = 0; i < params.size(); i++) {
  +            Parameter param = (Parameter)params.get(i);
  +            String type = param.getType().getName();
  +            String variable = param.getName();
               pw.println("    public " + type + " " + variable + ";");
               pw.println("    public " + type + " get" + Utils.capitalizeFirstChar(variable) + "() {");
               pw.println("        return this." + variable + ";");
  @@ -115,14 +116,17 @@
           // contructor that initializes data
           if (params.size() > 0) {
               pw.print("      public " + className + "(");
  -            for (int i = 0; i < params.size(); i += 2) {
  +            for (int i = 0; i < params.size(); i++) {
                   if (i != 0) pw.print(", ");
  -                pw.print(((TypeEntry) params.get(i)).getName() + " " + params.get(i + 1));
  +                Parameter param = (Parameter)params.get(i);
  +                String type = param.getType().getName();
  +                String variable = param.getName();
  +                pw.print(type + " " + variable);
               }
               pw.println(") {");
  -            for (int i = 1; i < params.size(); i += 2) {
  -                String variable = (String) params.get(i);
  -
  +            for (int i = 0; i < params.size(); i++) {
  +                Parameter param = (Parameter)params.get(i);
  +                String variable = param.getName();
                   pw.println("        this." + variable + " = " + variable + ";");
               }
               pw.println("    }");
  
  
  
  1.12.2.1  +3 -3      xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaImplWriter.java
  
  Index: JavaImplWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaImplWriter.java,v
  retrieving revision 1.12
  retrieving revision 1.12.2.1
  diff -u -r1.12 -r1.12.2.1
  --- JavaImplWriter.java	27 Feb 2002 13:41:28 -0000	1.12
  +++ JavaImplWriter.java	19 Mar 2002 20:04:50 -0000	1.12.2.1
  @@ -149,14 +149,14 @@
           Iterator iparam = parms.list.iterator();
           while (iparam.hasNext()) {
               Parameter param = (Parameter) iparam.next();
  -            String paramType = param.type.getName();
  +            String paramType = param.getType().getName();
   
               // Note that similar code is in JavaTestCaseWriter.
               // So please check both places if changes are made.
  -            if (param.mode == Parameter.OUT) {
  +            if (param.getMode() == Parameter.OUT) {
                   pw.print("        " + Utils.xmlNameToJava(param.getName())
                           + ".value = ");
  -                if ( isPrimitiveType(param.type) ) {
  +                if ( isPrimitiveType(param.getType()) ) {
                       if ( "boolean".equals(paramType) ) {
                           pw.print("false");
                       } else if ("byte".equals(paramType)) {
  
  
  
  1.17.2.1  +2 -2      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.17
  retrieving revision 1.17.2.1
  diff -u -r1.17 -r1.17.2.1
  --- JavaSkelWriter.java	13 Mar 2002 19:50:58 -0000	1.17
  +++ JavaSkelWriter.java	19 Mar 2002 20:04:50 -0000	1.17.2.1
  @@ -208,9 +208,9 @@
                   }
                   for (int j=0; j < parameters.list.size(); j++) {
                       Parameter p = (Parameter) parameters.list.get(j);
  -                    if (p.mode == Parameter.IN)
  +                    if (p.getMode() == Parameter.IN)
                           pw.println("                   javax.xml.rpc.ParameterMode.PARAM_MODE_IN,");
  -                    else if (p.mode == Parameter.OUT) 
  +                    else if (p.getMode() == Parameter.OUT) 
                           pw.println("                   javax.xml.rpc.ParameterMode.PARAM_MODE_INOUT,");
                       else
                           pw.println("                   javax.xml.rpc.ParameterMode.PARAM_MODE_OUT,");
  
  
  
  1.45.2.2  +25 -25    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.45.2.1
  retrieving revision 1.45.2.2
  diff -u -r1.45.2.1 -r1.45.2.2
  --- JavaStubWriter.java	18 Mar 2002 23:03:17 -0000	1.45.2.1
  +++ JavaStubWriter.java	19 Mar 2002 20:04:50 -0000	1.45.2.2
  @@ -341,7 +341,7 @@
           // Loop over parameter types for this operation
           for (int i=0; i < params.list.size(); i++) {
               Parameter p = (Parameter) params.list.get(i);
  -            v.add(p.type);
  +            v.add(p.getType());
           }
           
           // Add the return type
  @@ -501,9 +501,9 @@
               Parameter p = (Parameter) parms.list.get(i);
   
               // We need to use the Qname of the actual type, not the QName of the element
  -            QName qn = p.type.getQName();
  -            if (p.type instanceof DefinedElement) {
  -                Node node = symbolTable.getTypeEntry(p.type.getQName(), true).getNode();
  +            QName qn = p.getType().getQName();
  +            if (p.getType() instanceof DefinedElement) {
  +                Node node = symbolTable.getTypeEntry(p.getType().getQName(), true).getNode();
                   QName qn2 = Utils.getNodeTypeRefQName(node, "type");
                   if (qn2 != null) {
                       qn = qn2;
  @@ -518,15 +518,15 @@
               pw.println("        javax.xml.rpc.namespace.QName " + qnName + " = new javax.xml.rpc.namespace.QName(\"" +
                       paramQName.getNamespaceURI() + "\", \"" +
                       paramQName.getLocalPart() + "\");");
  -            if (p.mode == Parameter.IN) {
  +            if (p.getMode() == Parameter.IN) {
                   pw.println("        call.addParameter(" + qnName + ", "
                              + typeString + ", javax.xml.rpc.ParameterMode.PARAM_MODE_IN);");
               }
  -            else if (p.mode == Parameter.INOUT) {
  +            else if (p.getMode() == Parameter.INOUT) {
                   pw.println("        call.addParameter(" + qnName + ", "
                              + typeString + ", javax.xml.rpc.ParameterMode.PARAM_MODE_INOUT);");
               }
  -            else { // p.mode == Parameter.OUT
  +            else { // p.getMode() == Parameter.OUT
                   pw.println("        call.addParameter(" + qnName + ", "
                              + typeString + ", javax.xml.rpc.ParameterMode.PARAM_MODE_OUT);");
               }
  @@ -596,18 +596,18 @@
               Parameter p = (Parameter) parms.list.get(i);
   
               String javifiedName = Utils.xmlNameToJava(p.getName());
  -            if (p.mode != Parameter.OUT) {
  +            if (p.getMode() != Parameter.OUT) {
                   if (needComma) {
                       pw.print(", ");
                   }
                   else {
                       needComma = true;
                   }
  -                if (p.mode == Parameter.IN) {
  -                    pw.print(wrapPrimitiveType(p.type, javifiedName));
  +                if (p.getMode() == Parameter.IN) {
  +                    pw.print(wrapPrimitiveType(p.getType(), javifiedName));
                   }
                   else { 
  -                    pw.print(wrapPrimitiveType(p.type, javifiedName + ".value"));
  +                    pw.print(wrapPrimitiveType(p.getType(), javifiedName + ".value"));
                   }
               }
           }
  @@ -627,7 +627,7 @@
                       int i = 0;
                       Parameter p = (Parameter) parms.list.get(i);
   
  -                    while (p.mode != Parameter.INOUT) {
  +                    while (p.getMode() != Parameter.INOUT) {
                           p = (Parameter) parms.list.get(++i);
                       }
                       String javifiedName = Utils.xmlNameToJava(p.getName());
  @@ -641,17 +641,17 @@
                       // NOTE A:
                       // It seems that it should be the responsibility of the 
                       // Call to convert the ArrayList into the proper array.
  -                    if (p.type.getName().endsWith("[]")) {
  +                    if (p.getType().getName().endsWith("[]")) {
                           pw.println("            // REVISIT THIS!");
                           pw.println("            " + javifiedName
  -                                    + ".value = (" + p.type.getName()
  +                                    + ".value = (" + p.getType().getName()
                                       + ") org.apache.axis.utils.JavaUtils.convert(output.get("
  -                                    + qnameName + "), " + p.type.getName()
  +                                    + qnameName + "), " + p.getType().getName()
                                       + ".class);");
                       }
                       else {
                           pw.println("            " + javifiedName + ".value = "
  -                                + getResponseString(p.type,
  +                                + getResponseString(p.getType(),
                                   "output.get(" + qnameName + ")"));
                       }
                   }
  @@ -687,40 +687,40 @@
                       String javifiedName = Utils.xmlNameToJava(p.getName());
                       String qnameName = Utils.getNewQName(
                               Utils.getAxisQName(p.getQName()));
  -                    if (p.mode != Parameter.IN) {
  +                    if (p.getMode() != Parameter.IN) {
                           if (firstInoutIsResp) {
                               firstInoutIsResp = false;
                               // If expecting an array, need to call convert(..) because
                               // the runtime stores arrays in a different form (ArrayList). 
                               // (See NOTE A)
  -                            if (p.type.getName().endsWith("[]")) {
  +                            if (p.getType().getName().endsWith("[]")) {
                                   pw.println("             // REVISIT THIS!");
                                   pw.println ("            " + javifiedName
  -                                        + ".value = (" + p.type.getName()
  +                                        + ".value = (" + p.getType().getName()
                                           + ") org.apache.axis.utils.JavaUtils.convert(output.get(" + qnameName + "), "
  -                                        + p.type.getName() + ".class);");
  +                                        + p.getType().getName() + ".class);");
                               }
                               else {
                                   pw.println ("            " + javifiedName +
                                               ".value = " +
  -                                            getResponseString(p.type,  "output.get(" + qnameName + ")"));
  +                                            getResponseString(p.getType(),  "output.get(" + qnameName + ")"));
                               }
                           }
                           else {
                               // If expecting an array, need to call convert(..) because
                               // the runtime stores arrays in a different form (ArrayList). 
                               // (See NOTE A)
  -                            if (p.type.getName().endsWith("[]")) {
  +                            if (p.getType().getName().endsWith("[]")) {
                                   pw.println("             // REVISIT THIS!");
                                   pw.println ("            " + javifiedName
  -                                            + ".value = (" + p.type.getName()
  +                                            + ".value = (" + p.getType().getName()
                                               + ") org.apache.axis.utils.JavaUtils.convert("
                                               + "output.get(" + qnameName + "), "
  -                                            + p.type.getName() + ".class);");
  +                                            + p.getType().getName() + ".class);");
                               }
                               else {
                                   pw.println ("            " + javifiedName
  -                                            + ".value = " + getResponseString(p.type,
  +                                            + ".value = " + getResponseString(p.getType(),
                                       "output.get(" + qnameName + ")"));
                               }
                           }
  
  
  
  1.17.4.1  +6 -6      xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaTestCaseWriter.java
  
  Index: JavaTestCaseWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaTestCaseWriter.java,v
  retrieving revision 1.17
  retrieving revision 1.17.4.1
  diff -u -r1.17 -r1.17.4.1
  --- JavaTestCaseWriter.java	16 Feb 2002 23:30:49 -0000	1.17
  +++ JavaTestCaseWriter.java	19 Mar 2002 20:04:50 -0000	1.17.4.1
  @@ -216,17 +216,17 @@
                   }
   
                   Parameter param = (Parameter) iparam.next();
  -                String paramType = param.type.getName();
  +                String paramType = param.getType().getName();
                   String suffix = "";
   
  -                if (param.mode != Parameter.IN) {
  -                    pw.print("new " + Utils.holder(param.type, symbolTable)
  +                if (param.getMode() != Parameter.IN) {
  +                    pw.print("new " + Utils.holder(param.getType(), symbolTable)
                               + "(");
                       suffix = ")";
                   }
   
  -                if (param.mode != Parameter.OUT) {
  -                    if ( isPrimitiveType(param.type) ) {
  +                if (param.getMode() != Parameter.OUT) {
  +                    if ( isPrimitiveType(param.getType()) ) {
                           if ( "boolean".equals(paramType) ) {
                               pw.print("true");
                           } else if ("byte".equals(paramType)) {
  @@ -265,7 +265,7 @@
   
                           // We have some constructed type.
                           Vector v = SchemaUtils.getEnumerationBaseAndValues(
  -                                param.type.getNode(), symbolTable);
  +                                param.getType().getNode(), symbolTable);
   
                           if (v != null) {
   
  
  
  
  1.5.4.1   +1 -1      xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaTypeWriter.java
  
  Index: JavaTypeWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaTypeWriter.java,v
  retrieving revision 1.5
  retrieving revision 1.5.4.1
  diff -u -r1.5 -r1.5.4.1
  --- JavaTypeWriter.java	21 Feb 2002 18:51:23 -0000	1.5
  +++ JavaTypeWriter.java	19 Mar 2002 20:04:50 -0000	1.5.4.1
  @@ -91,7 +91,7 @@
               if (!type.getName().endsWith("[]")) {
   
                   // Generate the proper class for either "complex" or "enumeration" types
  -                Vector v = SchemaUtils.getComplexElementTypesAndNames(
  +                Vector v = SchemaUtils.getComplexElementDeclarations(
                           node, symbolTable);
                   if (v != null) {
                       typeWriter = new 
  
  
  
  1.18.2.2  +6 -6      xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriterFactory.java
  
  Index: JavaWriterFactory.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriterFactory.java,v
  retrieving revision 1.18.2.1
  retrieving revision 1.18.2.2
  diff -u -r1.18.2.1 -r1.18.2.2
  --- JavaWriterFactory.java	18 Mar 2002 23:03:17 -0000	1.18.2.1
  +++ JavaWriterFactory.java	19 Mar 2002 20:04:50 -0000	1.18.2.2
  @@ -500,11 +500,11 @@
               }
   
               String javifiedName = Utils.xmlNameToJava(p.getName());
  -            if (p.mode == Parameter.IN) {
  -                signature = signature + p.type.getName() + " " + javifiedName;
  +            if (p.getMode() == Parameter.IN) {
  +                signature = signature + p.getType().getName() + " " + javifiedName;
               }
               else {
  -                signature = signature + Utils.holder(p.type, symbolTable) + " "
  +                signature = signature + Utils.holder(p.getType(), symbolTable) + " "
                           + javifiedName;
               }
           }
  @@ -540,15 +540,15 @@
                               
                               // If the given parameter is an inout or out parameter, then
                               // set a HOLDER_IS_NEEDED flag using the dynamicVar design.
  -                            if (p.mode != Parameter.IN) {
  -                                p.type.setDynamicVar(
  +                            if (p.getMode() != Parameter.IN) {
  +                                p.getType().setDynamicVar(
                                           JavaTypeWriter.HOLDER_IS_NEEDED,
                                           new Boolean(true));
   
                                   // If the type is a DefinedElement, need to 
                                   // set HOLDER_IS_NEEDED on the anonymous type.
                                   QName anonQName = SchemaUtils.
  -                                    getElementAnonQName(p.type.getNode());
  +                                    getElementAnonQName(p.getType().getNode());
                                   if (anonQName != null) {
                                       TypeEntry anonType = 
                                           symbolTable.getType(anonQName);
  
  
  
  1.3.2.1   +35 -8     xml-axis/java/src/org/apache/axis/wsdl/toJava/Parameter.java
  
  Index: Parameter.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Parameter.java,v
  retrieving revision 1.3
  retrieving revision 1.3.2.1
  diff -u -r1.3 -r1.3.2.1
  --- Parameter.java	27 Feb 2002 13:41:28 -0000	1.3
  +++ Parameter.java	19 Mar 2002 20:04:50 -0000	1.3.2.1
  @@ -67,9 +67,15 @@
       public static final byte OUT = 2;
       public static final byte INOUT = 3;
   
  -    private QName name;
  -    public TypeEntry type;
  -    public byte mode = IN;
  +    // The QName of the element associated with this param.  Defaults to
  +    // null, which means it'll be new QName("", name)
  +    private QName qname;
  +    
  +    // The part name of this parameter, just a string.
  +    private String name;
  +    
  +    private TypeEntry type;
  +    private byte mode = IN;
   
       public String toString() {
           return "(" + type + ", " + getName() + ", "
  @@ -77,18 +83,39 @@
       } // toString
   
       public QName getQName() {
  -        return name;
  +        return qname;
       }
   
       public String getName() {
  -        return name.getLocalPart();
  +        if (name == null && qname != null) {
  +            return qname.getLocalPart();
  +        }
  +        return name;
       }
   
       public void setName(String name) {
  -        this.name = new QName("", name);
  +        this.name = name;
  +        if (qname == null)
  +            this.qname = new QName("", name);
       }
   
  -    public void setQName(QName name) {
  -        this.name = name;
  +    public void setQName(QName qname) {
  +        this.qname = qname;
  +    }
  +
  +    public TypeEntry getType() {
  +        return type;
  +    }
  +
  +    public void setType(TypeEntry type) {
  +        this.type = type;
  +    }
  +
  +    public byte getMode() {
  +        return mode;
  +    }
  +
  +    public void setMode(byte mode) {
  +        this.mode = mode;
       }
   } // class Parameter
  
  
  
  1.14.2.1  +46 -26    xml-axis/java/src/org/apache/axis/wsdl/toJava/SchemaUtils.java
  
  Index: SchemaUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/SchemaUtils.java,v
  retrieving revision 1.14
  retrieving revision 1.14.2.1
  diff -u -r1.14 -r1.14.2.1
  --- SchemaUtils.java	13 Mar 2002 15:19:27 -0000	1.14
  +++ SchemaUtils.java	19 Mar 2002 20:04:50 -0000	1.14.2.1
  @@ -83,13 +83,13 @@
   
       /**
        * If the specified node represents a supported JAX-RPC complexType/element,
  -     * a Vector is returned which contains the child element types and
  -     * child element names.  The even indices are the element types (TypeEntry) and
  -     * the odd indices are the corresponding names (Strings).
  +     * a Vector is returned which contains ElementDecls for the child
  +     * elements.
  +     * 
        * If the specified node is not a supported JAX-RPC complexType/element
        * null is returned.
        */
  -    public static Vector getComplexElementTypesAndNames(Node node, SymbolTable symbolTable) {
  +    public static Vector getComplexElementDeclarations(Node node, SymbolTable symbolTable) {
           if (node == null) {
               return null;
           }
  @@ -156,17 +156,21 @@
                           QName extendsType =
                                   Utils.getNodeTypeRefQName(children.item(j), 
                                                             "base");
  -                        Vector v = new Vector();
  -                        v.add(symbolTable.getTypeEntry(extendsType, false));
  -                        v.add("value"); // A fixed, implementation specific name
                           
  -                        // done
  +                        // Return an element declaration with a fixed name
  +                        // ("value") and the correct type.
  +                        
  +                        Vector v = new Vector();
  +                        ElementDecl elem = new ElementDecl();
  +                        elem.setType(symbolTable.getTypeEntry(extendsType, false));
  +                        elem.setName(new javax.xml.rpc.namespace.QName("", "value"));
  +                        v.add(elem);
                           return v;
                       }
                           
                   }
  -                
               }
  +
               if (extension != null) {
                   node = extension;  // Skip over complexContent and extension
               }
  @@ -188,8 +192,8 @@
                   // didn't find anything
                   return new Vector();
               }
  -            if (groupNode != null) {
   
  +            if (groupNode != null) {
                   // Process each of the choice or element nodes under the sequence/all node
                   Vector v = new Vector();
                   NodeList elements = groupNode.getChildNodes();
  @@ -198,7 +202,11 @@
                       if (elementKind != null &&
                           Constants.isSchemaXSD(elementKind.getNamespaceURI())) {
                           if ( elementKind.getLocalPart().equals("element")) {
  -                            v.addAll(processChildElementNode(elements.item(i), symbolTable));
  +                            ElementDecl elem = 
  +                                    processChildElementNode(elements.item(i), 
  +                                                            symbolTable);
  +                            if (elem != null)
  +                                v.add(elem);
                           } else if (elementKind.getLocalPart().equals("choice")) {
                               Vector choiceElems = processChoiceNode(elements.item(i), symbolTable);
                               v.addAll(choiceElems);
  @@ -215,7 +223,8 @@
        * Invoked by getComplexElementTypesAndNames to get the child element types
        * and child element names underneath a Choice Node
        */
  -    private static Vector processChoiceNode(Node choiceNode, SymbolTable symbolTable) {
  +    private static Vector processChoiceNode(Node choiceNode, 
  +                                            SymbolTable symbolTable) {
           Vector v = new Vector();
           NodeList children = choiceNode.getChildNodes();
           for (int j = 0; j < children.getLength(); j++) {
  @@ -229,7 +238,11 @@
                   } else if (subNodeKind.getLocalPart().equals("group")) {
                       v.addAll(processGroupNode(children.item(j), symbolTable));
                   } else if (subNodeKind.getLocalPart().equals("element")) {
  -                    v.addAll(processChildElementNode(children.item(j), symbolTable));
  +                    ElementDecl elem = 
  +                            processChildElementNode(children.item(j), 
  +                                                    symbolTable);
  +                    if (elem != null)
  +                        v.add(elem);
                   }
               }
           }
  @@ -240,7 +253,8 @@
        * Invoked by getComplexElementTypesAndNames to get the child element types
        * and child element names underneath a Sequence Node
        */
  -    private static Vector processSequenceNode(Node sequenceNode, SymbolTable symbolTable) {
  +    private static Vector processSequenceNode(Node sequenceNode, 
  +                                              SymbolTable symbolTable) {
           Vector v = new Vector();
           NodeList children = sequenceNode.getChildNodes();
           for (int j = 0; j < children.getLength(); j++) {
  @@ -254,7 +268,11 @@
                   } else if (subNodeKind.getLocalPart().equals("group")) {
                       v.addAll(processGroupNode(children.item(j), symbolTable));
                   } else if (subNodeKind.getLocalPart().equals("element")) {
  -                    v.addAll(processChildElementNode(children.item(j), symbolTable));
  +                    ElementDecl elem = 
  +                            processChildElementNode(children.item(j), 
  +                                                    symbolTable);
  +                    if (elem != null)
  +                        v.add(elem);
                   }
               }
           }
  @@ -298,7 +316,11 @@
               if (subNodeKind != null &&
                   Constants.isSchemaXSD(subNodeKind.getNamespaceURI())) {
                   if (subNodeKind.getLocalPart().equals("element")) {
  -                    v.addAll(processChildElementNode(children.item(j), symbolTable));
  +                    ElementDecl elem = 
  +                            processChildElementNode(children.item(j), 
  +                                                    symbolTable);
  +                    if (elem != null)
  +                        v.add(elem);
                   }
               }
           }
  @@ -311,14 +333,11 @@
        * and child element name for a child element node.
        *
        * If the specified node represents a supported JAX-RPC child element,
  -     * a Vector is returned which contains the child element type and
  -     * child element name.  The 0th index is the element types (TypeEntry) and
  -     * the 1st index is the corresponding name (Strings).
  +     * we return an ElementDecl containing the child element name and type.
        */
  -    private static Vector processChildElementNode(Node elementNode, SymbolTable symbolTable) {
  -        Vector v = new Vector();
  +    private static ElementDecl processChildElementNode(Node elementNode, 
  +                                                  SymbolTable symbolTable) {
           // Get the name and type qnames.
  -        // The name of the element is the local part of the name's qname.
           // The type qname is used to locate the TypeEntry, which is then
           // used to retrieve the proper java name of the type.
           QName nodeName = Utils.getNodeNameQName(elementNode);
  @@ -329,12 +348,13 @@
               forElement.value = false;
           }
           
  -        TypeEntry type = (TypeEntry) symbolTable.getTypeEntry(nodeType, forElement.value);
  +        TypeEntry type = (TypeEntry)symbolTable.getTypeEntry(nodeType, 
  +                                                             forElement.value);
           if (type != null) {
  -            v.add(type);
  -            v.add(nodeName.getLocalPart());
  +            return new ElementDecl(type, Utils.getAxisQName(nodeName));
           }
  -        return v;
  +        
  +        return null;
       }
   
       /**
  
  
  
  1.44.2.2  +125 -75   xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java
  
  Index: SymbolTable.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java,v
  retrieving revision 1.44.2.1
  retrieving revision 1.44.2.2
  diff -u -r1.44.2.1 -r1.44.2.2
  --- SymbolTable.java	18 Mar 2002 23:03:17 -0000	1.44.2.1
  +++ SymbolTable.java	19 Mar 2002 20:04:50 -0000	1.44.2.2
  @@ -866,8 +866,7 @@
                                                 BindingEntry bindingEntry) throws IOException {
           Parameters parameters = new Parameters();
   
  -        // The input and output Vectors, when filled in, will be of the form:
  -        // {<parmType0>, <parmName0>, <parmType1>, <parmName1>, ..., <parmTypeN>, <parmNameN>}
  +        // The input and output Vectors of Parameters
           Vector inputs = new Vector();
           Vector outputs = new Vector();
   
  @@ -903,17 +902,17 @@
           // Collect all the input parameters
           Input input = operation.getInput();
           if (input != null) {
  -            partStrings(inputs,
  -                    input.getMessage().getOrderedParts(null), 
  -                    literalInput, operation.getName(), bindingName);
  +            getParametersFromParts(inputs,
  +                        input.getMessage().getOrderedParts(null), 
  +                        literalInput, operation.getName(), bindingName);
           }
   
           // Collect all the output parameters
           Output output = operation.getOutput();
           if (output != null) {
  -            partStrings(outputs,
  -                    output.getMessage().getOrderedParts(null), 
  -                    literalOutput, operation.getName(), bindingName);
  +            getParametersFromParts(outputs,
  +                        output.getMessage().getOrderedParts(null), 
  +                        literalOutput, operation.getName(), bindingName);
           }
   
           if (parameterOrder != null) {
  @@ -928,11 +927,11 @@
                   // index in the outputs Vector of the given name, -1 if it doesn't exist.
                   int outdex = getPartIndex(name, outputs);
   
  -                if (index > 0) {
  +                if (index >= 0) {
                       // The mode of this parameter is either in or inout
                       addInishParm(inputs, outputs, index, outdex, parameters, true);
                   }
  -                else if (outdex > 0) {
  +                else if (outdex >= 0) {
                       addOutParm(outputs, outdex, parameters, true);
                   }
                   else {
  @@ -941,32 +940,34 @@
               }
           }
   
  -        // Get the mode info about those parts that aren't in the parameterOrder list.
  -        // Since they're not in the parameterOrder list, the order is, first all in (and
  -        // inout) parameters, then all out parameters, in the order they appear in the
  -        // messages.
  -        for (int i = 1; i < inputs.size(); i += 2) {
  -            int outdex = getPartIndex((String) inputs.get(i), outputs);
  +        // Get the mode info about those parts that aren't in the 
  +        // parameterOrder list. Since they're not in the parameterOrder list,
  +        // the order is, first all in (and inout) parameters, then all out
  +        // parameters, in the order they appear in the messages.
  +        for (int i = 0; i < inputs.size(); i++) {
  +            Parameter p = (Parameter)inputs.get(i);
  +            int outdex = getPartIndex(p.getName(), outputs);
               addInishParm(inputs, outputs, i, outdex, parameters, false);
           }
   
  -        // Now that the remaining in and inout parameters are collected, determine the status of
  -        // outputs.  If there is only 1, then it is the return value.  If there are more than 1,
  -        // then they are out parameters.
  -        if (outputs.size() == 2) {
  -            parameters.returnType = (TypeEntry) outputs.get(0);
  +        // Now that the remaining in and inout parameters are collected,
  +        // determine the status of outputs.  If there is only 1, then it
  +        // is the return value.  If there are more than 1, then they are 
  +        // out parameters.
  +        if (outputs.size() == 1) {
  +            Parameter returnParam = (Parameter)outputs.get(0);
  +            parameters.returnType = returnParam.getType();
               if (parameters.returnType instanceof DefinedElement) {
                   parameters.returnName = Utils.getAxisQName( 
                           ((DefinedElement)parameters.returnType).getQName());
               } else {
                   parameters.returnName = 
  -                     new javax.xml.rpc.namespace.QName(null, 
  -                                                       (String)outputs.get(1));
  +                        Utils.getAxisQName(returnParam.getQName()); 
               }
               ++parameters.outputs;
           }
           else {
  -            for (int i = 1; i < outputs.size(); i += 2) {
  +            for (int i = 0; i < outputs.size(); i++) {
                   addOutParm(outputs, i, parameters, false);
               }
           }
  @@ -990,8 +991,8 @@
        * Return the index of the given name in the given Vector, -1 if it doesn't exist.
        */
       private int getPartIndex(String name, Vector v) {
  -        for (int i = 1; i < v.size(); i += 2) {
  -            if (name.equals(v.get(i))) {
  +        for (int i = 0; i < v.size(); i++) {
  +            if (name.equals(((Parameter)v.get(i)).getName())) {
                   return i;
               }
           }
  @@ -1001,71 +1002,84 @@
       /**
        * Add an in or inout parameter to the parameters object.
        */
  -    private void addInishParm(Vector inputs, Vector outputs, int index, int outdex, Parameters parameters, boolean trimInput) {
  -        Parameter p = new Parameter();
  -        p.type = (TypeEntry) inputs.get(index - 1);
  +    private void addInishParm(Vector inputs, 
  +                              Vector outputs, 
  +                              int index, 
  +                              int outdex, 
  +                              Parameters parameters, 
  +                              boolean trimInput) {        
  +        Parameter p = (Parameter)inputs.get(index);
           // If this is an element, we want the XML to reflect the element name
           // not the part name.
  -        if (p.type instanceof DefinedElement) {
  -            DefinedElement de = (DefinedElement)p.type;
  +        if (p.getType() instanceof DefinedElement) {
  +            DefinedElement de = (DefinedElement)p.getType();
               p.setQName(de.getQName());
  -        } else {
  -            p.setName((String) inputs.get(index));
           }
   
           // Should we remove the given parameter type/name entries from the Vector?
           if (trimInput) {
               inputs.remove(index);
  -            inputs.remove(index - 1);
           }
   
           // At this point we know the name and type of the parameter, and that it's at least an
           // in parameter.  Now check to see whether it's also in the outputs Vector.  If it is,
           // then it's an inout parameter.
  -        if (outdex > 0 && p.type.equals(outputs.get(outdex - 1))) {
  -            outputs.remove(outdex);
  -            outputs.remove(outdex - 1);
  -            p.mode = Parameter.INOUT;
  -            ++parameters.inouts;
  -        }
  -        else {
  +        if (outdex >= 0) {
  +            Parameter outParam = (Parameter)outputs.get(outdex);
  +            if (p.getType().equals(outParam.getType())) {
  +                outputs.remove(outdex);
  +                p.setMode(Parameter.INOUT);
  +                ++parameters.inouts;
  +            } else {
  +                // If we're here, we have both an input and an output
  +                // part with the same name but different types.... guess
  +                // it's not really an inout....
  +                ++parameters.inputs;  // Is this OK??
  +            }
  +        } else {
               ++parameters.inputs;
           }
  +        
           parameters.list.add(p);
       } // addInishParm
   
       /**
        * Add an output parameter to the parameters object.
        */
  -    private void addOutParm(Vector outputs, int outdex, Parameters parameters, boolean trim) {
  -        Parameter p = new Parameter();
  -        p.type = (TypeEntry) outputs.get(outdex - 1);
  +    private void addOutParm(Vector outputs, 
  +                            int outdex, 
  +                            Parameters parameters, 
  +                            boolean trim) {
  +        Parameter p = (Parameter)outputs.get(outdex);
   
  -        if (p.type instanceof DefinedElement) {
  -            DefinedElement de = (DefinedElement)p.type;
  +        if (p.getType() instanceof DefinedElement) {
  +            DefinedElement de = (DefinedElement)p.getType();
               p.setQName(de.getQName());
  -        } else {
  -            p.setName((String) outputs.get(outdex));
           }
   
           if (trim) {
               outputs.remove(outdex);
  -            outputs.remove(outdex - 1);
           }
  -        p.mode = Parameter.OUT;
  +
  +        p.setMode(Parameter.OUT);
           ++parameters.outputs;
           parameters.list.add(p);
       } // addOutParm
   
       /**
  -     * This method returns a vector containing the Java types (even indices) and
  -     * names (odd indices) of the parts.
  +     * This method returns a vector containing Parameters which represent
  +     * each Part (shouldn't we call these "Parts" or something?)
        */
  -    protected void partStrings(Vector v, Collection parts, boolean literal, String opName, String bindingName) 
  +    protected void getParametersFromParts(Vector v, 
  +                                          Collection parts, 
  +                                          boolean literal, 
  +                                          String opName, 
  +                                          String bindingName) 
               throws IOException {
           Iterator i = parts.iterator();
   
           while (i.hasNext()) {
  +            Parameter param = new Parameter();
               Part part = (Part) i.next();
               QName elementName = part.getElementName();
               QName typeName = part.getTypeName();
  @@ -1076,27 +1090,32 @@
                   wrapped = true;
               
               if (!literal || !wrapped) {
  -                // not doing literal use, add this type or element name
  +                // We're either RPC or literal + not wrapped.
  +                
  +                param.setName(partName);
  +
  +                // Add this type or element name
                   if (typeName != null) {
  -                    v.add(getType(typeName));
  -                    v.add(partName);
  +                    param.setType(getType(typeName));
                   } else if (elementName != null) {
                       // Just an FYI: The WSDL spec says that for use=encoded
                       // that parts reference an abstract type using the type attr
                       // but we kinda do the right thing here, so let it go.
  -                    v.add(getElement(elementName));
  -                    v.add(partName);
  +                    param.setType(getElement(elementName));
                   }
  +                                
  +                v.add(param);
  +                
                   continue;   // next part
               }
               
  -            // flow to here means literal use (no encoding)
  +            // flow to here means literal + wrapped!
                   
               // See if we can map all the XML types to java types
               // if we can, we use these as the types
               Node node = null;
               Element e;
  -            if (typeName != null && elementName == null) {
  +            if (typeName != null) {
                   // Since we can't (yet?) make the Axis engine generate the right
                   // XML for literal parts that specify the type attribute,
                   // abort processing with an error if we encounter this case
  @@ -1109,34 +1128,65 @@
                                                              bindingName}));
               }
               
  -            if (elementName != null) {
  -                node = getTypeEntry(elementName, true).getNode();
  -                // Check if this element is of the form:
  -                //    <element name="foo" type="tns:foo_type"/> 
  -                QName type = Utils.getNodeTypeRefQName(node, "type");
  -                if (type != null)
  -                    node = getTypeEntry(type, false).getNode();
  +            if (elementName == null) {
  +                throw new IOException(
  +                        JavaUtils.getMessage("noElemOrType", 
  +                                             partName, 
  +                                             opName));                
  +            }
  +            
  +            // Get the node which corresponds to the type entry for this
  +            // element.  i.e.:
  +            //  <part name="part" element="foo:bar"/>
  +            //  ...
  +            //  <schema targetNamespace="foo">
  +            //    <element name="bar"...>  <--- This one
  +            node = getTypeEntry(elementName, true).getNode();
  +            
  +            // Check if this element is of the form:
  +            //    <element name="foo" type="tns:foo_type"/> 
  +            QName type = Utils.getNodeTypeRefQName(node, "type");
  +            if (type != null) {
  +                // If in fact we have such a type, go get the node that
  +                // corresponds to THAT definition.
  +                node = getTypeEntry(type, false).getNode();
               }
               
  -            if (node == null)
  -                continue;  // ??? Skip this part, something is wrong
  +            // If we have nothing at this point, we're in trouble.
  +            if (node == null) {
  +                throw new IOException(
  +                        JavaUtils.getMessage("badTypeNode", 
  +                                             new String[] {
  +                                                 partName, 
  +                                                 opName,  
  +                                                 elementName.toString()}));                
  +            }
   
               // Get the nested type entries.
               Vector vTypes =
  -                    SchemaUtils.getComplexElementTypesAndNames(node, this);
  +                    SchemaUtils.getComplexElementDeclarations(node, this);
   
               if (vTypes != null) {
                   // add the elements in this list
  -                v.addAll(vTypes);
  +                for (int j = 0; j < vTypes.size(); j++) {
  +                    ElementDecl elem = (ElementDecl) vTypes.elementAt(j);
  +                    Parameter p = new Parameter();
  +                    p.setQName(Utils.getWSDLQName(elem.getName()));
  +                    p.setType(elem.getType());
  +                    v.add(p);
  +                }
               } else {
                   // XXX - This should be a SOAPElement/SOAPBodyElement
  +                Parameter p = new Parameter();
  +                p.setName(partName);
  +                
                   if (typeName != null) {
  -                    v.add(getType(typeName));
  -                    v.add(partName);
  +                    p.setType(getType(typeName));
                   } else if (elementName != null) {
  -                    v.add(getElement(elementName));
  -                    v.add(partName);
  +                    p.setType(getElement(elementName));
                   }
  +                
  +                v.add(p);
               }
           } // while
           
  
  
  
  1.19.2.2  +14 -7     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.19.2.1
  retrieving revision 1.19.2.2
  diff -u -r1.19.2.1 -r1.19.2.2
  --- Utils.java	18 Mar 2002 23:03:17 -0000	1.19.2.1
  +++ Utils.java	19 Mar 2002 20:04:50 -0000	1.19.2.2
  @@ -614,15 +614,17 @@
       } // getNestedTypes
   
       private static void getNestedTypes(
  -            Node type, HashSet types,SymbolTable symbolTable) {
  +            Node type, HashSet types, SymbolTable symbolTable) {
           // Process types declared in this type
  -        Vector v = SchemaUtils.getComplexElementTypesAndNames(type, symbolTable);
  +        Vector v = SchemaUtils.getComplexElementDeclarations(type, symbolTable);
           if (v != null) {
  -            for (int i = 0; i < v.size(); i+=2) {
  -                if (!types.contains(v.get(i))) {
  -                    types.add(v.get(i));
  -                    getNestedTypes(
  -                            ((TypeEntry) v.get(i)).getNode(), types, symbolTable);
  +            for (int i = 0; i < v.size(); i++) {
  +                ElementDecl elem = (ElementDecl)v.get(i);
  +                if (!types.contains(elem.getType())) {
  +                    types.add(elem.getType());
  +                    getNestedTypes(elem.getType().getNode(), 
  +                                   types, 
  +                                   symbolTable);
                   }
               }
           }
  @@ -704,6 +706,11 @@
       {
           return new javax.xml.rpc.namespace.QName(qname.getNamespaceURI(),
                                                    qname.getLocalPart());
  +    }
  +    
  +    public static QName getWSDLQName(javax.xml.rpc.namespace.QName qname)
  +    {
  +        return new QName(qname.getNamespaceURI(), qname.getLocalPart());
       }
   }
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +94 -0     xml-axis/java/src/org/apache/axis/wsdl/toJava/Attic/ElementDecl.java
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.87.2.1  +2 -2      xml-axis/java/test/wsdl/Wsdl2javaTestSuite.xml
  
  Index: Wsdl2javaTestSuite.xml
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/wsdl/Wsdl2javaTestSuite.xml,v
  retrieving revision 1.87
  retrieving revision 1.87.2.1
  diff -u -r1.87 -r1.87.2.1
  --- Wsdl2javaTestSuite.xml	12 Mar 2002 16:13:37 -0000	1.87
  +++ Wsdl2javaTestSuite.xml	19 Mar 2002 20:04:51 -0000	1.87.2.1
  @@ -719,9 +719,9 @@
       <!-- This tests .NET document/literal WSDL.
            We get this WSDL file from the internet on purpose,
            file is only for reference.
  -     -->
  -    <!-- <wsdl2java url="http://www.perfectxml.net/WebServices/SalesRankNPrice/BookService.asmx?WSDL" -->
       <wsdl2java url="test/wsdl/literal/SalesRankNPrice.wsdl"
  +     -->
  +    <wsdl2java url="http://www.perfectxml.net/WebServices/SalesRankNPrice/BookService.asmx?WSDL"
                  output="build/work"
                  verbose="no"
                  serverSide="no"
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.5.4.1   +30 -13    xml-axis/java/test/wsdl/literal/SalesRankNPrice_ServiceTestCase.java
  
  Index: SalesRankNPrice_ServiceTestCase.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/wsdl/literal/SalesRankNPrice_ServiceTestCase.java,v
  retrieving revision 1.5
  retrieving revision 1.5.4.1
  diff -u -r1.5 -r1.5.4.1
  --- SalesRankNPrice_ServiceTestCase.java	19 Feb 2002 15:37:12 -0000	1.5
  +++ SalesRankNPrice_ServiceTestCase.java	19 Mar 2002 20:04:51 -0000	1.5.4.1
  @@ -13,18 +13,21 @@
   import org.apache.axis.AxisFault;
   import java.io.IOException;
   import java.io.File;
  +import java.net.URL;
   
   public class SalesRankNPrice_ServiceTestCase extends junit.framework.TestCase {
  +    
  +    public static URL url;
  +    
       public SalesRankNPrice_ServiceTestCase(String name) {
           super(name);
       }
       
  -/*
       private void printit(String result) {
           System.out.println("Result: " + result);
       }
       
  -    private void printit(SalesRankNPrice_Type r) {
  +    private void printit(SalesRankNPrice1 r) {
           System.out.println("price: " + r.getPrice());
           System.out.println("rank: " + r.getSalesRank());
       }
  @@ -52,13 +55,14 @@
       
       // List of files which should be generated
       private static String[] shouldExist= new String[] {
  -        "All.java",
  +        "SalesRankNPrice1.java",
  +        "SalesRanks.java",
           "Prices.java",
  -        "SalesRankNPrice_Service.java",
  -        "SalesRankNPrice_Type.java",
  +        "All.java",
           "SalesRankNPriceSoap.java",
           "SalesRankNPriceSoapStub.java",
  -        "SalesRanks.java"
  +        "SalesRankNPrice.java",
  +        "SalesRankNPriceLocator.java"
           
       };
       
  @@ -106,18 +110,20 @@
               assertTrue("File exist (and it should NOT): " + shouldNotExist[i], !f.exists()); 
           }
       }
  -*/
       
       public void testSalesRankNPriceSoap() {
  -/*
  -        // This is the book to look up
  -        java.lang.String ISBN = "1861005466";
  +        // This is the book to look up...
  +        // "Building Web Services With Java" :)
  +        java.lang.String ISBN = "0672321815";
           
           boolean debug = true;
           
           SalesRankNPriceSoap binding;
           try {
  -            binding = new SalesRankNPrice_ServiceLocator().getSalesRankNPriceSoap();
  +            if (url != null)
  +                binding = new SalesRankNPriceLocator().getSalesRankNPriceSoap(url);
  +            else
  +                binding = new SalesRankNPriceLocator().getSalesRankNPriceSoap();
           } catch (javax.xml.rpc.ServiceException jre) {
               throw new junit.framework.AssertionFailedError("JAX-RPC ServiceException caught: " + jre );
           }
  @@ -127,7 +133,7 @@
           try {
               printit(binding.getAmazonSalesRank(ISBN));
               printit(binding.getAmazonUKSalesRank(ISBN));
  -            printit(binding.getBNSalesRank(ISBN));
  +            //printit(binding.getBNSalesRank(ISBN));
               printit(binding.getAmazonPrice(ISBN));
               printit(binding.getAmazonUKPrice(ISBN));
               printit(binding.getBNPrice(ISBN));
  @@ -145,6 +151,17 @@
                   printit("Connect failure caused some of SalesRankNPrice_ServiceTestCase to be skipped.");
               }
           }
  -*/
       }
  +    
  +    public static void main(String[] args) {
  +        if (args.length == 1) {
  +            try {
  +                url = new URL(args[0]);
  +            } catch (Exception e) {
  +            }
  +        }
  +
  +        junit.textui.TestRunner.run(new junit.framework.TestSuite(SalesRankNPrice_ServiceTestCase.class));
  +    } // main
  +    
   }