2 * @fileoverview CheckStyle XML reporter
3 * @author Ian Christian Myers
7 //------------------------------------------------------------------------------
9 //------------------------------------------------------------------------------
11 function getMessageType(message) {
12 if (message.fatal || message.severity === 2) {
19 function xmlEscape(s) {
20 return ("" + s).replace(/[<>&"']/g, function(c) {
37 //------------------------------------------------------------------------------
39 //------------------------------------------------------------------------------
41 module.exports = function(results) {
45 output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
46 output += "<checkstyle version=\"4.3\">";
48 results.forEach(function(result) {
49 var messages = result.messages;
51 output += "<file name=\"" + xmlEscape(result.filePath) + "\">";
53 messages.forEach(function(message) {
54 output += "<error line=\"" + xmlEscape(message.line) + "\" " +
55 "column=\"" + xmlEscape(message.column) + "\" " +
56 "severity=\"" + xmlEscape(getMessageType(message)) + "\" " +
57 "message=\"" + xmlEscape(message.message) +
58 (message.ruleId ? " (" + message.ruleId + ")" : "") + "\" />";
65 output += "</checkstyle>";