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
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 }