diff --git a/xml/dom-impl/src/com/intellij/util/xml/impl/DomImplUtil.java b/xml/dom-impl/src/com/intellij/util/xml/impl/DomImplUtil.java index c2cf805181c8..968fae6b3735 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/impl/DomImplUtil.java +++ b/xml/dom-impl/src/com/intellij/util/xml/impl/DomImplUtil.java @@ -180,7 +180,8 @@ public class DomImplUtil { public static boolean isNameSuitable(final EvaluatedXmlName evaluatedXmlName, final String localName, final String qName, final String namespace, final XmlFile file) { final String localName1 = evaluatedXmlName.getXmlName().getLocalName(); - return (localName1.equals(localName) || localName1.equals(qName)) && evaluatedXmlName.isNamespaceAllowed(namespace, file); + return (localName1.equals(localName) || localName1.equals(qName)) && evaluatedXmlName.isNamespaceAllowed(namespace, file, + !localName1.equals(qName)); } @NotNull diff --git a/xml/dom-openapi/src/com/intellij/util/xml/DummyEvaluatedXmlName.java b/xml/dom-openapi/src/com/intellij/util/xml/DummyEvaluatedXmlName.java index 2b1549974c96..a42968321cdd 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/DummyEvaluatedXmlName.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/DummyEvaluatedXmlName.java @@ -48,7 +48,7 @@ public class DummyEvaluatedXmlName implements EvaluatedXmlName { return EvaluatedXmlNameImpl.createEvaluatedXmlName(name, namespaceKey, false); } - public boolean isNamespaceAllowed(final String namespace, final XmlFile file) { + public boolean isNamespaceAllowed(final String namespace, final XmlFile file, boolean qualified) { return namespace.equals(myNamespace); } diff --git a/xml/dom-openapi/src/com/intellij/util/xml/EvaluatedXmlName.java b/xml/dom-openapi/src/com/intellij/util/xml/EvaluatedXmlName.java index eb8a751f08c4..c715625af714 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/EvaluatedXmlName.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/EvaluatedXmlName.java @@ -29,7 +29,7 @@ public interface EvaluatedXmlName { EvaluatedXmlName evaluateChildName(@NotNull XmlName name); - boolean isNamespaceAllowed(String namespace, final XmlFile file); + boolean isNamespaceAllowed(String namespace, final XmlFile file, boolean qualified); @NotNull @NonNls String getNamespace(@NotNull XmlElement parentElement, final XmlFile file); diff --git a/xml/dom-openapi/src/com/intellij/util/xml/EvaluatedXmlNameImpl.java b/xml/dom-openapi/src/com/intellij/util/xml/EvaluatedXmlNameImpl.java index 232bdad2e1ce..15da8e7bf450 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/EvaluatedXmlNameImpl.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/EvaluatedXmlNameImpl.java @@ -128,8 +128,11 @@ public class EvaluatedXmlNameImpl implements EvaluatedXmlName { } - public final boolean isNamespaceAllowed(String namespace, final XmlFile file) { - return myNamespaceKey == null || myEqualToParent || isNamespaceAllowed(namespace, getNamespaceList(file)); + public final boolean isNamespaceAllowed(String namespace, final XmlFile file, boolean qualified) { + if (myEqualToParent && qualified) { + System.out.println(); + } + return myNamespaceKey == null || myEqualToParent && !qualified || isNamespaceAllowed(namespace, getNamespaceList(file)); } @NotNull @NonNls