Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java?rev=1818516&r1=1818515&r2=1818516&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java
 Sun Dec 17 22:16:04 2017
@@ -29,10 +29,8 @@ import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMText;
 import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.impl.MTOMConstants;
 import org.apache.axiom.om.impl.builder.StAXBuilder;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.builder.XOPAwareStAXOMBuilder;
 import org.apache.axiom.om.util.StAXParserConfiguration;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.SOAP11Constants;
@@ -43,7 +41,6 @@ import org.apache.axiom.soap.SOAPEnvelop
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPModelBuilder;
 import org.apache.axiom.soap.SOAPProcessingException;
-import org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder;
 import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
@@ -65,9 +62,9 @@ import org.apache.commons.logging.LogFac
 import org.apache.ws.commons.schema.XmlSchemaAll;
 import org.apache.ws.commons.schema.XmlSchemaComplexType;
 import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaGroupBase;
 import org.apache.ws.commons.schema.XmlSchemaParticle;
 import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.apache.ws.commons.schema.XmlSchemaSequenceMember;
 import org.apache.ws.commons.schema.XmlSchemaType;
 
 import javax.activation.DataHandler;
@@ -84,7 +81,6 @@ import java.io.Reader;
 import java.io.UnsupportedEncodingException;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
-import java.util.Iterator;
 import java.util.Map;
 
 public class BuilderUtil {
@@ -138,58 +134,50 @@ public class BuilderUtil {
                     XmlSchemaComplexType complexType = 
((XmlSchemaComplexType)schemaType);
                     XmlSchemaParticle particle = complexType.getParticle();
                     if (particle instanceof XmlSchemaSequence || particle 
instanceof XmlSchemaAll) {
-                        XmlSchemaGroupBase xmlSchemaGroupBase = 
(XmlSchemaGroupBase)particle;
-                        Iterator iterator = 
xmlSchemaGroupBase.getItems().getIterator();
 
-                        // now we need to know some information from the 
binding operation.
-
-                        while (iterator.hasNext()) {
-                            XmlSchemaElement innerElement = 
(XmlSchemaElement)iterator.next();
-                            QName qName = innerElement.getQName();
-                            // ignoring the elements without proper type and 
minoccurs zero
-                            if ((innerElement.getSchemaTypeName() == null) && 
(innerElement.getMinOccurs() == 0)){
-                                continue;
-                            }
-                            if (qName == null && 
innerElement.getSchemaTypeName()
-                                    
.equals(org.apache.ws.commons.schema.constants.Constants.XSD_ANYTYPE)) {
-                                createSOAPMessageWithoutSchema(soapFactory, 
bodyFirstChild,
-                                                               
requestParameterMap);
-                                break;
-                            }
-                            long minOccurs = innerElement.getMinOccurs();
-                            boolean nillable = innerElement.isNillable();
-                            String name =
-                                    qName != null ? qName.getLocalPart() : 
innerElement.getName();
-                            Object value;
-                            OMNamespace ns = (qName == null ||
-                                              qName.getNamespaceURI() == null
-                                              || 
qName.getNamespaceURI().length() == 0) ?
-                                    null : soapFactory.createOMNamespace(
-                                    qName.getNamespaceURI(), null);
-
-                            // FIXME changed
-                            while ((value = requestParameterMap.get(name)) != 
null) {
-                                addRequestParameter(soapFactory,
-                                                    bodyFirstChild, ns, name, 
value);
-                                minOccurs--;
+                        if (particle instanceof XmlSchemaSequence) {
+                            XmlSchemaSequence sequence = (XmlSchemaSequence) 
particle;
+                            // now we need to know some information from the 
binding operation.
+
+                            for (XmlSchemaSequenceMember sequenceMember : 
sequence.getItems()) {
+
+                                XmlSchemaElement innerElement = 
(XmlSchemaElement) sequenceMember;
+                                QName qName = innerElement.getQName();
+                                // ignoring the elements without proper type 
and minoccurs zero
+                                if ((innerElement.getSchemaTypeName() == null) 
&&
+                                    (innerElement.getMinOccurs() == 0)) {
+                                    continue;
+                                }
+                                if (qName == null && 
innerElement.getSchemaTypeName()
+                                        
.equals(org.apache.ws.commons.schema.constants.Constants.XSD_ANYTYPE)) {
+                                    
createSOAPMessageWithoutSchema(soapFactory, bodyFirstChild,
+                                                                   
requestParameterMap);
+                                    break;
+                                }
+                                checkMinOccurs(innerElement, qName, 
soapFactory, requestParameterMap,
+                                               bodyFirstChild);
                             }
-                            if (minOccurs > 0) {
-                                if (nillable) {
-
-                                    OMNamespace xsi = 
soapFactory.createOMNamespace(
-                                            Constants.URI_DEFAULT_SCHEMA_XSI,
-                                            Constants.NS_PREFIX_SCHEMA_XSI);
-                                    OMAttribute omAttribute =
-                                            
soapFactory.createOMAttribute("nil", xsi, "true");
-                                    soapFactory.createOMElement(name, ns,
-                                                                bodyFirstChild)
-                                            .addAttribute(omAttribute);
-
-                                } else {
-                                    throw new AxisFault("Required element " + 
qName +
-                                                        " defined in the 
schema can not be" +
-                                                        " found in the 
request");
+                        } else {
+                            XmlSchemaAll sequence = (XmlSchemaAll) particle;
+                            // now we need to know some information from the 
binding operation.
+
+                            for (XmlSchemaSequenceMember sequenceMember : 
sequence.getItems()) {
+
+                                XmlSchemaElement innerElement = 
(XmlSchemaElement) sequenceMember;
+                                QName qName = innerElement.getQName();
+                                // ignoring the elements without proper type 
and minoccurs zero
+                                if ((innerElement.getSchemaTypeName() == null) 
&&
+                                    (innerElement.getMinOccurs() == 0)) {
+                                    continue;
                                 }
+                                if (qName == null && 
innerElement.getSchemaTypeName()
+                                        
.equals(org.apache.ws.commons.schema.constants.Constants.XSD_ANYTYPE)) {
+                                    
createSOAPMessageWithoutSchema(soapFactory, bodyFirstChild,
+                                                                   
requestParameterMap);
+                                    break;
+                                }
+                                checkMinOccurs(innerElement, qName, 
soapFactory, requestParameterMap,
+                                               bodyFirstChild);
                             }
                         }
                     }
@@ -202,6 +190,48 @@ public class BuilderUtil {
         return soapEnvelope;
     }
 
+    private static void checkMinOccurs(XmlSchemaElement innerElement, QName 
qName,
+                                       SOAPFactory soapFactory,
+                                       MultipleEntryHashMap 
requestParameterMap,
+                                       OMElement bodyFirstChild)
+            throws AxisFault {
+        long minOccurs = innerElement.getMinOccurs();
+        boolean nillable = innerElement.isNillable();
+        String name =
+                qName != null ? qName.getLocalPart() : innerElement.getName();
+        Object value;
+        OMNamespace ns = (qName == null ||
+                          qName.getNamespaceURI() == null
+                          || qName.getNamespaceURI().length() == 0) ?
+                         null : soapFactory.createOMNamespace(
+                qName.getNamespaceURI(), null);
+
+        // FIXME changed
+        while ((value = requestParameterMap.get(name)) != null) {
+            addRequestParameter(soapFactory,
+                                bodyFirstChild, ns, name, value);
+            minOccurs--;
+        }
+        if (minOccurs > 0) {
+            if (nillable) {
+
+                OMNamespace xsi = soapFactory.createOMNamespace(
+                        Constants.URI_DEFAULT_SCHEMA_XSI,
+                        Constants.NS_PREFIX_SCHEMA_XSI);
+                OMAttribute omAttribute =
+                        soapFactory.createOMAttribute("nil", xsi, "true");
+                soapFactory.createOMElement(name, ns,
+                                            bodyFirstChild)
+                        .addAttribute(omAttribute);
+
+            } else {
+                throw new AxisFault("Required element " + qName +
+                                    " defined in the schema can not be" +
+                                    " found in the request");
+            }
+        }
+    }
+
     public static void createSOAPMessageWithoutSchema(SOAPFactory soapFactory,
                                                        OMElement 
bodyFirstChild,
                                                        MultipleEntryHashMap 
requestParameterMap) {

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisMessage.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisMessage.java?rev=1818516&r1=1818515&r2=1818516&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisMessage.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisMessage.java
 Sun Dec 17 22:16:04 2017
@@ -28,13 +28,16 @@ import org.apache.axis2.util.PolicyUtil;
 import org.apache.axis2.wsdl.SOAPHeaderMessage;
 import org.apache.neethi.Policy;
 import org.apache.neethi.PolicyComponent;
-import org.apache.ws.commons.schema.*;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.ws.commons.schema.XmlSchemaImport;
+import org.apache.ws.commons.schema.XmlSchemaInclude;
+import org.apache.ws.commons.schema.XmlSchemaObject;
 
 import javax.xml.namespace.QName;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
-import java.util.Iterator;
 import java.util.List;
 
 
@@ -145,23 +148,17 @@ public class AxisMessage extends AxisDes
             xmlSchemaElement = schema.getElementByName(this.elementQname);
             if (xmlSchemaElement == null) {
                 // try to find in an import or an include
-                XmlSchemaObjectCollection includes = schema.getIncludes();
-                if (includes != null) {
-                    Iterator includesIter = includes.getIterator();
-                    Object object;
-                    while (includesIter.hasNext()) {
-                        object = includesIter.next();
-                        if (object instanceof XmlSchemaImport) {
-                            XmlSchema schema1 = ((XmlSchemaImport) 
object).getSchema();
-                            xmlSchemaElement = getSchemaElement(schema1);
-                        }
-                        if (object instanceof XmlSchemaInclude) {
-                            XmlSchema schema1 = ((XmlSchemaInclude) 
object).getSchema();
-                            xmlSchemaElement = getSchemaElement(schema1);
-                        }
-                        if (xmlSchemaElement != null){
-                            break;
-                        }
+                for (XmlSchemaObject external : schema.getExternals()) {
+                    if (external instanceof XmlSchemaImport) {
+                        XmlSchema schema1 = ((XmlSchemaImport) 
external).getSchema();
+                        xmlSchemaElement = getSchemaElement(schema1);
+                    }
+                    if (external instanceof XmlSchemaInclude) {
+                        XmlSchema schema1 = ((XmlSchemaInclude) 
external).getSchema();
+                        xmlSchemaElement = getSchemaElement(schema1);
+                    }
+                    if (xmlSchemaElement != null) {
+                        break;
                     }
                 }
             }

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService.java?rev=1818516&r1=1818515&r2=1818516&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService.java
 Sun Dec 17 22:16:04 2017
@@ -72,7 +72,6 @@ import org.apache.woden.wsdl20.Descripti
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaElement;
 import org.apache.ws.commons.schema.XmlSchemaExternal;
-import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
 import org.apache.ws.commons.schema.utils.NamespacePrefixList;
 
@@ -107,6 +106,7 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Method;
 import java.net.SocketException;
 import java.net.URISyntaxException;
@@ -988,8 +988,13 @@ public class AxisService extends AxisDes
        public void printSchema(OutputStream out) throws AxisFault {
                for (int i = 0; i < schemaList.size(); i++) {
                        XmlSchema schema = addNameSpaces(i);
-                       schema.write(out);
-               }
+            try {
+                schema.write(out);
+            } catch (UnsupportedEncodingException e) {
+                log.error("Error while printing schema ", e);
+                throw new AxisFault(e.getMessage(), e);
+            }
+        }
        }
 
        public XmlSchema getSchema(int index) {
@@ -1291,17 +1296,12 @@ public class AxisService extends AxisDes
     }
 
        private void updateSchemaLocation(XmlSchema schema) throws AxisFault {
-        XmlSchemaObjectCollection includes = schema.getIncludes();
-        for (int j = 0; j < includes.getCount(); j++) {
-            Object item = includes.getItem(j);
-            if (item instanceof XmlSchemaExternal) {
-                XmlSchemaExternal xmlSchemaExternal = (XmlSchemaExternal) item;
-                XmlSchema s = xmlSchemaExternal.getSchema();
-                updateSchemaLocation(s, xmlSchemaExternal);
-            }
+        for (XmlSchemaExternal xmlSchemaExternal : schema.getExternals()) {
+            XmlSchema s = xmlSchemaExternal.getSchema();
+            updateSchemaLocation(s, xmlSchemaExternal);
         }
     }
-          
+
        private void updateSchemaLocation(XmlSchema s, XmlSchemaExternal 
xmlSchemaExternal) throws AxisFault {
         if (s != null) {
             String schemaLocation = xmlSchemaExternal.getSchemaLocation();
@@ -2786,15 +2786,9 @@ public class AxisService extends AxisDes
                // first traversal - fill the hashtable
                for (int i = 0; i < schemas.size(); i++) {
                        XmlSchema schema = (XmlSchema) schemas.get(i);
-                       XmlSchemaObjectCollection includes = 
schema.getIncludes();
-
-                       for (int j = 0; j < includes.getCount(); j++) {
-                               Object item = includes.getItem(j);
-                               XmlSchema s;
-                               if (item instanceof XmlSchemaExternal) {
-                                       XmlSchemaExternal externalSchema = 
(XmlSchemaExternal) item;
-                                       s = externalSchema.getSchema();
-
+                       for (XmlSchemaExternal externalSchema : 
schema.getExternals()) {
+                               if (externalSchema != null) {
+                    XmlSchema s = externalSchema.getSchema();
                                        if (s != null
                                                        && 
getScheamLocationWithDot(
                                                                        
sourceURIToNewLocationMap, s) == null) {
@@ -2878,22 +2872,16 @@ public class AxisService extends AxisDes
         * @param parentSchema
         * @param nameTable
         */
-       private void adjustSchemaName(XmlSchema parentSchema, Hashtable 
nameTable,
-                       Hashtable importedScheams, Hashtable 
sourceURIToNewLocationMap) {
-               XmlSchemaObjectCollection includes = parentSchema.getIncludes();
-               for (int j = 0; j < includes.getCount(); j++) {
-                       Object item = includes.getItem(j);
-                       if (item instanceof XmlSchemaExternal) {
-                               XmlSchemaExternal xmlSchemaExternal = 
(XmlSchemaExternal) item;
-                               XmlSchema s = xmlSchemaExternal.getSchema();
-                               adjustSchemaLocation(s, xmlSchemaExternal, 
nameTable,
-                                               importedScheams, 
sourceURIToNewLocationMap);
-                       }
-               }
+    private void adjustSchemaName(XmlSchema parentSchema, Hashtable nameTable,
+                                  Hashtable importedScheams, Hashtable 
sourceURIToNewLocationMap) {
+        for (XmlSchemaExternal xmlSchemaExternal : 
parentSchema.getExternals()) {
+            XmlSchema s = xmlSchemaExternal.getSchema();
+            adjustSchemaLocation(s, xmlSchemaExternal, nameTable,
+                                 importedScheams, sourceURIToNewLocationMap);
+        }
+    }
 
-       }
-               
-       /**
+    /**
         * Adjusts a given schema location
         * 
         * @param s
@@ -3401,7 +3389,7 @@ public class AxisService extends AxisDes
     /**
      * returns a axisService given a input Stream of WSDL2.0 document.
      * 
-     * @param Description
+     * @param description
      *            WSDL description
      * @param wsdlServiceName
      * @param endPoint

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL20.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL20.java?rev=1818516&r1=1818515&r2=1818516&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL20.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL20.java
 Sun Dec 17 22:16:04 2017
@@ -25,8 +25,8 @@ import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAP11Constants;
+import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
 import org.apache.axis2.addressing.AddressingConstants;
@@ -46,9 +46,9 @@ import org.apache.neethi.PolicyReference
 import org.apache.ws.commons.schema.XmlSchema;
 import org.apache.ws.commons.schema.XmlSchemaComplexType;
 import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
 import org.apache.ws.commons.schema.XmlSchemaParticle;
 import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.apache.ws.commons.schema.XmlSchemaSequenceMember;
 import org.apache.ws.commons.schema.XmlSchemaSimpleType;
 import org.apache.ws.commons.schema.XmlSchemaType;
 
@@ -398,41 +398,38 @@ public class AxisService2WSDL20 implemen
                 }
                 inMessageElementQname = schemaElement.getQName();
                 XmlSchemaType type = schemaElement.getSchemaType();
-                if (type != null && type instanceof XmlSchemaComplexType){
+                if (type != null && type instanceof XmlSchemaComplexType) {
                     XmlSchemaComplexType complexType = (XmlSchemaComplexType) 
type;
                     XmlSchemaParticle particle = complexType.getParticle();
-                    if (particle != null && particle instanceof 
XmlSchemaSequence){
+                    if (particle != null && particle instanceof 
XmlSchemaSequence) {
                         XmlSchemaSequence xmlSchemaSequence = 
(XmlSchemaSequence) particle;
-                        XmlSchemaObjectCollection schemaObjectCollection =
-                                xmlSchemaSequence.getItems();
-                        if (schemaObjectCollection != null) {
-                            Iterator iterator = 
schemaObjectCollection.getIterator();
-                            while (iterator.hasNext()) {
-                                Object next = iterator.next();
-                                if (!(next instanceof XmlSchemaElement)) {
-                                    return new URI [0];
+                        if (!xmlSchemaSequence.getItems().isEmpty()) {
+                            for (XmlSchemaSequenceMember member : 
xmlSchemaSequence.getItems()) {
+
+                                if (!(member instanceof XmlSchemaElement)) {
+                                    return new URI[0];
                                 }
-                                XmlSchemaElement innerElement = 
(XmlSchemaElement) next;
-                                if (innerElement.getRefName() != null) {
-                                    return new URI [0];
+                                XmlSchemaElement innerElement = 
(XmlSchemaElement) member;
+                                if (innerElement.getRef().getTargetQName() != 
null) {
+                                    return new URI[0];
                                 }
                                 if (innerElement.getMinOccurs() != 1 ||
-                                        innerElement.getMaxOccurs() != 1) {
+                                    innerElement.getMaxOccurs() != 1) {
                                     isMultipart = false;
                                 }
                                 XmlSchemaType schemaType = 
innerElement.getSchemaType();
                                 QName innerElementQName = 
innerElement.getSchemaTypeName();
                                 if (schemaType instanceof XmlSchemaSimpleType) 
{
                                     if 
(Constants.XSD_QNAME.equals(innerElementQName) ||
-                                            
Constants.XSD_NOTATION.equals(innerElementQName) ||
-                                            
Constants.XSD_HEXBIN.equals(innerElementQName) ||
-                                            
Constants.XSD_BASE64.equals(innerElementQName)) {
-                                            isIRI = false;
+                                        
Constants.XSD_NOTATION.equals(innerElementQName) ||
+                                        
Constants.XSD_HEXBIN.equals(innerElementQName) ||
+                                        
Constants.XSD_BASE64.equals(innerElementQName)) {
+                                        isIRI = false;
                                     }
                                 } else {
                                     isIRI = false;
                                 }
-                                if 
(Constants.XSD_ANY.equals(innerElementQName) && iterator.hasNext()) {
+                                if 
(Constants.XSD_ANY.equals(innerElementQName)) {
                                     isRPC = false;
                                 }
                                 String name = innerElement.getName();
@@ -444,11 +441,11 @@ public class AxisService2WSDL20 implemen
                             }
                         }
                     } else {
-                        return new URI [0];
+                        return new URI[0];
                     }
                 } else {
-                        return new URI [0];
-                    }
+                    return new URI[0];
+                }
             } else {
                 return new URI [0];
             }
@@ -479,19 +476,15 @@ public class AxisService2WSDL20 implemen
                     XmlSchemaParticle particle = complexType.getParticle();
                     if (particle != null && particle instanceof 
XmlSchemaSequence) {
                         XmlSchemaSequence xmlSchemaSequence = 
(XmlSchemaSequence) particle;
-                        XmlSchemaObjectCollection schemaObjectCollection =
-                                xmlSchemaSequence.getItems();
-                        if (schemaObjectCollection != null) {
-                            Iterator iterator = 
schemaObjectCollection.getIterator();
-                            while (iterator.hasNext()) {
-                                Object next = iterator.next();
-                                if (!(next instanceof XmlSchemaElement)) {
+                        if (!xmlSchemaSequence.getItems().isEmpty()) {
+                            for (XmlSchemaSequenceMember member : 
xmlSchemaSequence.getItems()) {
+                                if (!(member instanceof XmlSchemaElement)) {
                                     isRPC = false;
                                 }
-                                XmlSchemaElement innerElement = 
(XmlSchemaElement) next;
+                                XmlSchemaElement innerElement = 
(XmlSchemaElement) member;
                                 QName schemaTypeName = 
innerElement.getSchemaTypeName();
                                 String name = innerElement.getName();
-                                if (innerElement.getRefName() != null) {
+                                if (innerElement.getRef().getTargetQName() != 
null) {
                                     isRPC = false;
                                 }
                                 if (outMessageElementDetails.get(name) != 
null) {
@@ -500,7 +493,7 @@ public class AxisService2WSDL20 implemen
                                 QName inMessageElementType =
                                         (QName) 
inMessageElementDetails.get(name);
                                 if (inMessageElementType != null &&
-                                        inMessageElementType != 
schemaTypeName) {
+                                    inMessageElementType != schemaTypeName) {
                                     isRPC = false;
                                 }
                                 outMessageElementDetails.put(name, 
schemaTypeName);

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java?rev=1818516&r1=1818515&r2=1818516&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
 Sun Dec 17 22:16:04 2017
@@ -75,7 +75,6 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -321,7 +320,7 @@ public class DefaultSchemaGenerator impl
 
 
         // since we do not support overload
-        Map<String,Method> uniqueMethods = new LinkedHashMap<String,Method>();
+        Map<String, Method> uniqueMethods = new LinkedHashMap<String, 
Method>();
         XmlSchemaComplexType methodSchemaType;
         XmlSchemaSequence sequence = null;
 
@@ -339,7 +338,7 @@ public class DefaultSchemaGenerator impl
 
             if (uniqueMethods.get(methodName) != null) {
                 log.warn("We don't support method overloading. Ignoring [" +
-                        methodName + "]");
+                         methodName + "]");
                 continue;
             }
             if (!Modifier.isPublic(jMethod.getModifiers())) {
@@ -361,8 +360,8 @@ public class DefaultSchemaGenerator impl
                 addToService = true;
             }
 // by now axis operation should be assigned but we better recheck & add the 
paramether
-            if(axisOperation != null){
-             axisOperation.addParameter("JAXRSAnnotaion", 
JAXRSUtils.getMethodModel(this.classModel,jMethod));
+            if (axisOperation != null) {
+                axisOperation.addParameter("JAXRSAnnotaion", 
JAXRSUtils.getMethodModel(this.classModel, jMethod));
             }
             // Maintain a list of methods we actually work with
             list.add(jMethod);
@@ -401,7 +400,7 @@ public class DefaultSchemaGenerator impl
             }
 
             
service.addMessageElementQNameToOperationMapping(methodSchemaType.getQName(),
-                    axisOperation);
+                                                             axisOperation);
 
 
             Annotation[][] parameterAnnotation = 
jMethod.getParameterAnnotations();
@@ -413,36 +412,36 @@ public class DefaultSchemaGenerator impl
                 if (nonRpcMethods.contains(jMethod.getName())) {
                     generateSchemaForType(sequence, null, jMethod.getName());
                     break;
-                    
-                } else if(methodParameter != null && 
Document.class.isAssignableFrom(methodParameter)) {
-                    generateSchemaTypeForDocument(sequence, parameterName);  
-                    
-                } else if(methodParameter != null && 
Map.class.isAssignableFrom(methodParameter)) {
-                       generateWrappedSchemaTypeForMap(sequence, 
genericParameterTypes[j], parameterName);   
-                       
-                } else if(methodParameter != null && 
Collection.class.isAssignableFrom(methodParameter)){
-                       generateWrappedSchemaTypeForCollection(sequence, 
genericParameterTypes[j], parameterName); 
-                       
-                }else if(methodParameter != null && 
Enum.class.isAssignableFrom(methodParameter)){
-                    generateWrappedSchemaTypeForEnum(sequence , parameterName 
, methodParameter , false);
-                }else {
+
+                } else if (methodParameter != null && 
Document.class.isAssignableFrom(methodParameter)) {
+                    generateSchemaTypeForDocument(sequence, parameterName);
+
+                } else if (methodParameter != null && 
Map.class.isAssignableFrom(methodParameter)) {
+                    generateWrappedSchemaTypeForMap(sequence, 
genericParameterTypes[j], parameterName);
+
+                } else if (methodParameter != null && 
Collection.class.isAssignableFrom(methodParameter)) {
+                    generateWrappedSchemaTypeForCollection(sequence, 
genericParameterTypes[j], parameterName);
+
+                } else if (methodParameter != null && 
Enum.class.isAssignableFrom(methodParameter)) {
+                    generateWrappedSchemaTypeForEnum(sequence, parameterName, 
methodParameter, false);
+                } else {
                     Type genericParameterType = genericParameterTypes[j];
                     Type genericType = null;
-                    if(genericParameterType instanceof ParameterizedType){
+                    if (genericParameterType instanceof ParameterizedType) {
                         ParameterizedType aType = (ParameterizedType) 
genericParameterType;
                         Type[] parameterArgTypes = 
aType.getActualTypeArguments();
                         genericType = parameterArgTypes[0];
                         generateSchemaForType(sequence, genericType, 
parameterName, true);
-                    }else{
-                        if(methodParameter.isArray()){
+                    } else {
+                        if (methodParameter.isArray()) {
                             Class<?> componentType = 
methodParameter.getComponentType();
                             if (Enum.class.isAssignableFrom(componentType)) {
-                                generateWrappedSchemaTypeForEnum(sequence,  
parameterName, componentType, true);
+                                generateWrappedSchemaTypeForEnum(sequence, 
parameterName, componentType, true);
                             } else {
-                                 generateSchemaForType(sequence, 
methodParameter, parameterName);
+                                generateSchemaForType(sequence, 
methodParameter, parameterName);
                             }
 
-                        }else{
+                        } else {
                             generateSchemaForType(sequence, methodParameter, 
parameterName);
                         }
                     }
@@ -455,30 +454,30 @@ public class DefaultSchemaGenerator impl
                 methodSchemaType =
                         createSchemaTypeForMethodPart(partQname);
                 sequence = new XmlSchemaSequence();
-                methodSchemaType.setParticle(sequence);               
-                String returnName = "return";                
+                methodSchemaType.setParticle(sequence);
+                String returnName = "return";
                 Type genericParameterType = jMethod.getGenericReturnType();
                 if (nonRpcMethods.contains(jMethod.getName())) {
                     generateSchemaForType(sequence, null, returnName);
-                    
-                } else if(returnType != null && 
Document.class.isAssignableFrom(returnType)) {
-                    generateSchemaTypeForDocument(sequence, returnName);   
-                    
-                } else if (Map.class.isAssignableFrom(returnType)){
-                                       if (genericParameterType instanceof 
ParameterizedType) {
-                                               
generateWrappedSchemaTypeForMap(sequence, genericParameterType, returnName);
-                                       } else {
-                                               
generateWrappedSchemaTypeForMap(sequence, returnType, returnName);
-                                       }                       
-                } else if (Collection.class.isAssignableFrom(returnType)){
-                                       if (genericParameterType instanceof 
ParameterizedType) {                                                
-                                               
generateWrappedSchemaTypeForCollection(sequence, genericParameterType, 
returnName);
-                                       } else {                                
                
-                                               
generateWrappedSchemaTypeForCollection(sequence, genericParameterType, 
returnName);
-                                       }
-                }else if(Enum.class .isAssignableFrom(returnType)){
-                      generateWrappedSchemaTypeForEnum(sequence ,  returnName 
, returnType , false);
-                } else if(genericParameterType instanceof ParameterizedType){
+
+                } else if (returnType != null && 
Document.class.isAssignableFrom(returnType)) {
+                    generateSchemaTypeForDocument(sequence, returnName);
+
+                } else if (Map.class.isAssignableFrom(returnType)) {
+                    if (genericParameterType instanceof ParameterizedType) {
+                        generateWrappedSchemaTypeForMap(sequence, 
genericParameterType, returnName);
+                    } else {
+                        generateWrappedSchemaTypeForMap(sequence, returnType, 
returnName);
+                    }
+                } else if (Collection.class.isAssignableFrom(returnType)) {
+                    if (genericParameterType instanceof ParameterizedType) {
+                        generateWrappedSchemaTypeForCollection(sequence, 
genericParameterType, returnName);
+                    } else {
+                        generateWrappedSchemaTypeForCollection(sequence, 
genericParameterType, returnName);
+                    }
+                } else if (Enum.class.isAssignableFrom(returnType)) {
+                    generateWrappedSchemaTypeForEnum(sequence, returnName, 
returnType, false);
+                } else if (genericParameterType instanceof ParameterizedType) {
                     ParameterizedType aType = (ParameterizedType) 
genericParameterType;
                     Type[] parameterArgTypes = aType.getActualTypeArguments();
                     generateSchemaForType(sequence, parameterArgTypes[0], 
returnName, true);
@@ -486,7 +485,7 @@ public class DefaultSchemaGenerator impl
                     if (returnType.isArray()) {
                         Class<?> returnComponentType = 
returnType.getComponentType();
                         if (Enum.class.isAssignableFrom(returnComponentType)) {
-                            generateWrappedSchemaTypeForEnum(sequence,  
returnName, returnComponentType, true);
+                            generateWrappedSchemaTypeForEnum(sequence, 
returnName, returnComponentType, true);
                         } else {
                             generateSchemaForType(sequence, returnType, 
returnName);
                         }
@@ -506,7 +505,7 @@ public class DefaultSchemaGenerator impl
                 }
 
                 
service.addMessageElementQNameToOperationMapping(methodSchemaType.getQName(),
-                        axisOperation);
+                                                                 
axisOperation);
             }
             if (addToService) {
                 service.addOperation(axisOperation);
@@ -576,10 +575,10 @@ public class DefaultSchemaGenerator impl
         XmlSchemaSequence sequence = new XmlSchemaSequence();
         XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
         QName elementName = new QName(schemaTargetNameSpace, "Exception", 
schema_namespace_prefix);
-        XmlSchemaComplexType complexType = new XmlSchemaComplexType(xmlSchema);
+        XmlSchemaComplexType complexType = new XmlSchemaComplexType(xmlSchema, 
false);
         complexType.setName("Exception");
         xmlSchema.getItems().add(complexType);
-        xmlSchema.getSchemaTypes().add(elementName, complexType);
+        xmlSchema.getSchemaTypes().put(elementName, complexType);
         typeTable.addComplexSchema(Exception.class.getName(), elementName);
         QName schemaTypeName = new 
QName(Java2WSDLConstants.URI_2001_SCHEMA_XSD, "string");
         addContentToMethodSchemaType(sequence, schemaTypeName, "Message", 
false);
@@ -608,7 +607,7 @@ public class DefaultSchemaGenerator impl
                 targetNamespacePrefixMap.put(targetNameSpace, 
targetNamespacePrefix);
             }
 
-            XmlSchemaComplexType complexType = new 
XmlSchemaComplexType(xmlSchema);
+            XmlSchemaComplexType complexType = new 
XmlSchemaComplexType(xmlSchema, false);
             XmlSchemaSequence sequence = new XmlSchemaSequence();
             XmlSchemaComplexContentExtension complexExtension =
                     new XmlSchemaComplexContentExtension();
@@ -645,7 +644,7 @@ public class DefaultSchemaGenerator impl
                 //if the parent class package name is differ from the child
                 if (!((NamespaceMap) xmlSchema.getNamespaceContext()).values().
                         contains(tgtNamespace)) {
-                    XmlSchemaImport importElement = new XmlSchemaImport();
+                    XmlSchemaImport importElement = new 
XmlSchemaImport(xmlSchema);
                     importElement.setNamespace(tgtNamespace);
                     xmlSchema.getItems().add(importElement);
                     ((NamespaceMap) xmlSchema.getNamespaceContext()).
@@ -670,7 +669,7 @@ public class DefaultSchemaGenerator impl
             }
 
             xmlSchema.getItems().add(complexType);
-            xmlSchema.getSchemaTypes().add(schemaTypeName, complexType);
+            xmlSchema.getSchemaTypes().put(schemaTypeName, complexType);
 
             // adding this type to the table
             typeTable.addComplexSchema(name, schemaTypeName);
@@ -774,7 +773,7 @@ public class DefaultSchemaGenerator impl
                 simpleTypeName += getSimpleClassName(simpleType);
 
                 if (xmlSchema.getTypeByName(simpleTypeName) == null) {
-                    XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema);
+                    XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema, false);
                     XmlSchemaSequence xmlSchemaSequence = new 
XmlSchemaSequence();
                     xmlSchemaComplexType.setParticle(xmlSchemaSequence);
                     generateSchemaforFieldsandProperties(xmlSchema,
@@ -782,25 +781,25 @@ public class DefaultSchemaGenerator impl
 
                     xmlSchemaComplexType.setName(simpleTypeName);
                     xmlSchema.getItems().add(xmlSchemaComplexType);
-                    xmlSchema.getSchemaTypes().add(
+                    xmlSchema.getSchemaTypes().put(
                             new QName(xmlSchema.getTargetNamespace(), 
simpleTypeName), xmlSchemaComplexType);
                 }
 
                 if (isGenerateWrappedArrayTypes) {
-                    XmlSchemaElement xmlSchemaElement = new XmlSchemaElement();
+                    XmlSchemaElement xmlSchemaElement = new 
XmlSchemaElement(xmlSchema, false);
                     xmlSchemaElement.setName( name + "Wrapper");
                     xmlSchemaElement.setNillable(true);
                     sequence.getItems().add(xmlSchemaElement);
 
                     String complexTypeName = simpleTypeName + "Wrapper";
 
-                    XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema);
+                    XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema, false);
                     XmlSchemaSequence xmlSchemaSequence = new 
XmlSchemaSequence();
                     xmlSchemaComplexType.setParticle(xmlSchemaSequence);
                     xmlSchemaComplexType.setName(complexTypeName);
 
                     xmlSchema.getItems().add(xmlSchemaComplexType);
-                    xmlSchema.getSchemaTypes().add(
+                    xmlSchema.getSchemaTypes().put(
                             new QName(schemaTargetNameSpace, 
xmlSchemaComplexType.getName()),
                             xmlSchemaComplexType);
                     addContentToMethodSchemaType(xmlSchemaSequence,
@@ -869,7 +868,7 @@ public class DefaultSchemaGenerator impl
 
             if (typeTable.getComplexSchemaType(propertyName) != null && 
!((NamespaceMap) xmlSchema.getNamespaceContext()).values().
                     
contains(typeTable.getComplexSchemaType(propertyName).getNamespaceURI())) {
-                XmlSchemaImport importElement = new XmlSchemaImport();
+                XmlSchemaImport importElement = new XmlSchemaImport(xmlSchema);
                 importElement.setNamespace(
                         
typeTable.getComplexSchemaType(propertyName).getNamespaceURI());
                 xmlSchema.getItems().add(importElement);
@@ -901,7 +900,7 @@ public class DefaultSchemaGenerator impl
             simpleTypeName += simpleType.getSimpleName();
 
             if (xmlSchema.getTypeByName(simpleTypeName) == null) {
-                XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema);
+                XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema, false);
                 XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
                 xmlSchemaComplexType.setParticle(xmlSchemaSequence);
                 generateSchemaforGenericFields(xmlSchema,
@@ -909,25 +908,25 @@ public class DefaultSchemaGenerator impl
 
                 xmlSchemaComplexType.setName(simpleTypeName);
                 xmlSchema.getItems().add(xmlSchemaComplexType);
-                xmlSchema.getSchemaTypes().add(
+                xmlSchema.getSchemaTypes().put(
                         new QName(xmlSchema.getTargetNamespace(), 
simpleTypeName), xmlSchemaComplexType);
             }
 
             if (isGenerateWrappedArrayTypes) {
-                XmlSchemaElement xmlSchemaElement = new XmlSchemaElement();
+                XmlSchemaElement xmlSchemaElement = new 
XmlSchemaElement(xmlSchema, false);
                 xmlSchemaElement.setName( name + "Wrapper");
                 xmlSchemaElement.setNillable(true);
                 sequence.getItems().add(xmlSchemaElement);
 
                 String complexTypeName = simpleTypeName + "Wrapper";
 
-                XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema);
+                XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema, false);
                 XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
                 xmlSchemaComplexType.setParticle(xmlSchemaSequence);
                 xmlSchemaComplexType.setName(complexTypeName);
 
                 xmlSchema.getItems().add(xmlSchemaComplexType);
-                xmlSchema.getSchemaTypes().add(
+                xmlSchema.getSchemaTypes().put(
                         new QName(schemaTargetNameSpace, 
xmlSchemaComplexType.getName()),
                         xmlSchemaComplexType);
                 addContentToMethodSchemaType(xmlSchemaSequence,
@@ -998,7 +997,7 @@ public class DefaultSchemaGenerator impl
 
             if (typeTable.getComplexSchemaType(propertyName) != null && 
!((NamespaceMap) xmlSchema.getNamespaceContext()).values().
                     
contains(typeTable.getComplexSchemaType(propertyName).getNamespaceURI())) {
-                XmlSchemaImport importElement = new XmlSchemaImport();
+                XmlSchemaImport importElement = new XmlSchemaImport(xmlSchema);
                 importElement.setNamespace(
                         
typeTable.getComplexSchemaType(propertyName).getNamespaceURI());
                 xmlSchema.getItems().add(importElement);
@@ -1018,7 +1017,7 @@ public class DefaultSchemaGenerator impl
                                                   String name,
                                                   boolean isArrayType,
                                                   String propertyName) {
-        XmlSchemaElement xmlSchemaElement = new XmlSchemaElement();
+        XmlSchemaElement xmlSchemaElement = new XmlSchemaElement(xmlSchema, 
false);
         xmlSchemaElement.setName( name + "Wrapper");
         xmlSchemaElement.setNillable(true);
         sequence.getItems().add(xmlSchemaElement);
@@ -1028,13 +1027,13 @@ public class DefaultSchemaGenerator impl
 
         XmlSchemaComplexType xmlSchemaComplexType ;
         if (xmlSchema.getTypeByName(complexTypeName) == null) {
-            xmlSchemaComplexType = new XmlSchemaComplexType(xmlSchema);
+            xmlSchemaComplexType = new XmlSchemaComplexType(xmlSchema, false);
             XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
             xmlSchemaComplexType.setParticle(xmlSchemaSequence);
             xmlSchemaComplexType.setName(complexTypeName);
 
             xmlSchema.getItems().add(xmlSchemaComplexType);
-            xmlSchema.getSchemaTypes().add(
+            xmlSchema.getSchemaTypes().put(
                     new QName(schemaTargetNameSpace, 
xmlSchemaComplexType.getName()),
                     xmlSchemaComplexType);
             addElementToSequence("array",
@@ -1057,7 +1056,7 @@ public class DefaultSchemaGenerator impl
                                       boolean isBase64Binary,
                                       boolean isArryType,
                                       boolean isPrimitive) {
-        XmlSchemaElement elt1 = new XmlSchemaElement();
+        XmlSchemaElement elt1 = new 
XmlSchemaElement(getXmlSchema(schemaTargetNameSpace), false);
         elt1.setName(name);
         elt1.setSchemaTypeName(propertyQName);
         sequence.getItems().add(elt1);
@@ -1150,31 +1149,31 @@ public class DefaultSchemaGenerator impl
 
             XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
             if (xmlSchema.getTypeByName(simpleTypeName) == null) {
-                XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema);
+                XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema, false);
                 XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
                 xmlSchemaComplexType.setParticle(xmlSchemaSequence);
                 generateSchemaForType(xmlSchemaSequence, simpleType, 
"array",true);
                 xmlSchemaComplexType.setName(simpleTypeName);
                 xmlSchema.getItems().add(xmlSchemaComplexType);
-                xmlSchema.getSchemaTypes().add(
+                xmlSchema.getSchemaTypes().put(
                         new QName(xmlSchema.getTargetNamespace(), 
simpleTypeName), xmlSchemaComplexType);
             }
 
             if (isGenerateWrappedArrayTypes) {
-                XmlSchemaElement xmlSchemaElement = new XmlSchemaElement();
+                XmlSchemaElement xmlSchemaElement = new 
XmlSchemaElement(xmlSchema, false);
                 xmlSchemaElement.setName(partName + "Wrapper");
                 xmlSchemaElement.setNillable(true);
                 sequence.getItems().add(xmlSchemaElement);
 
                 String complexTypeName = simpleTypeName + "Wrapper";
 
-                XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema);
+                XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema, false);
                 XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
                 xmlSchemaComplexType.setParticle(xmlSchemaSequence);
                 xmlSchemaComplexType.setName(complexTypeName);
 
                 xmlSchema.getItems().add(xmlSchemaComplexType);
-                xmlSchema.getSchemaTypes().add(
+                xmlSchema.getSchemaTypes().put(
                         new QName(schemaTargetNameSpace, 
xmlSchemaComplexType.getName()),
                         xmlSchemaComplexType);
                 addContentToMethodSchemaType(xmlSchemaSequence,
@@ -1227,24 +1226,23 @@ public class DefaultSchemaGenerator impl
         if (schemaTypeName == null) {
             schemaTypeName = generateSchema(type);
             if (isGenerateWrappedArrayTypes && isArrayType) {
-
-                XmlSchemaElement xmlSchemaElement = new XmlSchemaElement();
+                XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
+                XmlSchemaElement xmlSchemaElement = new 
XmlSchemaElement(xmlSchema, false);
                 xmlSchemaElement.setName(partName + "Wrapper");
                 xmlSchemaElement.setNillable(true);
                 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);
+                    xmlSchemaComplexType = new XmlSchemaComplexType(xmlSchema, 
false);
                     XmlSchemaSequence xmlSchemaSequence = new 
XmlSchemaSequence();
                     xmlSchemaComplexType.setParticle(xmlSchemaSequence);
                     xmlSchemaComplexType.setName(complexTypeName);
 
                     xmlSchema.getItems().add(xmlSchemaComplexType);
-                    xmlSchema.getSchemaTypes().add(
+                    xmlSchema.getSchemaTypes().put(
                             new QName(schemaTargetNameSpace, 
xmlSchemaComplexType.getName()),
                             xmlSchemaComplexType);
                     addContentToMethodSchemaType(xmlSchemaSequence,
@@ -1272,24 +1270,23 @@ public class DefaultSchemaGenerator impl
 
         } else {
             if (isGenerateWrappedArrayTypes && isArrayType) {
-
-                XmlSchemaElement xmlSchemaElement = new XmlSchemaElement();
+                XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
+                XmlSchemaElement xmlSchemaElement = new 
XmlSchemaElement(xmlSchema, false);
                 xmlSchemaElement.setName(partName +"Wrapper");
                 xmlSchemaElement.setNillable(true);
                 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);
+                    xmlSchemaComplexType = new XmlSchemaComplexType(xmlSchema, 
false);
                     XmlSchemaSequence xmlSchemaSequence = new 
XmlSchemaSequence();
                     xmlSchemaComplexType.setParticle(xmlSchemaSequence);
                     xmlSchemaComplexType.setName(complexTypeName);
 
                     xmlSchema.getItems().add(xmlSchemaComplexType);
-                    xmlSchema.getSchemaTypes().add(
+                    xmlSchema.getSchemaTypes().put(
                             new QName(schemaTargetNameSpace, 
xmlSchemaComplexType.getName()),
                             xmlSchemaComplexType);
                     addContentToMethodSchemaType(xmlSchemaSequence,
@@ -1319,31 +1316,31 @@ public class DefaultSchemaGenerator impl
     private QName processParameterArrayTypes(XmlSchemaSequence sequence, 
Class<?> type, String partName, String simpleTypeName) throws Exception {
         XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
         if (xmlSchema.getTypeByName(simpleTypeName) == null) {
-            XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema);
+            XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema, false);
             XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
             xmlSchemaComplexType.setParticle(xmlSchemaSequence);
             generateSchemaForType(xmlSchemaSequence, type.getComponentType(), 
"array");
             xmlSchemaComplexType.setName(simpleTypeName);
             xmlSchema.getItems().add(xmlSchemaComplexType);
-            xmlSchema.getSchemaTypes().add(
+            xmlSchema.getSchemaTypes().put(
                     new QName(xmlSchema.getTargetNamespace(), simpleTypeName), 
xmlSchemaComplexType);
         }
 
         if (isGenerateWrappedArrayTypes) {
-            XmlSchemaElement xmlSchemaElement = new XmlSchemaElement();
+            XmlSchemaElement xmlSchemaElement = new 
XmlSchemaElement(xmlSchema, false);
             xmlSchemaElement.setName(partName + "Wrapper");
             xmlSchemaElement.setNillable(true);
             sequence.getItems().add(xmlSchemaElement);
 
             String complexTypeName = simpleTypeName + "Wrapper";
 
-            XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema);
+            XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(xmlSchema, false);
             XmlSchemaSequence xmlSchemaSequence = new XmlSchemaSequence();
             xmlSchemaComplexType.setParticle(xmlSchemaSequence);
             xmlSchemaComplexType.setName(complexTypeName);
 
             xmlSchema.getItems().add(xmlSchemaComplexType);
-            xmlSchema.getSchemaTypes().add(
+            xmlSchema.getSchemaTypes().put(
                     new QName(schemaTargetNameSpace, 
xmlSchemaComplexType.getName()),
                     xmlSchemaComplexType);
             addContentToMethodSchemaType(xmlSchemaSequence,
@@ -1371,7 +1368,7 @@ public class DefaultSchemaGenerator impl
                                                 QName schemaTypeName,
                                                 String paraName,
                                                 boolean isArray) {
-        XmlSchemaElement elt1 = new XmlSchemaElement();
+        XmlSchemaElement elt1 = new 
XmlSchemaElement(getXmlSchema(schemaTargetNameSpace), false);
         elt1.setName(paraName);
 
         elt1.setSchemaTypeName(schemaTypeName);
@@ -1424,11 +1421,10 @@ public class DefaultSchemaGenerator impl
 
         XmlSchemaComplexType complexType = getComplexTypeForElement(xmlSchema, 
elementName);
         if (complexType == null) {
-            complexType = new XmlSchemaComplexType(xmlSchema);
+            complexType = new XmlSchemaComplexType(xmlSchema, false);
 
-            XmlSchemaElement globalElement = new XmlSchemaElement();
+            XmlSchemaElement globalElement = new XmlSchemaElement(xmlSchema, 
false);
             globalElement.setName(localPartName);
-            globalElement.setQName(elementName);
 
             boolean disallowAnonTypes = isAnonymousTypesDisallowed();
             if (disallowAnonTypes) {
@@ -1437,13 +1433,13 @@ public class DefaultSchemaGenerator impl
                 complexType.setName(complexTypeName);
                 globalElement.setSchemaTypeName(complexType.getQName());
                 xmlSchema.getItems().add(complexType);
-                xmlSchema.getSchemaTypes().add(complexType.getQName(), 
complexType);
+                xmlSchema.getSchemaTypes().put(complexType.getQName(), 
complexType);
             } else {
                 globalElement.setSchemaType(complexType);
             }
 
             xmlSchema.getItems().add(globalElement);
-            xmlSchema.getElements().add(elementName, globalElement);
+            xmlSchema.getElements().put(elementName, globalElement);
         }
         typeTable.addComplexSchema(localPartName, elementName);
 
@@ -1457,24 +1453,23 @@ public class DefaultSchemaGenerator impl
 
         XmlSchemaComplexType complexType = getComplexTypeForElement(xmlSchema, 
elementName);
         if (complexType == null) {
-            complexType = new XmlSchemaComplexType(xmlSchema);
+            complexType = new XmlSchemaComplexType(xmlSchema, false);
 
-            XmlSchemaElement globalElement = new XmlSchemaElement();
+            XmlSchemaElement globalElement = new XmlSchemaElement(xmlSchema, 
false);
             globalElement.setName(localPartName);
-            globalElement.setQName(elementName);
 
             boolean disallowAnonTypes = isAnonymousTypesDisallowed();
             if (disallowAnonTypes) {
                 complexType.setName(localPartName);
                 globalElement.setSchemaTypeName(complexType.getQName());
                 xmlSchema.getItems().add(complexType);
-                xmlSchema.getSchemaTypes().add(complexType.getQName(), 
complexType);
+                xmlSchema.getSchemaTypes().put(complexType.getQName(), 
complexType);
             } else {
                 globalElement.setSchemaType(complexType);
             }
 
             xmlSchema.getItems().add(globalElement);
-            xmlSchema.getElements().add(elementName, globalElement);
+            xmlSchema.getElements().put(elementName, globalElement);
 
         }
         return complexType;
@@ -1499,13 +1494,11 @@ public class DefaultSchemaGenerator impl
     }
 
     protected XmlSchemaComplexType getComplexTypeForElement(XmlSchema 
xmlSchema, QName name) {
-        
-        Iterator<?> iterator = xmlSchema.getItems().getIterator();
-        while (iterator.hasNext()) {
-            XmlSchemaObject object = (XmlSchemaObject) iterator.next();
+
+        for (XmlSchemaObject object : xmlSchema.getItems()) {
             if (object instanceof XmlSchemaElement && ((XmlSchemaElement) 
object).getQName().equals(name)) {
                 XmlSchemaComplexType xmlSchemaComplexType = 
(XmlSchemaComplexType) ((XmlSchemaElement) object).getSchemaType();
-                if ((xmlSchemaComplexType == null) && (((XmlSchemaElement) 
object).getSchemaTypeName() != null)){
+                if ((xmlSchemaComplexType == null) && (((XmlSchemaElement) 
object).getSchemaTypeName() != null)) {
                     xmlSchemaComplexType =
                             (XmlSchemaComplexType) 
xmlSchema.getTypeByName(((XmlSchemaElement) object).getSchemaTypeName());
                 }
@@ -1576,9 +1569,11 @@ public class DefaultSchemaGenerator impl
         }
         if (map instanceof NamespaceMap && !((NamespaceMap) map).values().
                 contains(schemaTypeName.getNamespaceURI())) {
-            XmlSchemaImport importElement = new XmlSchemaImport();
+            XmlSchemaImport importElement = new XmlSchemaImport(xmlSchema);
             importElement.setNamespace(schemaTypeName.getNamespaceURI());
-            xmlSchema.getItems().add(importElement);
+            if (!xmlSchema.getItems().contains(importElement)) {
+                xmlSchema.getItems().add(importElement);
+            }
             ((NamespaceMap) xmlSchema.getNamespaceContext()).
                     put(generatePrefix(), schemaTypeName.getNamespaceURI());
         }
@@ -1602,17 +1597,17 @@ public class DefaultSchemaGenerator impl
 
     protected XmlSchemaForm getAttrFormDefaultSetting() {
         if (FORM_DEFAULT_UNQUALIFIED.equals(getAttrFormDefault())) {
-            return new XmlSchemaForm(XmlSchemaForm.UNQUALIFIED);
+            return XmlSchemaForm.schemaValueOf(FORM_DEFAULT_UNQUALIFIED);
         } else {
-            return new XmlSchemaForm(XmlSchemaForm.QUALIFIED);
+            return XmlSchemaForm.schemaValueOf(FORM_DEFAULT_QUALIFIED);
         }
     }
 
     protected XmlSchemaForm getElementFormDefaultSetting() {
         if (FORM_DEFAULT_UNQUALIFIED.equals(getElementFormDefault())) {
-            return new XmlSchemaForm(XmlSchemaForm.UNQUALIFIED);
+            return XmlSchemaForm.schemaValueOf(FORM_DEFAULT_UNQUALIFIED);
         } else {
-            return new XmlSchemaForm(XmlSchemaForm.QUALIFIED);
+            return XmlSchemaForm.schemaValueOf(FORM_DEFAULT_QUALIFIED);
         }
     }
 
@@ -1810,7 +1805,7 @@ public class DefaultSchemaGenerator impl
                String targetNamespacePrefix = targetNamespacePrefixMap
                                .get(Constants.AXIS2_MAP_NAMESPACE_URI);
                
-               XmlSchemaComplexType entryType = new 
XmlSchemaComplexType(xmlSchema);
+               XmlSchemaComplexType entryType = new 
XmlSchemaComplexType(xmlSchema, false);
                QName entryTypeName = new 
QName(Constants.AXIS2_MAP_NAMESPACE_URI,
                                entryName, targetNamespacePrefix);
                XmlSchemaSequence entrySequence = new XmlSchemaSequence();
@@ -1822,15 +1817,14 @@ public class DefaultSchemaGenerator impl
                entryType.setName(entryName);
                xmlSchema.getItems().add(entryType);
 
-               XmlSchemaElement entryElement = new XmlSchemaElement();
+               XmlSchemaElement entryElement = new XmlSchemaElement(xmlSchema, 
false);
                entryElement.setName(Constants.MAP_ENTRY_ELEMENT_NAME);
                entryElement.setNillable(true);
                entryElement.setSchemaTypeName(entryTypeName);
                entryElement.setMaxOccurs(Long.MAX_VALUE);
                entryElement.setMinOccurs(0);
-               entryElement.setQName(entryTypeName);
 
-               XmlSchemaComplexType mapType = new 
XmlSchemaComplexType(xmlSchema);
+               XmlSchemaComplexType mapType = new 
XmlSchemaComplexType(xmlSchema, false);
                QName mapTypeName = new QName(Constants.AXIS2_MAP_NAMESPACE_URI,
                                mapName, targetNamespacePrefix);
                XmlSchemaSequence mapSequence = new XmlSchemaSequence();
@@ -1844,8 +1838,7 @@ public class DefaultSchemaGenerator impl
                addImport(getXmlSchema(schemaTargetNameSpace), schemaTypeName);
 
                if (sequence != null) {
-                       XmlSchemaComplexType parameterType = new 
XmlSchemaComplexType(
-                                       xmlSchema);
+                       XmlSchemaComplexType parameterType = new 
XmlSchemaComplexType(xmlSchema, false);
                        QName parameterTypeName = new QName(
                                        Constants.AXIS2_MAP_NAMESPACE_URI, 
mapName,
                                        targetNamespacePrefix);
@@ -1853,7 +1846,7 @@ public class DefaultSchemaGenerator impl
                        parameterSequence.getItems().add(entryElement);
                        parameterType.setParticle(parameterSequence);
 
-                       XmlSchemaElement parameterElement = new 
XmlSchemaElement();
+                       XmlSchemaElement parameterElement = new 
XmlSchemaElement(xmlSchema, false);
                        parameterElement.setName(parameterName);
             parameterElement.setMinOccurs(0);
                        parameterElement.setNillable(true);
@@ -1940,7 +1933,7 @@ public class DefaultSchemaGenerator impl
                                .isAssignableFrom((Class<?>) 
innerParameterizedType
                                        .getRawType())) {
                            XmlSchemaComplexType xmlSchemaComplexType = new 
XmlSchemaComplexType(
-                                   xmlSchema);
+                                   xmlSchema, false);
                            XmlSchemaSequence xmlSchemaSequence = new 
XmlSchemaSequence();
                            xmlSchemaComplexType.setParticle(xmlSchemaSequence);
                            generateWrappedSchemaTypeForCollection(
@@ -1948,7 +1941,7 @@ public class DefaultSchemaGenerator impl
                            "array");
                            xmlSchemaComplexType.setName(simpleTypeName);
                            xmlSchema.getItems().add(xmlSchemaComplexType);
-                           xmlSchema.getSchemaTypes().add(
+                           xmlSchema.getSchemaTypes().put(
                                    new QName(xmlSchema.getTargetNamespace(),
                                            simpleTypeName), 
xmlSchemaComplexType);
 
@@ -2069,22 +2062,21 @@ public class DefaultSchemaGenerator impl
         XmlSchemaType schemaType = xmlSchema.getTypeByName(entryName);
 
         if (schemaType == null) {
-            XmlSchemaComplexType entryType = new 
XmlSchemaComplexType(xmlSchema);
+            XmlSchemaComplexType entryType = new 
XmlSchemaComplexType(xmlSchema, false);
             XmlSchemaSequence entrySequence = new XmlSchemaSequence();
             XmlSchemaAny any = new XmlSchemaAny();
             entrySequence.getItems().add(any);
             entryType.setParticle(entrySequence);
             entryType.setName(entryName.getLocalPart());
             xmlSchema.getItems().add(entryType);
-            xmlSchema.getSchemaTypes().add(entryName, entryType);
+            xmlSchema.getSchemaTypes().put(entryName, entryType);
             schemaType = entryType;
 
         }
 
-        XmlSchemaElement entryElement = new XmlSchemaElement();
+        XmlSchemaElement entryElement = new XmlSchemaElement(xmlSchema, false);
         entryElement.setName(parameterName);
         entryElement.setSchemaTypeName(schemaType.getQName());
-        entryElement.setQName(schemaType.getQName());
         entryElement.setMinOccurs(0);
         entryElement.setNillable(true);
         if (sequence != null) {
@@ -2134,7 +2126,7 @@ public class DefaultSchemaGenerator impl
                   enumClass, targetNamespacePrefix);
                  // check weather this enum class have already added to schema
             if(typeTable.getSimpleTypeEnum(classType.getName())==null){
-                XmlSchemaSimpleType simpleType = new 
XmlSchemaSimpleType(xmlSchema);
+                XmlSchemaSimpleType simpleType = new 
XmlSchemaSimpleType(xmlSchema, false);
                 simpleType.setName(enumClass);
                 XmlSchemaSimpleTypeRestriction restriction = new 
XmlSchemaSimpleTypeRestriction();
                 restriction.setBaseTypeName(Constants.XSD_STRING);
@@ -2148,17 +2140,15 @@ public class DefaultSchemaGenerator impl
             }
 
 
-          XmlSchemaElement entryElement = new XmlSchemaElement();
+          XmlSchemaElement entryElement = new XmlSchemaElement(xmlSchema, 
false);
           entryElement.setName(Constants.ENUM_ELEMENT_NAME);
           entryElement.setNillable(true);
           entryElement.setSchemaTypeName(enumQname);
-          entryElement.setQName(enumQname);
              QName schemaTypeName = new 
QName(Constants.AXIS2_ENUM_NAMESPACE_URI,
                   enumClass);
           addImport(getXmlSchema(schemaTargetNameSpace), schemaTypeName);
           if (sequence != null) {
-              XmlSchemaComplexType parameterType = new XmlSchemaComplexType(
-                      xmlSchema);
+              XmlSchemaComplexType parameterType = new 
XmlSchemaComplexType(xmlSchema, false);
               QName parameterTypeName = new QName(
                       Constants.AXIS2_ENUM_NAMESPACE_URI, enumClass,
                       targetNamespacePrefix);
@@ -2166,7 +2156,7 @@ public class DefaultSchemaGenerator impl
               parameterSequence.getItems().add(entryElement);
               parameterType.setParticle(parameterSequence);
 
-              XmlSchemaElement parameterElement = new XmlSchemaElement();
+              XmlSchemaElement parameterElement = new 
XmlSchemaElement(xmlSchema, false);
               parameterElement.setName(parameterName);
               if(isArrayType){
                   parameterElement.setMaxOccurs(Long.MAX_VALUE);

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java?rev=1818516&r1=1818515&r2=1818516&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java
 Sun Dec 17 22:16:04 2017
@@ -65,10 +65,10 @@ public class DocLitBareSchemaGenerator e
     protected Method[] processMethods(Method[] declaredMethods) throws 
Exception {
         ArrayList<Method> list = new ArrayList<Method>();
         //short the elements in the array
-        Arrays.sort(declaredMethods , new MathodComparator());
+        Arrays.sort(declaredMethods, new MathodComparator());
 
         // since we do not support overload
-        HashMap<String,Method> uniqueMethods = new 
LinkedHashMap<String,Method>();
+        HashMap<String, Method> uniqueMethods = new LinkedHashMap<String, 
Method>();
         XmlSchemaComplexType methodSchemaType;
         XmlSchemaSequence sequence;
 
@@ -85,11 +85,11 @@ public class DocLitBareSchemaGenerator e
 
             if (uniqueMethods.get(methodName) != null) {
                 log.warn("We don't support method overloading. Ignoring [" +
-                        methodName + "]");
+                         methodName + "]");
                 continue;
             }
 
-           if (!Modifier.isPublic(jMethod.getModifiers())) {
+            if (!Modifier.isPublic(jMethod.getModifiers())) {
                 // no need to generate Schema for non public methods
                 continue;
             }
@@ -99,10 +99,10 @@ public class DocLitBareSchemaGenerator e
             if (axisOperation == null) {
                 axisOperation = Utils.getAxisOperationForJmethod(jMethod);
                 if (WSDL2Constants.MEP_URI_ROBUST_IN_ONLY.equals(
-                        axisOperation.getMessageExchangePattern())){
+                        axisOperation.getMessageExchangePattern())) {
                     AxisMessage outMessage = axisOperation.getMessage(
                             WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
-                    if (outMessage !=null ){
+                    if (outMessage != null) {
                         outMessage.setName(methodName + RESULT);
                     }
                 }
@@ -111,7 +111,7 @@ public class DocLitBareSchemaGenerator e
 
             // Maintain a list of methods we actually work with
             list.add(jMethod);
-            processException(jMethod,axisOperation);
+            processException(jMethod, axisOperation);
             uniqueMethods.put(methodName, jMethod);
             //create the schema type for the method wrapper
 
@@ -130,12 +130,12 @@ public class DocLitBareSchemaGenerator e
                 methodSchemaType.setParticle(sequence);
                 
inMessage.setElementQName(typeTable.getQNamefortheType(methodName));
                 
service.addMessageElementQNameToOperationMapping(methodSchemaType.getQName(),
-                        axisOperation);
+                                                                 
axisOperation);
                 inMessage.setPartName(methodName);
                 for (int j = 0; j < paras.length; j++) {
                     Class<?> methodParameter = paras[j];
                     String parameterName = 
getParameterName(parameterAnnotation, j, parameterNames);
-                    if (generateRequestSchema(methodParameter , 
parameterName,jMethod, sequence, genericParameterTypes[j])) {
+                    if (generateRequestSchema(methodParameter, parameterName, 
jMethod, sequence, genericParameterTypes[j])) {
                         break;
                     }
                 }
@@ -148,10 +148,10 @@ public class DocLitBareSchemaGenerator e
                     Class<?> methodParameter = paras[0];
                     
inMessage.setElementQName(typeTable.getQNamefortheType(methodName));
                     
service.addMessageElementQNameToOperationMapping(methodSchemaType.getQName(),
-                            axisOperation);
+                                                                     
axisOperation);
                     inMessage.setPartName(methodName);
                     String parameterName = 
getParameterName(parameterAnnotation, 0, parameterNames);
-                    if (generateRequestSchema(methodParameter , 
parameterName,jMethod, sequence, genericParameterTypes[0])) {
+                    if (generateRequestSchema(methodParameter, parameterName, 
jMethod, sequence, genericParameterTypes[0])) {
                         break;
                     }
                 } else {
@@ -160,35 +160,35 @@ public class DocLitBareSchemaGenerator e
                     Method processMethod = 
processedParameters.get(parameterName);
                     if (processMethod != null) {
                         throw new AxisFault("Inavalid Java class," +
-                                " there are two methods [" + 
processMethod.getName() + " and " +
-                                jMethod.getName() + " ]which have the same 
parameter names");
+                                            " there are two methods [" + 
processMethod.getName() + " and " +
+                                            jMethod.getName() + " ]which have 
the same parameter names");
                     } else {
                         processedParameters.put(parameterName, jMethod);
-                        if (methodParameter != null && 
Map.class.isAssignableFrom(methodParameter)){                           
-                                                       
generateBareSchemaTypeForMap(parameterName, genericParameterTypes[0], null);
-                                                       
+                        if (methodParameter != null && 
Map.class.isAssignableFrom(methodParameter)) {
+                            generateBareSchemaTypeForMap(parameterName, 
genericParameterTypes[0], null);
+
                         } else if (methodParameter != null
-                               && Collection.class
-                               .isAssignableFrom(methodParameter)) {
-                            
+                                   && Collection.class
+                                .isAssignableFrom(methodParameter)) {
+
                             sequence = new XmlSchemaSequence();
                             methodSchemaType = 
createSchemaTypeForMethodPart(methodName);
                             methodSchemaType.setParticle(sequence);
                             generateBareSchemaTypeForCollection(sequence,
-                                   genericParameterTypes[0], parameterName,
-                                   methodName);
+                                                                
genericParameterTypes[0], parameterName,
+                                                                methodName);
                             parameterName = methodName;
 
-                        } else if (methodParameter != null && 
Document.class.isAssignableFrom(methodParameter)){                         
-                            generateBareSchemaTypeForDocument(null, 
parameterName);                            
+                        } else if (methodParameter != null && 
Document.class.isAssignableFrom(methodParameter)) {
+                            generateBareSchemaTypeForDocument(null, 
parameterName);
                         } else {
-                               generateSchemaForType(null, methodParameter, 
parameterName);                            
-                        }                        
+                            generateSchemaForType(null, methodParameter, 
parameterName);
+                        }
                         
inMessage.setElementQName(typeTable.getQNamefortheType(parameterName));
                         inMessage.setPartName(parameterName);
                         inMessage.setWrapped(false);
                         
service.addMessageElementQNameToOperationMapping(typeTable.getQNamefortheType(parameterName),
-                                axisOperation);
+                                                                         
axisOperation);
                     }
                 }
             }
@@ -213,23 +213,23 @@ public class DocLitBareSchemaGenerator e
                         generateSchemaForType(sequence, returnType, 
returnName);
                     }
                 } else {
-                    if(returnType != null && 
Document.class.isAssignableFrom(returnType)) {
-                        generateBareSchemaTypeForDocument(null, 
methodTypeName);  
-                        
-                    } else if (returnType != null && 
Map.class.isAssignableFrom(returnType)){                          
-                                               
generateBareSchemaTypeForMap(methodTypeName, genericReturnType, null);
-                                               
-                       } else if (returnType != null
-                               && 
Collection.class.isAssignableFrom(returnType)) {
-                           sequence = new XmlSchemaSequence();
-                           methodSchemaType = 
createSchemaTypeForMethodPart(methodTypeName);
-                           methodSchemaType.setParticle(sequence);
-                           generateBareSchemaTypeForCollection(sequence,
-                                   genericReturnType, returnName, methodName);
-
-                       } else {
-                       generateSchemaForType(null, returnType, 
methodTypeName);                        
-                    }                    
+                    if (returnType != null && 
Document.class.isAssignableFrom(returnType)) {
+                        generateBareSchemaTypeForDocument(null, 
methodTypeName);
+
+                    } else if (returnType != null && 
Map.class.isAssignableFrom(returnType)) {
+                        generateBareSchemaTypeForMap(methodTypeName, 
genericReturnType, null);
+
+                    } else if (returnType != null
+                               && 
Collection.class.isAssignableFrom(returnType)) {
+                        sequence = new XmlSchemaSequence();
+                        methodSchemaType = 
createSchemaTypeForMethodPart(methodTypeName);
+                        methodSchemaType.setParticle(sequence);
+                        generateBareSchemaTypeForCollection(sequence,
+                                                            genericReturnType, 
returnName, methodName);
+
+                    } else {
+                        generateSchemaForType(null, returnType, 
methodTypeName);
+                    }
                     outMessage.setWrapped(false);
                 }
                 
outMessage.setElementQName(typeTable.getQNamefortheType(methodTypeName));
@@ -325,15 +325,14 @@ public class DocLitBareSchemaGenerator e
     protected void generateSchemaForSingleElement(QName schemaTypeName,
                                                   String paraName,
                                                   boolean isArray) throws 
Exception {
-        XmlSchemaElement elt1 = new XmlSchemaElement();
+        XmlSchemaElement elt1 = new 
XmlSchemaElement(getXmlSchema(schemaTargetNameSpace), false);
         elt1.setName(paraName);
         elt1.setSchemaTypeName(schemaTypeName);
         elt1.setNillable(true);
         QName elementName =
                 new QName(schemaTargetNameSpace, paraName, 
schema_namespace_prefix);
-        elt1.setQName(elementName);
         XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
-        xmlSchema.getElements().add(elementName, elt1);
+        xmlSchema.getElements().put(elementName, elt1);
         xmlSchema.getItems().add(elt1);
         typeTable.addComplexSchema(paraName, elementName);
     }
@@ -341,7 +340,7 @@ public class DocLitBareSchemaGenerator e
     /**
      * Generate schema construct for given type
      *
-     * @param javaType
+     * @param localPartName
      */
     private XmlSchemaComplexType createSchemaTypeForMethodPart(String 
localPartName) {
         XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
@@ -350,14 +349,13 @@ public class DocLitBareSchemaGenerator e
 
         XmlSchemaComplexType complexType = getComplexTypeForElement(xmlSchema, 
elementName);
         if (complexType == null) {
-            complexType = new XmlSchemaComplexType(xmlSchema);
+            complexType = new XmlSchemaComplexType(xmlSchema, false);
 
-            XmlSchemaElement globalElement = new XmlSchemaElement();
+            XmlSchemaElement globalElement = new XmlSchemaElement(xmlSchema, 
false);
             globalElement.setSchemaType(complexType);
             globalElement.setName(localPartName);
-            globalElement.setQName(elementName);
             xmlSchema.getItems().add(globalElement);
-            xmlSchema.getElements().add(elementName, globalElement);
+            xmlSchema.getElements().put(elementName, globalElement);
         }
         typeTable.addComplexSchema(localPartName, elementName);
 
@@ -412,15 +410,14 @@ public class DocLitBareSchemaGenerator e
                if (sequence != null) {
                        return;
                }
-               XmlSchemaElement elt1 = new XmlSchemaElement();
+        XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
+               XmlSchemaElement elt1 = new XmlSchemaElement(xmlSchema, false);
                elt1.setSchemaTypeName(schemaTypeName);
                elt1.setName(paraName);
                elt1.setNillable(true);
                QName elementName = new QName(schemaTargetNameSpace, paraName,
                                schema_namespace_prefix);
-               elt1.setQName(elementName);
-               XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
-               xmlSchema.getElements().add(elementName, elt1);
+               xmlSchema.getElements().put(elementName, elt1);
                xmlSchema.getItems().add(elt1);
                typeTable.addComplexSchema(paraName, elementName);
 
@@ -457,15 +454,14 @@ public class DocLitBareSchemaGenerator e
         if (sequence != null) {
             return;
         }
-        XmlSchemaElement elt1 = new XmlSchemaElement();
+        XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
+        XmlSchemaElement elt1 = new XmlSchemaElement(xmlSchema, false);
         elt1.setSchemaTypeName(schemaTypeName);
         elt1.setName(parameterName);
         elt1.setNillable(true);
         QName elementName = new QName(schemaTargetNameSpace, parameterName,
                 schema_namespace_prefix);
-        elt1.setQName(elementName);
-        XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
-        xmlSchema.getElements().add(elementName, elt1);
+        xmlSchema.getElements().put(elementName, elt1);
         xmlSchema.getItems().add(elt1);
         typeTable.addComplexSchema(parameterName, elementName);
 

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/SchemaUtil.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/SchemaUtil.java?rev=1818516&r1=1818515&r2=1818516&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/SchemaUtil.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/util/SchemaUtil.java
 Sun Dec 17 22:16:04 2017
@@ -22,12 +22,11 @@ package org.apache.axis2.util;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaExternal;
 import org.apache.ws.commons.schema.XmlSchemaImport;
 import org.apache.ws.commons.schema.XmlSchemaInclude;
-import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
 
 import java.util.HashMap;
-import java.util.Iterator;
 
 /**
  * 
@@ -49,22 +48,17 @@ public class SchemaUtil {
         }
         map.put(key, schema);
 
-        XmlSchemaObjectCollection includes = schema.getIncludes();
-        if (includes != null) {
-            Iterator tempIterator = includes.getIterator();
-            while (tempIterator.hasNext()) {
-                Object o = tempIterator.next();
-                if (o instanceof XmlSchemaImport) {
-                    XmlSchema schema1 = ((XmlSchemaImport) o).getSchema();
-                    if (schema1 != null) {
-                        traverseSchemas(schema1, map);
-                    }
+        for (XmlSchemaExternal external : schema.getExternals()) {
+            if (external instanceof XmlSchemaImport) {
+                XmlSchema schema1 = external.getSchema();
+                if (schema1 != null) {
+                    traverseSchemas(schema1, map);
                 }
-                if (o instanceof XmlSchemaInclude) {
-                    XmlSchema schema1 = ((XmlSchemaInclude) o).getSchema();
-                    if (schema1 != null) {
-                        traverseSchemas(schema1, map);
-                    }
+            }
+            if (external instanceof XmlSchemaInclude) {
+                XmlSchema schema1 = external.getSchema();
+                if (schema1 != null) {
+                    traverseSchemas(schema1, map);
                 }
             }
         }

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/wsdl/printWSDLreference.wsdl
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/wsdl/printWSDLreference.wsdl?rev=1818516&r1=1818515&r2=1818516&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/wsdl/printWSDLreference.wsdl
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/test-resources/wsdl/printWSDLreference.wsdl
 Sun Dec 17 22:16:04 2017
@@ -1,5 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
+<?xml version="1.0" encoding="UTF-8"?><!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements. See the NOTICE file
   ~ distributed with this work for additional information
@@ -16,8 +15,7 @@
   ~ KIND, either express or implied. See the License for the
   ~ specific language governing permissions and limitations
   ~ under the License.
-  -->
-<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:tns="http://ws.apache.org/axis2"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; 
targetNamespace="http://ws.apache.org/axis2";>
+  --><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"; 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:tns="http://ws.apache.org/axis2"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"; 
targetNamespace="http://ws.apache.org/axis2";>
     <wsdl:types/>
     <wsdl:portType name="testPortType">
         <wsdl:operation name="test">


Reply via email to