gcc/libjava/classpath/scripts/checkstyle2html.xsl
Tom Tromey f911ba985a Initial revision
From-SVN: r102074
2005-07-16 00:30:23 +00:00

103 lines
3.3 KiB
XML

<?xml version='1.0'?>
<!-- XSL stylesheet to convert checkstyle XML to HTML -->
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<!-- This tells the XSLT processor to emit HTML -->
<xsl:output method='html'
doctype-public='-//W3C//DTD HTML 4.01//EN'
doctype-system='http://www.w3.org/TR/html4/strict.dtd'
omit-xml-declaration='yes'/>
<!-- Match the checkstyle root element -->
<xsl:template match='checkstyle'>
<html>
<head>
<title>Checkstyle results</title>
<link rel='stylesheet' type='text/css' href='checkstyle.css' />
</head>
<body>
<h1>Checkstyle results</h1>
<div>The following document contains the results of
<a href='http://checkstyle.sourceforge.net/'>Checkstyle</a>.</div>
<h2>Summary</h2>
<table summary='Summary'>
<tr>
<th>Files</th><th>Infos</th><th>Warnings</th><th>Errors</th>
</tr>
<tr>
<td><xsl:value-of select='count(file)' /></td>
<td><xsl:value-of select='count(file/error[@severity="info"])' /></td>
<td><xsl:value-of select='count(file/error[@severity="warning"])' /></td>
<td><xsl:value-of select='count(file/error[@severity="error"])' /></td>
</tr>
</table>
<h2>Files</h2>
<table summary='Files'>
<tr>
<th>File</th><th>I</th><th>W</th><th>E</th>
</tr>
<!-- Process file elements in file mode -->
<xsl:apply-templates select='file' mode='file'>
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table>
<!-- Process file elements in detail mode -->
<xsl:apply-templates select='file' mode='detail'>
<xsl:sort select="@name"/>
</xsl:apply-templates>
</body>
</html>
</xsl:template>
<!-- Match a file element in file mode -->
<xsl:template match='file' mode='file'>
<xsl:if test='count(error) &gt; 0'>
<tr>
<td>
<xsl:element name='a'>
<xsl:attribute name='href'>
#<xsl:value-of select='translate(string(@name),"/","__")' />
</xsl:attribute>
<xsl:value-of select='@name' />
</xsl:element>
</td>
<td><xsl:value-of select='count(error[@severity="info"])' /></td>
<td><xsl:value-of select='count(error[@severity="warning"])' /></td>
<td><xsl:value-of select='count(error[@severity="error"])' /></td>
</tr>
</xsl:if>
</xsl:template>
<!-- Match a file element in detail mode-->
<xsl:template match='file' mode='detail'>
<xsl:if test='count(error) &gt; 0'>
<h3>
<xsl:element name='a'>
<xsl:attribute name='name'>
<xsl:value-of select='translate(string(@name),"/","__")' />
</xsl:attribute>
<xsl:value-of select='@name' />
</xsl:element>
</h3>
<table summary='Errors'>
<tr>
<th>Error</th><th width="100px">Line</th>
</tr>
<xsl:apply-templates select='error' />
</table>
</xsl:if>
</xsl:template>
<!-- Match an error element -->
<xsl:template match='error'>
<tr>
<td><xsl:value-of select='@message'/></td>
<td><xsl:value-of select='@line' /></td>
</tr>
</xsl:template>
</xsl:stylesheet>