You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by am...@apache.org on 2009/09/14 12:48:33 UTC

svn commit: r814572 - /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java

Author: amilas
Date: Mon Sep 14 10:48:33 2009
New Revision: 814572

URL: http://svn.apache.org/viewvc?rev=814572&view=rev
Log:
fixed the issue AXIS2-4071. check the existence of an element before adding it to the schema.

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

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java?rev=814572&r1=814571&r2=814572&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java Mon Sep 14 10:48:33 2009
@@ -1753,6 +1753,25 @@
 
         Document ownerDocument = schemaElement.getOwnerDocument();
 
+        String newElementName = newElement.getAttribute(XSD_NAME);
+
+        // check whether this element already exists.
+        NodeList nodeList = schemaElement.getChildNodes();
+        Element nodeElement = null;
+        for (int i = 1; i < nodeList.getLength(); i++) {
+            if (nodeList.item(i) instanceof Element){
+                nodeElement = (Element) nodeList.item(i);
+                if (nodeElement.getLocalName().equals(XML_SCHEMA_ELEMENT_LOCAL_NAME)){
+                    if (nodeElement.getAttribute(XSD_NAME).equals(newElementName)){
+                        // if the element already exists we do not add this element
+                        // and just return.
+                        return;
+                    }
+                }
+            }
+
+        }
+
         // loop through the namespace declarations first and add them
         String[] nameSpaceDeclarationArray = (String[]) namespacePrefixMap
                 .keySet().toArray(new String[namespacePrefixMap.size()]);