axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d...@apache.org
Subject svn commit: r544864 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
Date Wed, 06 Jun 2007 15:18:56 GMT
Author: dims
Date: Wed Jun  6 08:18:55 2007
New Revision: 544864

URL: http://svn.apache.org/viewvc?view=rev&rev=544864
Log:
Fix for AXIS2-2759 - POJO, Axis2, element for Exception defined multiple times in WSDL

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?view=diff&rev=544864&r1=544863&r2=544864
==============================================================================
--- 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
Wed Jun  6 08:18:55 2007
@@ -9,6 +9,8 @@
 import org.apache.ws.commons.schema.XmlSchemaForm;
 import org.apache.ws.commons.schema.XmlSchemaImport;
 import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.apache.ws.commons.schema.XmlSchemaType;
+import org.apache.ws.commons.schema.XmlSchemaObject;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
 import org.apache.ws.commons.schema.utils.NamespacePrefixList;
 import org.apache.axis2.description.java2wsdl.bytecode.MethodTable;
@@ -40,6 +42,7 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.List;
+import java.util.Iterator;
 
 /*
 * Copyright 2004,2005 The Apache Software Foundation.
@@ -617,22 +620,35 @@
     }
 
     private XmlSchemaComplexType createSchemaTypeForMethodPart(String localPartName) {
-        //XmlSchema xmlSchema = (XmlSchema)schemaMap.get(schemaTargetNameSpace);
         XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
         QName elementName =
                 new QName(this.schemaTargetNameSpace, localPartName, this.schema_namespace_prefix);
-        XmlSchemaComplexType complexType = new XmlSchemaComplexType(xmlSchema);
-
-        XmlSchemaElement globalElement = new XmlSchemaElement();
-        globalElement.setSchemaType(complexType);
-        globalElement.setName(localPartName);
-        globalElement.setQName(elementName);
-        xmlSchema.getItems().add(globalElement);
-        xmlSchema.getElements().add(elementName, globalElement);
 
+        XmlSchemaComplexType complexType = getComplexTypeForElement(xmlSchema, elementName);
+        if(complexType == null) {
+            complexType = new XmlSchemaComplexType(xmlSchema);
+    
+            XmlSchemaElement globalElement = new XmlSchemaElement();
+            globalElement.setSchemaType(complexType);
+            globalElement.setName(localPartName);
+            globalElement.setQName(elementName);
+            xmlSchema.getItems().add(globalElement);
+            xmlSchema.getElements().add(elementName, globalElement);
+        }
         typeTable.addComplexSchema(localPartName, elementName);
 
         return complexType;
+    }
+
+    private XmlSchemaComplexType getComplexTypeForElement(XmlSchema xmlSchema, QName name)
{
+        Iterator iterator = xmlSchema.getItems().getIterator();
+        while(iterator.hasNext()){
+            XmlSchemaObject object = (XmlSchemaObject) iterator.next();
+            if(object instanceof XmlSchemaElement && ((XmlSchemaElement)object).getQName().equals(name)){
+                return (XmlSchemaComplexType)((XmlSchemaElement)object).getSchemaType();
+            }
+        }
+        return null;
     }
 
     private XmlSchema getXmlSchema(String targetNamespace) {



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org


Mime
View raw message