fixed bug of displaying types by namespaces
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/AbstractSearchQueryOperation.java b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/AbstractSearchQueryOperation.java
index ae56048..2835558 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/AbstractSearchQueryOperation.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/AbstractSearchQueryOperation.java
@@ -95,11 +95,31 @@
         return searchParams.getGroupingHierarchy().equals(AbstractLocalDefinitionsSearchProvider.BY_FILES);
     }
 
-    protected void chooseParentForNamespaceNode(RootTreeNode rootTreeNode, FileNode fileNode, NamespaceNode namespaceNode) {
-        if (namespaceNode.hasChildren()) {
-            if (isByFilesHierarchy()) {
-                fileNode.addChild(namespaceNode);
-            } else {
+    protected void addNamespaceNodeContentToTree(RootTreeNode rootTreeNode, FileNode fileNode, NamespaceNode namespaceNode) {
+        if (!namespaceNode.hasChildren()) {
+            return;
+        }
+
+        if (isByFilesHierarchy()) {
+            fileNode.addChild(namespaceNode);
+        } else {
+            boolean foundExistingNamespaceNode = false;
+
+            for (Object treeNode : rootTreeNode.getChildren()) {
+                if (!(treeNode instanceof NamespaceNode)) {
+                    continue;
+                }
+
+                NamespaceNode rootNodeNamespaceChildNode = (NamespaceNode) treeNode;
+                if (rootNodeNamespaceChildNode.getTreeDisplayText().equals(namespaceNode.getTreeDisplayText())) {
+                    foundExistingNamespaceNode = true;
+                    for (Object namespaceChild : namespaceNode.getChildren()) {
+                        rootNodeNamespaceChildNode.addChild((ITreeNode) namespaceChild);
+                    }
+                }
+            }
+
+            if (!foundExistingNamespaceNode) {
                 rootTreeNode.addChild(namespaceNode);
             }
         }
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/wsdl/WsdlSearchQueryOperation.java b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/wsdl/WsdlSearchQueryOperation.java
index 970db1b..099b8bf 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/wsdl/WsdlSearchQueryOperation.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/wsdl/WsdlSearchQueryOperation.java
@@ -46,7 +46,7 @@
         if (isByNamespaceHierarchy() || isByFilesHierarchy()) {
             NamespaceNode namespaceNode = new NamespaceNode(wsdlModelRoot.getDescription(), fileNode);
             addInterfacesToNamespaceNode(wsdlModelRoot, namespaceNode);
-            chooseParentForNamespaceNode(rootTreeNode, fileNode, namespaceNode);
+
         } else {
             addInterfacesToNamespaceNode(wsdlModelRoot, rootTreeNode);
         }
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/xsd/XsdSearchQueryOperation.java b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/xsd/XsdSearchQueryOperation.java
index c470156..4d617fe 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/xsd/XsdSearchQueryOperation.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/provider/xsd/XsdSearchQueryOperation.java
@@ -67,7 +67,7 @@
             if (isByNamespaceHierarchy() || isByFilesHierarchy()) {
                 NamespaceNode namespaceNode = new NamespaceNode(schema, fileNode);
                 addTypesToParentNode(schema, namespaceNode, treeNodeMapper);
-                chooseParentForNamespaceNode(rootTreeNode, fileNode, namespaceNode);
+                addNamespaceNodeContentToTree(rootTreeNode, fileNode, namespaceNode);
             } else {
                 addTypesToParentNode(schema, rootTreeNode, treeNodeMapper);
             }
diff --git a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/tree/NamespaceNode.java b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/tree/NamespaceNode.java
index 2407de5..f0f2c1d 100644
--- a/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/tree/NamespaceNode.java
+++ b/plugins/org.eclipse.wst.sse.sieditor.search/src/org/eclipse/wst/sse/sieditor/search/ui/tree/NamespaceNode.java
@@ -58,5 +58,4 @@
     public String getTypeDisplayText() {
         return getNamespaceDisplayText();
     }
-
 }