void (@Nullable XmlTag tag, XmlTag ctx, @Nullable XmlTag ref) { if (tag == null) return; tagStarted(tag, tag.getLocalName(), ctx, ref); XmlTag[] subTags = tag.getSubTags(); for (XmlTag subTag : subTags) { processTag(subTag, tag); } tagFinished(tag); }