You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by am...@apache.org on 2008/08/08 11:08:51 UTC
svn commit: r683917 -
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
Author: amilas
Date: Fri Aug 8 02:08:50 2008
New Revision: 683917
URL: http://svn.apache.org/viewvc?rev=683917&view=rev
Log:
Adding support to multidimentional array
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=683917&r1=683916&r2=683917&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 Fri Aug 8 02:08:50 2008
@@ -468,7 +468,8 @@
Class sup = javaType.getSuperclass();
if ((sup != null) && !("java.lang.Object".compareTo(sup.getName()) == 0) &&
!(getQualifiedName(sup.getPackage()).indexOf("org.apache.axis2") > 0)
- && !(getQualifiedName(sup.getPackage()).indexOf("java.util") > 0)) {
+ && !(getQualifiedName(sup.getPackage()).indexOf("java.util") > 0))
+ {
String superClassName = sup.getName();
String superclassname = sup.getSimpleName();
String tgtNamespace;
@@ -559,6 +560,8 @@
boolean isArryType = property.getType().isArray();
String propname = property.getName();
propertiesNames.add(propname);
+
+ //Place to look
this.generateSchemaforFieldsandProperties(xmlSchema, sequence, property.getType(),
propname, isArryType);
@@ -623,6 +626,41 @@
String propertyName;
if (isArryType) {
propertyName = type.getComponentType().getName();
+ if (type.getComponentType().isArray()) {
+ // this is a doble array element
+ Class simpleType = type.getComponentType();
+ String simpleTypeName = "";
+ while (simpleType.isArray()) {
+ simpleTypeName += "ArrayOf";
+ simpleType = simpleType.getComponentType();
+ }
+ simpleTypeName += simpleType.getSimpleName();
+
+ if (xmlSchema.getTypeByName(simpleTypeName) == null) {
+ XmlSchemaComplexType xmlSchemaComplexType = new XmlSchemaComplexType(xmlSchema);
+ XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
+ xmlSchemaComplexType.setParticle(xmlSchemaSequence);
+ generateSchemaforFieldsandProperties(xmlSchema,
+ xmlSchemaSequence, type.getComponentType(), name, true);
+
+ xmlSchemaComplexType.setName(simpleTypeName);
+ xmlSchema.getItems().add(xmlSchemaComplexType);
+ xmlSchema.getSchemaTypes().add(
+ new QName(xmlSchema.getTargetNamespace(), simpleTypeName), xmlSchemaComplexType);
+ }
+
+ XmlSchemaElement elt1 = new XmlSchemaElement();
+ elt1.setName(name);
+ elt1.setSchemaTypeName(new QName(xmlSchema.getTargetNamespace(), simpleTypeName));
+ sequence.getItems().add(elt1);
+ elt1.setMaxOccurs(Long.MAX_VALUE);
+ elt1.setMinOccurs(0);
+
+ if (!type.isPrimitive()) {
+ elt1.setNillable(true);
+ }
+ return;
+ }
} else {
propertyName = type.getName();
}