void (final XmlTag tag) { String name = tag.getName(); XmlElementDescriptor elementDescriptor; final PsiElement parent = tag.getParent(); if (parent instanceof XmlTag parentTag) { elementDescriptor = XmlUtil.getDescriptorFromContext(tag); final XmlElementDescriptor parentDescriptor = parentTag.getDescriptor(); if (parentDescriptor != null && elementDescriptor == null && shouldBeValidated(tag)) { if (tag instanceof HtmlTag) { //XmlEntitiesInspection inspection = getInspectionProfile(tag, HtmlStyleLocalInspection.SHORT_NAME); //if (inspection != null /*&& isAdditionallyDeclared(inspection.getAdditionalEntries(XmlEntitiesInspection.UNKNOWN_TAG), name)*/) { return; //} } HighlightInfoType type = getTagProblemInfoType(tag); addElementsForTagWithManyQuickFixes(tag, XmlAnalysisBundle.message("xml.inspections.element.is.not.allowed.here", name), type); return; } if (elementDescriptor instanceof AnyXmlElementDescriptor || elementDescriptor == null ) { elementDescriptor = tag.getDescriptor(); } if (elementDescriptor == null) return; } else { //root tag elementDescriptor = tag.getDescriptor(); if (elementDescriptor == null) { addElementsForTagWithManyQuickFixes(tag, XmlAnalysisBundle.message("xml.inspections.element.must.be.declared", name), HighlightInfoType.WRONG_REF); return; } } if (elementDescriptor instanceof Validator) { //noinspection unchecked ((Validator<XmlTag>)elementDescriptor).validate(tag,this); } }