View Javadoc

1   package com.atlassian.plugin.parsers;
2   
3   import org.dom4j.Attribute;
4   import org.dom4j.Document;
5   import org.dom4j.Element;
6   import org.dom4j.Namespace;
7   import org.dom4j.VisitorSupport;
8   import org.dom4j.tree.DefaultElement;
9   
10  final class XmlDescriptorParserUtils
11  {
12      public static Document removeAllNamespaces(Document doc)
13      {
14          doc.accept(new NamespaceCleaner());
15          return doc;
16      }
17  
18      private static final class NamespaceCleaner extends VisitorSupport
19      {
20          public void visit(Document document)
21          {
22              ((DefaultElement) document.getRootElement()).setNamespace(Namespace.NO_NAMESPACE);
23              document.getRootElement().additionalNamespaces().clear();
24          }
25  
26          public void visit(Namespace namespace)
27          {
28              namespace.detach();
29          }
30  
31          public void visit(Attribute node)
32          {
33              if (node.toString().contains("xmlns") || node.toString().contains("xsi:"))
34              {
35                  node.detach();
36              }
37          }
38  
39          public void visit(Element node)
40          {
41              if (node instanceof DefaultElement)
42              {
43                  ((DefaultElement) node).setNamespace(Namespace.NO_NAMESPACE);
44              }
45          }
46      }
47  }