handle attribute namespaces also in FindUndeclaredNamespacesVisitor
https://bugs.eclipse.org/bugs/show_bug.cgi?id=409647
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/FindUndeclaredNamespacesVisitor.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/FindUndeclaredNamespacesVisitor.java
index 04241ea..babdbe3 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/FindUndeclaredNamespacesVisitor.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/FindUndeclaredNamespacesVisitor.java
@@ -14,6 +14,7 @@
import java.util.HashSet;
import java.util.Set;
+import org.eclipse.vex.core.provisional.dom.IAttribute;
import org.eclipse.vex.core.provisional.dom.IComment;
import org.eclipse.vex.core.provisional.dom.IDocument;
import org.eclipse.vex.core.provisional.dom.IDocumentFragment;
@@ -46,7 +47,15 @@
result.add(namespaceUri);
}
+ for (final IAttribute attribute : element.getAttributes()) {
+ final String attributeNamespaceUri = attribute.getQualifiedName().getQualifier();
+ if (!isNamespaceDeclared(element, attributeNamespaceUri)) {
+ result.add(attributeNamespaceUri);
+ }
+ }
+
result.addAll(visitAll(element.children()));
+
return result;
}
@@ -71,6 +80,10 @@
return true;
}
+ if (namespaceUri.equals(Namespace.XML_NAMESPACE_URI) || namespaceUri.equals(Namespace.XMLNS_NAMESPACE_URI)) {
+ return true;
+ }
+
if (namespaceUri.equals(element.getDefaultNamespaceURI())) {
return true;
}