@Override
    public void annotate(@NotNull XmlTag tag, @NotNull ProblemsHolder holder) {
      for (String attributeName : myAttributeNames) {
        if (tag.getAttribute(attributeName) != null) {
          return;
        }
      }

      if (!isClosedTag(tag)) return;

      PsiElement tagNameElement = getTagNameElement(tag);
      if (tagNameElement == null) return;

      LocalQuickFix[] fixes = LocalQuickFix.EMPTY_ARRAY;
      if (holder.isOnTheFly()) {
        fixes = new LocalQuickFix[myAttributeNames.length];
        for (int i = 0; i < myAttributeNames.length; i++) {
          fixes[i] = XmlQuickFixFactory.getInstance().insertRequiredAttributeFix(tag, myAttributeNames[i]);
        }
      }

      holder.registerProblem(tagNameElement,
                             XmlAnalysisBundle.message("xml.inspections.tag.should.have.one.of.following.attributes.0", StringUtil.join(myAttributeNames, ", ")),
                             myProblemHighlightType,
                             fixes);
    }
@Override
    public void annotate(@NotNull XmlTag tag, @NotNull ProblemsHolder holder)