@Override
  public void writeStats(MessageType message) {

    XMLEventFactory eventFactory = XMLEventFactory.newInstance();
    XMLEvent end = eventFactory.createDTD("\n");
    XMLEvent tab = eventFactory.createDTD("\t");
    // Create Start node

    List<Attribute> attrs = new LinkedList<Attribute>();

    attrs.add(eventFactory.createAttribute(REQUEST_NUM_ATTR_NAME, "" + countLine++));
    for (Stat stat : message.getValues()) {
      attrs.add(eventFactory.createAttribute(stat.getKey(), "" + stat.getValue()));
    }

    final Iterator<Attribute> attrIt = attrs.iterator();

    StartElement sElement =
        eventFactory.createStartElement(
            "", "", REQUEST_ELEMENT_NAME, attrIt, Collections.<Namespace>emptyList().iterator());
    try {
      eventWriter.add(tab);
      eventWriter.add(sElement);
      // Create End node
      EndElement eElement = eventFactory.createEndElement("", "", REQUEST_ELEMENT_NAME);
      eventWriter.add(eElement);
      eventWriter.add(end);
    } catch (XMLStreamException e) {
      throw new RuntimeException("ERROR IN WRITING XML: ", e);
    }
  }