XmlAttribute @NotNull [] calculateAttributes() {
    final List<XmlAttribute> result = new ArrayList<>(10);
    processChildren(element -> {
      if (element instanceof XmlAttribute) {
        result.add((XmlAttribute)element);
      }
      return !(element instanceof XmlToken)
             || ((XmlToken)element).getTokenType() != XmlTokenType.XML_TAG_END;
    });
    return result.toArray(XmlAttribute.EMPTY_ARRAY);
  }
XmlAttribute @NotNull [] calculateAttributes()