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 am...@apache.org on 2008/10/14 13:06:25 UTC

svn commit: r704460 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java

Author: amilas
Date: Tue Oct 14 04:06:25 2008
New Revision: 704460

URL: http://svn.apache.org/viewvc?rev=704460&view=rev
Log:
fixing the issue 4073. Added multi dimentional array support

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java?rev=704460&r1=704459&r2=704460&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java Tue Oct 14 04:06:25 2008
@@ -692,17 +692,40 @@
                             new QName(xmlSchema.getTargetNamespace(), simpleTypeName), xmlSchemaComplexType);
                 }
 
-                XmlSchemaElement elt1 = new XmlSchemaElement();
-                elt1.setName(partName);
-                elt1.setSchemaTypeName(new QName(xmlSchema.getTargetNamespace(), simpleTypeName));
-                sequence.getItems().add(elt1);
-                elt1.setMaxOccurs(Long.MAX_VALUE);
-                elt1.setMinOccurs(0);
+                if (isGenerateWrappedArrayTypes) {
+                    XmlSchemaElement xmlSchemaElement = new XmlSchemaElement();
+                    xmlSchemaElement.setName("arrayWrapper");
+                    xmlSchemaElement.setNillable(true);
+                    sequence.getItems().add(xmlSchemaElement);
 
-                if (!type.isPrimitive()) {
-                    elt1.setNillable(true);
+                    String complexTypeName = simpleTypeName + "Wrapper";
+
+                    XmlSchemaComplexType xmlSchemaComplexType = new XmlSchemaComplexType(xmlSchema);
+                    XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
+                    xmlSchemaComplexType.setParticle(xmlSchemaSequence);
+                    xmlSchemaComplexType.setName(complexTypeName);
+
+                    xmlSchema.getItems().add(xmlSchemaComplexType);
+                    xmlSchema.getSchemaTypes().add(
+                            new QName(schemaTargetNameSpace, xmlSchemaComplexType.getName()),
+                            xmlSchemaComplexType);
+                    addContentToMethodSchemaType(xmlSchemaSequence,
+                            new QName(xmlSchema.getTargetNamespace(), simpleTypeName),
+                            "array",
+                            true);
+
+                    xmlSchemaElement.setSchemaType(xmlSchemaComplexType);
+                    xmlSchemaElement.setSchemaTypeName(new QName(schemaTargetNameSpace, xmlSchemaComplexType.getName()));
+                    return new QName(xmlSchema.getTargetNamespace(), complexTypeName);
+                } else {
+                    addContentToMethodSchemaType(sequence,
+                            new QName(xmlSchema.getTargetNamespace(), simpleTypeName),
+                            partName,
+                            true);
+                    return new QName(xmlSchema.getTargetNamespace(), simpleTypeName);
                 }
-                return new QName(xmlSchema.getTargetNamespace(), simpleTypeName);
+
+
             } else {
                 type = type.getComponentType();
             }
@@ -741,6 +764,7 @@
 
                 XmlSchemaElement xmlSchemaElement = new XmlSchemaElement();
                 xmlSchemaElement.setName("arrayWrapper");
+                xmlSchemaElement.setNillable(true);
                 sequence.getItems().add(xmlSchemaElement);
 
                 String complexTypeName = schemaTypeName.getLocalPart() + "Wrapper";
@@ -751,7 +775,7 @@
                     xmlSchemaComplexType = new XmlSchemaComplexType(xmlSchema);
                     XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
                     xmlSchemaComplexType.setParticle(xmlSchemaSequence);
-                    xmlSchemaComplexType.setName(schemaTypeName.getLocalPart() + "Wrapper");
+                    xmlSchemaComplexType.setName(complexTypeName);
 
                     xmlSchema.getItems().add(xmlSchemaComplexType);
                     xmlSchema.getSchemaTypes().add(