private static void generateXML(final AnalysisData analysisData, final File analyzeOuputDirectory) throws FactoryConfigurationError {
		// Write XML report
		try {
			// Create an output factory
			final XMLOutputFactory xmlof = XMLOutputFactory.newInstance();

			// Create an XML stream writer
			final File reportFile = new File(analyzeOuputDirectory, "analyze.xml");
			final XMLStreamWriter analyseWriter = xmlof.createXMLStreamWriter(new FileWriter(reportFile));
			analyseWriter.writeStartDocument();
			analyseWriter.writeStartElement("analyze");
			analyseWriter.writeAttribute("duration", String.valueOf(analysisData.duration));
			analyseWriter.writeAttribute("name", analysisData.name);
		
			if(analysisData.properties != null) {
				for (String propertyName : analysisData.properties.keySet()) {
					analyseWriter.writeStartElement("property");
					analyseWriter.writeAttribute("name", propertyName);
					analyseWriter.writeAttribute("value", analysisData.properties.get(propertyName));
					analyseWriter.writeEndElement();
				}	
			}
			
			if(analysisData.rows != null) {
				for (final AnalysisData.Row row : analysisData.rows) {
					analyseWriter.writeStartElement("call");
					analyseWriter.writeAttribute("name", row.name);
					analyseWriter.writeAttribute("count", String.valueOf(row.count));
					analyseWriter.writeAttribute("errors", String.valueOf(row.countErrors));
					analyseWriter.writeAttribute("failures", String.valueOf(row.countFailures));
					analyseWriter.writeAttribute("min", String.valueOf(row.min));
					analyseWriter.writeAttribute("max", String.valueOf(row.max));
					analyseWriter.writeAttribute("avg", String.valueOf(row.avg));
					analyseWriter.writeEndElement();
				}	
			}

			analyseWriter.writeEndElement();
			analyseWriter.writeEndDocument();
			analyseWriter.close();
		} catch (final Exception e) {
			e.printStackTrace();
		}
	}