@Override
  protected void tagStarted(XmlTag tag, String tagName, XmlTag context, XmlTag ref) {
    XmlElementsGroup.Type type = XmlElementsGroupImpl.getTagType(tag);
    if (type != null) {
      XmlElementsGroupImpl group = new XmlElementsGroupImpl(tag, myGroups.peek(), ref);
      addSubGroup(group);
      myGroups.push(group);
    }
    else if ("element".equals(tagName)) {
      XmlElementsGroup group = new XmlElementsGroupLeaf(tag, myNsDescriptor.createElementDescriptor(tag), myGroups.peek(), ref);
      if (!myGroups.empty()) {
        addSubGroup(group);
      }
      else {
        myGroups.push(group);
      }
    }
  }
@Override
  protected void tagStarted(XmlTag tag, String tagName, XmlTag context, XmlTag ref)