diff --git a/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java b/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java index bbfce2faa7c2..eacc4e999118 100644 --- a/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java +++ b/xml/xml-psi-impl/src/com/intellij/xml/util/HtmlUtil.java @@ -17,7 +17,6 @@ package com.intellij.xml.util; import com.intellij.codeInspection.InspectionProfile; import com.intellij.codeInspection.htmlInspections.XmlEntitiesInspection; -import com.intellij.html.RelaxedHtmlNSDescriptor; import com.intellij.ide.highlighter.HtmlFileType; import com.intellij.ide.highlighter.XHtmlFileType; import com.intellij.javaee.ExternalResourceManagerEx; @@ -49,8 +48,8 @@ import com.intellij.xml.XmlElementDescriptor; import com.intellij.xml.XmlNSDescriptor; import com.intellij.xml.impl.schema.XmlAttributeDescriptorImpl; import com.intellij.xml.impl.schema.XmlElementDescriptorImpl; -import com.intellij.xml.util.documentation.MimeTypeDictionary; import com.intellij.xml.util.documentation.HtmlDescriptorsTable; +import com.intellij.xml.util.documentation.MimeTypeDictionary; import gnu.trove.THashMap; import gnu.trove.THashSet; import org.jetbrains.annotations.NonNls; @@ -404,9 +403,17 @@ public class HtmlUtil { } public static boolean isHtmlTag(@NotNull XmlTag tag) { - final XmlElementDescriptor descriptor = tag.getDescriptor(); - return descriptor != null && descriptor.getNSDescriptor() instanceof RelaxedHtmlNSDescriptor && - tag.getLanguage() != XHTMLLanguage.INSTANCE; + if (tag.getLanguage() == XHTMLLanguage.INSTANCE) return false; + + XmlDocument doc = PsiTreeUtil.getParentOfType(tag, XmlDocument.class); + + String doctype = null; + if (doc != null) { + doctype = XmlUtil.getDtdUri(doc); + } + doctype = doctype == null ? ExternalResourceManagerEx.getInstanceEx().getDefaultHtmlDoctype(tag.getProject()) : doctype; + return XmlUtil.XHTML4_SCHEMA_LOCATION.equals(doctype) || + !StringUtil.containsIgnoreCase(doctype, "xhtml"); } public static boolean hasNonHtml5Doctype(XmlElement context) {