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  /**
11   * @since 3.0.0
12   */
13  public final class XmlDescriptorParserUtils
14  {
15      public static Document removeAllNamespaces(Document doc)
16      {
17          doc.accept(new NamespaceCleaner());
18          return doc;
19      }
20  
21      private static final class NamespaceCleaner extends VisitorSupport
22      {
23          public void visit(Document document)
24          {
25              ((DefaultElement) document.getRootElement()).setNamespace(Namespace.NO_NAMESPACE);
26              document.getRootElement().additionalNamespaces().clear();
27          }
28  
29          public void visit(Namespace namespace)
30          {
31              namespace.detach();
32          }
33  
34          public void visit(Attribute node)
35          {
36              if (node.toString().contains("xmlns") || node.toString().contains("xsi:"))
37              {
38                  node.detach();
39              }
40          }
41  
42          public void visit(Element node)
43          {
44              if (node instanceof DefaultElement)
45              {
46                  ((DefaultElement) node).setNamespace(Namespace.NO_NAMESPACE);
47              }
48          }
49      }
50  }