void (final XmlElement element, final XmlTag context, String namespacePrefix, final XmlToken token, final ProblemsHolder holder, boolean isOnTheFly) { if (namespacePrefix.isEmpty() && (!(element instanceof XmlTag) || !(element.getParent() instanceof XmlDocument)) || XML.equals(namespacePrefix)) { return; } final String namespaceByPrefix = context.getNamespaceByPrefix(namespacePrefix); if (!namespaceByPrefix.isEmpty()) { return; } PsiFile psiFile = context.getContainingFile(); if (!(psiFile instanceof XmlFile containingFile)) return; if (!HighlightingLevelManager.getInstance(containingFile.getProject()).shouldInspect(containingFile)) return; final XmlExtension extension = XmlExtension.getExtension(containingFile); if (extension.getPrefixDeclaration(context, namespacePrefix) != null) { return; } final String localizedMessage = isOnTheFly ? XmlAnalysisBundle.message("xml.inspections.unbound.namespace", namespacePrefix) : XmlAnalysisBundle .message("xml.inspections.unbound.namespace.no.param"); if (namespacePrefix.isEmpty()) { final XmlTag tag = (XmlTag)element; if (!XmlUtil.JSP_URI.equals(tag.getNamespace()) && isOnTheFly) { LocalQuickFix fix = XmlQuickFixFactory.getInstance().createNSDeclarationIntentionFix(context, namespacePrefix, token); reportTagProblem(tag, localizedMessage, null, ProblemHighlightType.INFORMATION, fix, holder); } return; } final int prefixLength = namespacePrefix.length(); final TextRange range = new TextRange(0, prefixLength); final HighlightInfoType infoType = extension.getHighlightInfoType(containingFile); final ProblemHighlightType highlightType = infoType == HighlightInfoType.ERROR ? ProblemHighlightType.ERROR : ProblemHighlightType.LIKE_UNKNOWN_SYMBOL; if (isSuppressedFor(element)) return; if (element instanceof XmlTag) { LocalQuickFix fix = isOnTheFly ? XmlQuickFixFactory.getInstance().createNSDeclarationIntentionFix(context, namespacePrefix, token) : null; reportTagProblem(element, localizedMessage, range, highlightType, fix, holder); } else if (element instanceof XmlAttribute attribute) { LocalQuickFix fix = isOnTheFly ? XmlQuickFixFactory.getInstance().createNSDeclarationIntentionFix(element, namespacePrefix, token) : null; holder.registerProblem(attribute.getNameElement(), localizedMessage, highlightType, range, fix); } else { holder.registerProblem(element, localizedMessage, highlightType, range); } }