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 na...@apache.org on 2008/09/18 00:01:20 UTC

svn commit: r696485 - in /webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws: ./ c/ c/literal/ cpp/ cpp/literal/ info/

Author: nadiramra
Date: Wed Sep 17 15:01:20 2008
New Revision: 696485

URL: http://svn.apache.org/viewvc?rev=696485&view=rev
Log:
Support for xsd:anyType - stage I (arrays of xsd:anytype's not supported).

Modified:
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/TypeMap.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java Wed Sep 17 15:01:20 2008
@@ -946,6 +946,9 @@
      */
     public static String getArrayNameForComplexType(QName qname)
     {
+        if (isAnyType(qname) || isAnyElement(qname))
+            return "AnyType";
+        
         String arrayName = null;
         if (!c_qnameToPrimitiveTypeMapper.containsKey(qname) 
                 && !c_schemaDefinedQNameToSimpleTypeMapper.containsKey(qname))
@@ -1207,7 +1210,8 @@
         WebServiceContext wscontext)
         throws WrapperFault
     {
-        if (CUtils.isAnyElement(param.getType().getName()))
+        if (CUtils.isAnyElement(param.getType().getName()) 
+                || CUtils.isAnyType(param.getType().getName()))
             return "AnyType*";
         
         Type type = wscontext.getTypemap().getType(param.getSchemaName());

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/ParamWriter.java Wed Sep 17 15:01:20 2008
@@ -151,7 +151,7 @@
             this.attribs[i].setParamName((String) elementfields.get(i - attributeParamCount), wscontext.getTypemap());
             CElementDecl elem = type.getElementForElementName(this.attribs[i].getParamName());
             Type elementType = elem.getType();
-            this.attribs[i].setAnyType(elementType.isAnyType());
+            this.attribs[i].setAnyTypeOrAnyElement(elementType.isAnyType() || elementType.isAnyElement());
 
             if (CUtils.isSimpleType(elementType.getName()))
                 this.attribs[i].setTypeName(CUtils.getSimpleType(elementType.getName()));

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java Wed Sep 17 15:01:20 2008
@@ -249,14 +249,20 @@
                     c_writer.write("\tif(param->" + attribs[i].getParamNameAsMember() + ")\n\t{\n\t");
                 }
              
-            if (attribs[i].isAnyType())
+            if (attribs[i].isAnyTypeOrAnyElement())
             {
-                anyCounter += 1;
-                
-                if (attribs[i].isOptional())
-                    c_writer.write("\tif (param->any" + Integer.toString(anyCounter) + " != NULL)\n");
+                String fieldName = attribs[i].getParamNameAsMember();
+            
+                if (attribs[i].getType().isAnyElement())
+                {
+                    anyCounter += 1;
+                    fieldName  = "any" + Integer.toString(anyCounter);
+                }
+                    
+                if (!ifCheckPrinted && attribs[i].isOptional())
+                    c_writer.write("\tif (param->" + fieldName + " != NULL)\n");
                                           
-                c_writer.write("\t\taxiscSoapSerializerSerializeAnyObject(pSZ, param->any" + Integer.toString(anyCounter) +");\n");
+                c_writer.write("\t\taxiscSoapSerializerSerializeAnyObject(pSZ, param->" + fieldName +");\n");
             } 
             else if (attribs[i].isArray())
             {
@@ -593,10 +599,17 @@
             if (handleAll || handleChoice)
                 tab2 += "\t";
             
-            if (attribs[i].isAnyType())
+            if (attribs[i].isAnyTypeOrAnyElement())
             {
-                anyCounter +=1;
-                c_writer.write(tab2 + "param->any" + anyCounter + " = axiscSoapDeSerializerGetAnyObject(pDZ);\n");
+                String fieldName = attribs[i].getParamNameAsMember();
+                
+                if (attribs[i].getType().isAnyElement())
+                {
+                    anyCounter += 1;
+                    fieldName  = "any" + Integer.toString(anyCounter);
+                }
+                
+                c_writer.write(tab2 + "param->" + fieldName + " = axiscSoapDeSerializerGetAnyObject(pDZ);\n");
             }
             else if (attribs[i].isArray())
             {
@@ -832,7 +845,7 @@
         // the container structure for arrays are created by the corresponding deserializer.
         for (int i = 0; i < attribs.length; i++)
         {
-            if (attribs[i].isArray())
+            if (attribs[i].isArray() && !attribs[i].isAnyTypeOrAnyElement())
             {
                 writeNewline = true;
                 
@@ -942,13 +955,18 @@
                     c_writer.write("\n");
                 }
             }
-            else if (attribs[i].isAnyType())
+            else if (attribs[i].isAnyTypeOrAnyElement())
             {
-                anyCounter += 1;
-                String name = attribs[i].getParamNameAsMember() + anyCounter;
+                String fieldName = attribs[i].getParamNameAsMember();
+                
+                if (attribs[i].getType().isAnyElement())
+                {
+                    anyCounter += 1;
+                    fieldName  = "any" + Integer.toString(anyCounter);
+                }
                 
-                c_writer.write("\t\tif (param->" + name + " != NULL)\n");
-                c_writer.write("\t\t\taxiscAxisDelete(param->" + name + ", XSDC_ANY);\n");               
+                c_writer.write("\t\tif (param->" + fieldName + " != NULL)\n");
+                c_writer.write("\t\t\taxiscAxisDelete(param->" + fieldName + ", XSDC_ANY);\n");               
             }            
             else
             {

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java Wed Sep 17 15:01:20 2008
@@ -264,12 +264,15 @@
                 // Following will set the correct type 
                 String paramType = getCorrectParmNameConsideringArraysAndComplexTypes(attribs[i]);
                 
-                // Following will set param name - if anyType, we index param name
+                // Following will set param name - if xsd:any, we index param name
                 String paramName = attribs[i].getParamNameAsMember();
-                if(attribs[i].isAnyType())
+                if(attribs[i].isAnyTypeOrAnyElement())
                 {
-                    anyCounter += 1;
-                    paramName  += Integer.toString(anyCounter);
+                    if (attribs[i].getType().isAnyElement())
+                    {
+                        anyCounter += 1;
+                        paramName  += Integer.toString(anyCounter);
+                    }
                     
                     paramType = "Axisc" + paramType;
                 }
@@ -401,13 +404,12 @@
 
                 if (theType.isRestriction() && !CUtils.isPrimitiveType(basicType))
                     typeSet.add(basicType);
-                else if (!attribs[i].isSimpleType())
+                else if (!attribs[i].isSimpleType() && !attribs[i].isAnyTypeOrAnyElement())
                 {
                     if ((attribs[i].isArray()) && !theType.isSimpleType())
                         typeSet.add(basicType + "_Array");
     
-                    if (!attribs[i].isAnyType())
-                        typeSet.add(basicType);
+                    typeSet.add(basicType);
                 }
             }
             

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java Wed Sep 17 15:01:20 2008
@@ -276,7 +276,7 @@
         {
             c_writer.write("\t");
             
-            if (returntypeisarray)
+            if (returntypeisarray && !returntype.isAnyTypeOrAnyElement())
             {   
                 QName qname = null;
                 if (CUtils.getArrayType (retType) != null)
@@ -430,7 +430,7 @@
                 typeisarray = false;
             }
  
-            if (param.isAnyType ())
+            if (param.isAnyTypeOrAnyElement ())
                 c_writer.write("\taxiscCallAddAnyObject(call, Value" + i);
             else
             {
@@ -549,7 +549,7 @@
             }
 
             c_writer.write (");\n");
-            if (!param.isAnyType ())
+            if (!param.isAnyTypeOrAnyElement ())
                 c_writer.write("\t}\n");            
           } // end for-loop
 
@@ -637,7 +637,14 @@
                 currentParamName = "*OutValue" + i;
                 
                 // Some code need to be merged as we have some duplicated in coding here.
-                if (typeisarray)
+                if (currentType.isAnyTypeOrAnyElement ())
+                {
+                    // TODO work needs to be done to clean up storage!
+                    c_writer.write ("\t\t\t"
+                          + currentParamName + " = *(" + currentParaType 
+                          + "*)axiscCallGetAnyObject(call);\n");
+                }
+                else if (typeisarray)
                 {
                     QName qname = null;
                     if (CUtils.getArrayType (type) != null)
@@ -770,12 +777,6 @@
                     }
                     c_writer.write("\t\t\t}\n"); // end scope
                 }
-                else if (currentType.isAnyType ())
-                {
-                    c_writer.write ("\t\t\t"
-                          + currentParamName + " = *(" + currentParaType 
-                          + "*)axiscCallGetAnyObject(call);\n");
-                }
                 else
                 {
                     int lastIndexOfStar = currentParaType.lastIndexOf("*");
@@ -798,6 +799,13 @@
             if (minfo.getOutputMessage () != null)
                 c_writer.write ("\t\t\t// no output?\n\t\t}\n");
         }
+        else if (returntype.isAnyTypeOrAnyElement ())
+        {
+            // TODO need to handle arrays
+            c_writer.write ("\t\t\tpReturn = (" + outparamType + ")axiscCallGetAnyObject(call);\n\t\t}\n");
+
+            returnStatement = "\treturn pReturn;\n";
+        }
         else if (returntypeisarray)
         {
             QName qname = null;
@@ -866,12 +874,6 @@
 
             returnStatement = "\treturn Ret;\n";
         }
-        else if (returntype.isAnyType ())
-        {
-            c_writer.write ("\t\t\tpReturn = (" + outparamType + "*)axiscCallGetAnyObject(call);\n\t\t}\n");
-
-            returnStatement = "\treturn pReturn;\n";
-        }
         else
         {
             if (outparamType.lastIndexOf ("*") > 0)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java Wed Sep 17 15:01:20 2008
@@ -113,7 +113,7 @@
                     if (!properParamType.endsWith("*"))
                         asterisk += "* ";
                 }
-                else if (attribs[i].isAnyType())
+                else if (attribs[i].getType().isAnyElement())
                 {
                     // We use a counter appended to parameter name.
                     anyCounter += 1;
@@ -466,14 +466,20 @@
                     c_writer.write("\tif(param->" + attribs[i].getParamNameAsMember() + ")\n\t{\n\t");
                 }
              
-            if (attribs[i].isAnyType())
+            if (attribs[i].isAnyTypeOrAnyElement())
             {
-                anyCounter += 1;
+                String fieldName = attribs[i].getParamNameAsMember();
                 
-                if (attribs[i].isOptional())
-                    c_writer.write("\tif (param->any" + Integer.toString(anyCounter) + " != NULL)\n");
+                if (attribs[i].getType().isAnyElement())
+                {
+                    anyCounter += 1;
+                    fieldName  = "any" + Integer.toString(anyCounter);
+                }
+                
+                if (!ifCheckPrinted && attribs[i].isOptional())
+                    c_writer.write("\tif (param->" + fieldName + " != NULL)\n");
                                 
-                c_writer.write("\t\tpSZ->serializeAnyObject(param->any" + Integer.toString(anyCounter) +");\n");
+                c_writer.write("\t\tpSZ->serializeAnyObject(param->" + fieldName +");\n");
             }
             else if (attribs[i].isArray())
             {
@@ -819,10 +825,17 @@
             if (handleAll || handleChoice)
                 tab2 += "\t";
             
-            if (attribs[i].isAnyType())
+            if (attribs[i].isAnyTypeOrAnyElement())
             {
-                anyCounter +=1;
-                c_writer.write(tab2 + "param->any" + Integer.toString(anyCounter)+ " = pIWSDZ->getAnyObject();\n");
+                String fieldName = attribs[i].getParamNameAsMember();
+                
+                if (attribs[i].getType().isAnyElement())
+                {
+                    anyCounter += 1;
+                    fieldName  = "any" + Integer.toString(anyCounter);
+                }
+                
+                c_writer.write(tab2 + "param->" + fieldName + " = pIWSDZ->getAnyObject();\n");
             }
             else if (attribs[i].isArray())
             {
@@ -1142,19 +1155,26 @@
                 if (i != 0)
                     c_writer.write("\n");
 
-                if (attribs[i].isArray())
+                if (attribs[i].isAnyTypeOrAnyElement())
+                {
+                    String fieldName = attribs[i].getParamNameAsMember();
+                    
+                    if (attribs[i].getType().isAnyElement())
+                    {
+                        anyCounter += 1;
+                        fieldName  = "any" + Integer.toString(anyCounter);
+                    }
+                    
+                    c_writer.write("\tif (original." + fieldName + " != NULL)\n");
+                    c_writer.write("\t\t" + fieldName + " = new " + attribs[i].getTypeName() + "(*(original." + fieldName + "));\n");
+                }
+                else if (attribs[i].isArray())
                 {    
                     c_writer.write("\tif (original." + attribs[i].getParamNameAsMember() + " != NULL)\n");
                     c_writer.write("\t\t" + attribs[i].getParamNameAsMember() + " = new " 
                             + attribs[i].getTypeName() + "_Array(*original." 
                             + attribs[i].getParamNameAsMember() + ");\n");
                 }
-                else if (attribs[i].isAnyType())
-                {
-                    anyCounter++;
-                    c_writer.write("\tif (original." + attribs[i].getParamNameAsMember() + anyCounter + " != NULL)\n");
-                    c_writer.write("\t\t" + attribs[i].getParamNameAsMember() + anyCounter + " = new " + attribs[i].getTypeName() + "(*(original." + attribs[i].getParamNameAsMember() + anyCounter + "));\n");
-                }
                 else
                 {
                     Type type = attribs[i].getType();
@@ -1218,17 +1238,15 @@
                 else
                     isPointerType = CUtils.isPointerType(typename);
                 
-                if(attribs[i].isArray())
-                {
-                    if (!forConstructor)
-                        c_writer.write("\tdelete " + name + ";\n");
-                    c_writer.write("\t"+ name + " = NULL;\n\n");
-                }
-                else if (attribs[i].isAnyType())
-                {
-                    anyCounter += 1;
-                    name = name + Integer.toString(anyCounter);
+                if (attribs[i].isAnyTypeOrAnyElement())
+                {                    
+                    if (attribs[i].getType().isAnyElement())
+                    {
+                        anyCounter += 1;
+                        name  = "any" + Integer.toString(anyCounter);
+                    }
                     
+                    // TODO remove and replace with simple delete!
                     if (!forConstructor)
                     {
                         c_writer.write("\tif ("+name+") \n\t{\n");
@@ -1239,6 +1257,12 @@
                     }
                     c_writer.write("\t" + name + "= NULL;\n\n");
                 }
+                else if(attribs[i].isArray())
+                {
+                    if (!forConstructor)
+                        c_writer.write("\tdelete " + name + ";\n");
+                    c_writer.write("\t"+ name + " = NULL;\n\n");
+                }
                 else if (!(attribs[i].isSimpleType() || attribs[i].getType().isSimpleType()))
                 {
                     if (!forConstructor)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java Wed Sep 17 15:01:20 2008
@@ -316,9 +316,9 @@
                 // Following will set the correct type 
                 String paramType = getCorrectParmNameConsideringArraysAndComplexTypes(attribs[i]);
                 
-                // Following will set param name - if anyType, we index param name
+                // Following will set param name - if xsd:any element, we index param name
                 String paramName = attribs[i].getParamNameAsMember();
-                if(attribs[i].isAnyType())
+                if (attribs[i].getType().isAnyElement())
                 {
                     anyCounter += 1;
                     paramName  += Integer.toString(anyCounter);
@@ -381,8 +381,8 @@
                 // Set method name to use
                 String methodName = attribs[i].getMethodName();
                 
-                //  If anyType, we index method name
-                if(attribs[i].isAnyType())
+                //  If xsd:any element, we index method name
+                if(attribs[i].getType().isAnyElement())
                 {
                     anyCounter += 1;
                     methodName += Integer.toString(anyCounter);
@@ -473,7 +473,7 @@
     {
         try
         {
-            if (type.isSimpleType() || type.isArray() || type.isAnyType()
+            if (type.isSimpleType() || type.isArray() || type.isAnyType() || type.isAnyElement()
                     || (type.isAnonymous() && !type.isExternalized()))
                 return;
             
@@ -531,13 +531,12 @@
                 
                 if (theType.isRestriction() && !CUtils.isPrimitiveType(basicType))
                     typeSet.add(basicType);
-                else if (!attribs[i].isSimpleType())
+                else if (!attribs[i].isSimpleType() && !attribs[i].isAnyTypeOrAnyElement())
                 {
                     if ((attribs[i].isArray()) && !theType.isSimpleType())
                         typeSet.add(basicType + "_Array");
     
-                    if (!attribs[i].isAnyType())
-                        typeSet.add(basicType);
+                    typeSet.add(basicType);
                 }
             }
             
@@ -582,7 +581,7 @@
             {
                 if (!attribs[i].isArray() && 
                         !(attribs[i].isSimpleType() || attribs[i].getType().isSimpleType())
-                        && !attribs[i].isAnyType())
+                        && !attribs[i].isAnyTypeOrAnyElement())
 				{
                     typeSet.add(attribs[i].getTypeName());
                 } 

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java Wed Sep 17 15:01:20 2008
@@ -432,7 +432,7 @@
                 typeisarray = false;
             }
     
-            if (param.isAnyType ())
+            if (param.isAnyTypeOrAnyElement ())
                 c_writer.write ("\t\tm_pCall->addAnyObject(Value" + i);
             else
             {
@@ -638,7 +638,14 @@
                 currentParamName = "*OutValue" + i;
                 
                 // Some code need to be merged as we have some duplicated in coding here.
-                if (typeisarray)
+                if (currentType.isAnyTypeOrAnyElement ())
+                {
+                    // TODO Handle arrays
+                    c_writer.write ("\t\t\t\t"
+                          + currentParamName + " = *(" + currentParaType 
+                          + "*)m_pCall->getAnyObject();\n");
+                }
+                else if (typeisarray)
                 {
                     QName qname = null;
                     if (CUtils.getArrayType (type) != null)
@@ -762,12 +769,6 @@
                         c_writer.write( "\t\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", " + CUtils.getXSDEnumeratorForType( baseTypeName) + ");\n");
                     }
                 }
-                else if (currentType.isAnyType ())
-                {
-                    c_writer.write ("\t\t\t\t"
-                          + currentParamName + " = *(" + currentParaType 
-                          + "*)m_pCall->getAnyObject();\n");
-                }
                 else
                 {
                     int lastIndexOfStar = currentParaType.lastIndexOf("*");
@@ -790,6 +791,13 @@
             if (minfo.getOutputMessage () != null)
                 c_writer.write ("\t\t\t\t// no output?\n\t\t\t}\n");
         }
+        else if (returntype.isAnyTypeOrAnyElement ())
+        {
+            // TODO handle arrays
+            c_writer.write ("\t\t\t\tpReturn = (" + outparamType + ")m_pCall->getAnyObject();\n\t\t\t}\n");
+
+            returnStatement =  "\t\treturn pReturn;\n";
+        }
         else if (returntypeisarray)
         {
             QName qname = null;
@@ -849,12 +857,6 @@
 
             returnStatement = "\t\treturn Ret;\n";
         }
-        else if (returntype.isAnyType ())
-        {
-            c_writer.write ("\t\t\t\tpReturn = (" + outparamType + "*)m_pCall->getAnyObject();\n\t\t}\n");
-
-            returnStatement =  "\t\treturn pReturn;\n";
-        }
         else
         {
             if (outparamType.lastIndexOf ("*") > 0)

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java Wed Sep 17 15:01:20 2008
@@ -286,7 +286,7 @@
                         + ",\n\t\t \"" + elementName + "\", Axis_URI_" + containedType + ");\n");
                 }
             }
-            else if (param.isAnyType())
+            else if (param.isAnyTypeOrAnyElement())
             {
                 c_writer.write("\t" + paraTypeName + " *v" + i + " = (" + paraTypeName
                         + "*)pIWSDZ->getAnyObject();\n");
@@ -413,7 +413,7 @@
                     c_writer.write("\t\treturn nStatus;\n");
                 }
             }
-            else if (returntype.isAnyType())
+            else if (returntype.isAnyTypeOrAnyElement())
                 c_writer.write( "\t\treturn pIWSSZ->addOutputAnyObject(ret);\n");
             else
             {
@@ -531,7 +531,7 @@
                                 + ", \"" + returnParamName + "\", Axis_URI_" + containedType + ");\n");
                     }
                 }
-                else if (param.isAnyType())
+                else if (param.isAnyTypeOrAnyElement())
                     c_writer.write("\tpIWSSZ->addOutputAnyObject(out" + i + ");\n");
                 else
                 {

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/ParameterInfo.java Wed Sep 17 15:01:20 2008
@@ -36,7 +36,7 @@
     private String attribNameAsSOAPString = null;
     private String attribNameAsMember = null;
     private String methodName=null;
-    private boolean isAnyType = false;
+    private boolean isAnyTypeOrAnyElement = false;
     private boolean isArray = false;
     private boolean isAttribute = false;
     private boolean isNillable = false;
@@ -72,7 +72,7 @@
         str = str + "attribNameAsSOAPString ="  + attribNameAsSOAPString + "\n";
         str = str + "elementName ="             + elementName + "\n";
         str = str + "elementNameAsSOAPString =" + elementNameAsSOAPString + "\n";
-        str = str + "isAnyType ="               + isAnyType + "\n";
+        str = str + "isAnyTypeOrAnyElement ="   + isAnyTypeOrAnyElement + "\n";
         str = str + "isArray ="                 + isArray + "\n";
         str = str + "isAttribute ="             + isAttribute + "\n";
         str = str + "isNillable = "             + isNillable + "\n";
@@ -229,17 +229,17 @@
     /**
      * @return
      */
-    public boolean isAnyType()
+    public boolean isAnyTypeOrAnyElement()
     {
-        return isAnyType;
+        return isAnyTypeOrAnyElement;
     }
 
     /**
      * @param b
      */
-    public void setAnyType(boolean b)
+    public void setAnyTypeOrAnyElement(boolean b)
     {
-        isAnyType = b;
+        isAnyTypeOrAnyElement = b;
     }
 
     /**

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/Type.java Wed Sep 17 15:01:20 2008
@@ -111,8 +111,11 @@
     // is type the input type for unwrapped doc/lit operation?
     private boolean isUnwrappedInputType  = false;
     
-    // is any type?
+    // is any type? This is true for xsd:anyType
     private boolean c_isAnyType = false;
+    
+    // is any element?  This is true for xsd:any.
+    private boolean c_isAnyElement = false;
 
 
     /**
@@ -157,7 +160,8 @@
         }
         
         // See if this type represents an xsd:any element or an xsd:anyType type.
-        c_isAnyType = CUtils.isAnyType(name) || CUtils.isAnyElement(name);
+        c_isAnyType    = CUtils.isAnyType(name);
+        c_isAnyElement = CUtils.isAnyElement(name);
 
         if (name.getNamespaceURI().equals(WrapperConstants.APACHE_XMLSOAP_NAMESPACE) && 
             (name.getLocalPart().equals("DataHandler") ||
@@ -544,4 +548,12 @@
     {
         return c_isAnyType;
     }
+    
+    /**
+     * @return the c_isAnyType
+     */
+    public boolean isAnyElement()
+    {
+        return c_isAnyElement;
+    }
 }

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/TypeMap.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/TypeMap.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/TypeMap.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/TypeMap.java Wed Sep 17 15:01:20 2008
@@ -58,8 +58,10 @@
      */
     public Type getType(QName name)
     {
-        if (CUtils.isPrimitiveType(name))
+        if (CUtils.isPrimitiveType(name)) 
             return new Type(name, null);
+        else if (CUtils.isAnyType(name))
+            return new Type(name, "AnyType");
 
         return (Type) this.typeInfo.get(name);
     }

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java?rev=696485&r1=696484&r2=696485&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java Wed Sep 17 15:01:20 2008
@@ -615,7 +615,7 @@
             if (null == qn)
                 throw new WrapperFault("Array type found without a Ref type");
             
-            if (CUtils.isPrimitiveType(qn))
+            if (CUtils.isPrimitiveType(qn) || CUtils.isAnyType(qn))
                 return null;
             
             QName newqn = new QName(type.getQName().getNamespaceURI(), qn.getLocalPart() + "_Array");
@@ -799,7 +799,7 @@
                                     
                                     typeName = new QName(typeName.getNamespaceURI(), localpart);
                                     
-                                    if (CUtils.isPrimitiveType(typeName))
+                                    if (CUtils.isPrimitiveType(typeName) || CUtils.isAnyType(typeName))
                                         newSecondaryType = createTypeInfo(typeName);
                                     else
                                         newSecondaryType = createTypeInfo(elem.getTypeEntry());
@@ -1274,7 +1274,7 @@
                     pinfo.setType(type);
                     pinfo.setParamName(elementName, c_typeMap);
                     pinfo.setElementName(element.getQName());
-                    pinfo.setAnyType(type.isAnyType());
+                    pinfo.setAnyTypeOrAnyElement(type.isAnyType() || type.isAnyElement());
                     minfo.addOutputParameter(pinfo);                    
                     minfo.setConsumeBodyOnMessageValidation(false);
                 }
@@ -1294,7 +1294,7 @@
                     pinfo.setNillable(eleinfo.isNillable());
                     pinfo.setOptional(eleinfo.getMinOccurs() == 0);
                     pinfo.setElementName(type.getElementForElementName(elementname).getName());
-                    pinfo.setAnyType(innerType.isAnyType());
+                    pinfo.setAnyTypeOrAnyElement(innerType.isAnyType() || innerType.isAnyElement());
     
                     minfo.addOutputParameter(pinfo);
                 }
@@ -1314,7 +1314,7 @@
             else
                 pinfo.setElementName(type.getName());
             
-            pinfo.setAnyType(type.isAnyType());
+            pinfo.setAnyTypeOrAnyElement(type.isAnyType() || type.isAnyElement());
             
             // Let us be nice and uppercase the first character in type name, 
             // in addition to resolving method name/type conflicts.
@@ -1425,7 +1425,7 @@
                 pinfo.setParamName(elementname, c_typeMap);     
                 pinfo.setArray(eleinfo.getMaxOccurs() > 1);
                 pinfo.setElementName(type.getElementForElementName(elementname).getName());
-                pinfo.setAnyType(innerType.isAnyType());
+                pinfo.setAnyTypeOrAnyElement(innerType.isAnyType() || innerType.isAnyElement());
                 pinfo.setNillable(eleinfo.isNillable());
                 pinfo.setOptional(eleinfo.getMinOccurs() == 0);
 
@@ -1469,7 +1469,7 @@
                 type.setIsUnwrappedInputType(true);
                 pinfo.setParamName(elementName, c_typeMap);
                 pinfo.setElementName(type.getName());
-                pinfo.setAnyType(type.isAnyType());
+                pinfo.setAnyTypeOrAnyElement(type.isAnyType() || type.isAnyElement());
     
                 // Let us be nice and uppercase the first character in type name, 
                 // in addition to resolving method name/type conflicts.