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 12:09:35 UTC
svn commit: r704430 -
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
Author: amilas
Date: Tue Oct 14 03:09:34 2008
New Revision: 704430
URL: http://svn.apache.org/viewvc?rev=704430&view=rev
Log:
fixing the issue 4073 set wrappers to the array elements pass as service arguments
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=704430&r1=704429&r2=704430&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 03:09:34 2008
@@ -20,6 +20,7 @@
package org.apache.axis2.description.java2wsdl;
import org.apache.axis2.AxisFault;
+import org.apache.axis2.util.JavaUtils;
import org.apache.axis2.deployment.util.BeanExcludeInfo;
import org.apache.axis2.deployment.util.Utils;
import org.apache.axis2.description.*;
@@ -111,6 +112,8 @@
protected boolean sortAttributes = true;
+ protected boolean isGenerateWrappedArrayTypes = false;
+
public NamespaceGenerator getNsGen() throws Exception {
if (nsGen == null) {
nsGen = new DefaultNamespaceGenerator();
@@ -157,7 +160,14 @@
if (sortAtt !=null && "false".equals(sortAtt.getValue())){
sortAttributes = false;
}
+
+ Parameter generateWrappedArrayTypes = service.getParameter("generateWrappedArrayTypes");
+ if ((generateWrappedArrayTypes != null) && JavaUtils.isTrue(generateWrappedArrayTypes.getValue())){
+ isGenerateWrappedArrayTypes = true;
+ }
}
+
+
}
//This will locad the custom schema file and add that into the schema map
@@ -726,10 +736,46 @@
addImport(getXmlSchema(schemaNamespace), schemaTypeName);
} else {
- addContentToMethodSchemaType(sequence,
- schemaTypeName,
- partName,
- isArrayType);
+ if (isGenerateWrappedArrayTypes && isArrayType) {
+
+
+ XmlSchemaElement xmlSchemaElement = new XmlSchemaElement();
+ xmlSchemaElement.setName("arrayWrapper");
+ sequence.getItems().add(xmlSchemaElement);
+
+ String complexTypeName = schemaTypeName.getLocalPart() + "Wrapper";
+ XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
+
+ XmlSchemaComplexType xmlSchemaComplexType = null;
+ if (xmlSchema.getTypeByName(complexTypeName) == null) {
+ xmlSchemaComplexType = new XmlSchemaComplexType(xmlSchema);
+ XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
+ xmlSchemaComplexType.setParticle(xmlSchemaSequence);
+ xmlSchemaComplexType.setName(schemaTypeName.getLocalPart() + "Wrapper");
+
+ xmlSchema.getItems().add(xmlSchemaComplexType);
+ xmlSchema.getSchemaTypes().add(
+ new QName(schemaTargetNameSpace, xmlSchemaComplexType.getName()),
+ xmlSchemaComplexType);
+ addContentToMethodSchemaType(xmlSchemaSequence,
+ schemaTypeName,
+ "array",
+ isArrayType);
+ } else {
+ xmlSchemaComplexType = (XmlSchemaComplexType) xmlSchema.getTypeByName(complexTypeName);
+ }
+
+ xmlSchemaElement.setSchemaType(xmlSchemaComplexType);
+ xmlSchemaElement.setSchemaTypeName(new QName(schemaTargetNameSpace, xmlSchemaComplexType.getName()));
+
+
+ } else {
+ addContentToMethodSchemaType(sequence,
+ schemaTypeName,
+ partName,
+ isArrayType);
+ }
+
}
addImport(getXmlSchema(schemaTargetNameSpace), schemaTypeName);
return schemaTypeName;
@@ -745,6 +791,7 @@
boolean isArray) {
XmlSchemaElement elt1 = new XmlSchemaElement();
elt1.setName(paraName);
+
elt1.setSchemaTypeName(schemaTypeName);
if (sequence != null) {
sequence.getItems().add(elt1);