@Override
    protected void createAnnotation(@NotNull ASTNode node, @NotNull String message) {
      if (MISSING_START_ELEMENT.equals(message)) {
        final PsiFile psiFile = node.getPsi().getContainingFile();
        if (psiFile instanceof XmlFile) {
          final PsiElementProcessor.FindElement<XmlFile> processor = new PsiElementProcessor.FindElement<>();
          RelaxIncludeIndex.processBackwardDependencies((XmlFile)psiFile, processor);
          if (processor.isFound()) {
            // files that are included from other files do not need a <start> element.
            myHolder.newAnnotation(HighlightSeverity.WEAK_WARNING, message).range(node).create();
            return;
          }
        }
      } else if (message.startsWith(UNDEFINED_PATTERN)) {
        // we've got our own validation for that
        return;
      }
      myHolder.newAnnotation(HighlightSeverity.ERROR, message).range(node).create();
    }
@Override
    protected void createAnnotation(@NotNull ASTNode node, @NotNull String message)