                 f = [path, e.lineNumber, e.level, e.message]
                 @print f.join(",")
 
+# Outputs a JSLint-like XML Report
+class JSLintReporter extends Reporter
+
+    publish : () ->
+        @print "<?xml version=\"1.0\" encoding=\"utf-8\"?><jslint>"
+
+        for path, errors of @errorReport.paths
+            if errors.length
+                @print "<file name=\"#{path}\">"
+                
+                for e in errors
+                    @print """
+                    <issue line="#{e.lineNumber}"
+                            reason="[#{e.level}] #{e.message}"
+                            evidence=""/>
+                    """
+                @print "</file>"
+
+        @print "</jslint>"
+
+
 # Return an error report from linting the given paths.
 lintFiles = (paths, config) ->
     errorReport = new ErrorReport()


# Publish the error report and exit with the appropriate status.
reportAndExit = (errorReport, options) ->
    ReporterClass = if options.argv.csv then CSVReporter else Reporter
    reporter = new ReporterClass(errorReport)
    reporter.publish()
    process.exit(errorReport.getExitCode())

            [@warn, 'yellow']
        else
            [@ok, 'green']
        @print "    #{overall} #{@stylize(path, color, 'bold')}"
        for e in errors
            o = if e.level == 'error' then @err else @warn
            msg = "     " +
