Add code to get around cyclic include problem
diff --git a/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java b/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java
index 3f63399..a465dd1 100644
--- a/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java
+++ b/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java
@@ -443,6 +443,26 @@
+ type.getName().getNamespaceURI() + "\";\n");
c_writer.write("static const char Axis_TypeName_" + c_classname
+ "[] = \"" + type.getName().getLocalPart() + "\";\n\n");
+
+ // Define struct to avoid compilation issues (cycle in includes).
+ // This is a must for complex wsdl files.
+ typeSet = new HashSet();
+ for (int i = 0; i < attribs.length; i++)
+ {
+ if (!attribs[i].isArray() &&
+ !(attribs[i].isSimpleType() || attribs[i].getType().isSimpleType())
+ && !attribs[i].isAnyElement())
+ {
+ typeSet.add(attribs[i].getTypeName());
+ }
+ }
+
+ itr = typeSet.iterator();
+ while (itr.hasNext())
+ {
+ String t = itr.next().toString();
+ c_writer.write("typedef struct " + t + "Tag " + t + ";\n");
+ }
}
catch (IOException e)
{