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.