@NlsContexts.DetailedDescription
  private static String buildPropertyName(PsiElement e, boolean property) {
    if (property) return DescriptiveNameUtil.getDescriptiveName(e); //NON-NLS - suprress warning

    List<String> path = new ArrayList<>();
    do {
      path.add(DescriptiveNameUtil.getDescriptiveName(e));
    }
    while ((e = PsiTreeUtil.getParentOfType(e, XmlTag.class)) != null);
    Collections.reverse(path);
    return StringUtil.join(path, ".");
  }
@NlsContexts.DetailedDescription
  private static String buildPropertyName(PsiElement e, boolean property)