@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); } }