the xsl code
[email protected] Mon, 22 Dec 2008 17:53:06 +0100 (CET)
| Newsgroups | gmane.comp.java.audit.checkstyle.user |
|---|---|
| Message-ID | <39149.212.163.231.141.1229964786.squirrel@webmail.ginerllinares.com> |
Hello again, Im getting this error in execution time,
[error]
[Fatal Error] checkstyle-no-frames.xsl:189:92: The prefix "redirect" for
element "redirect:write" is not bound.
[/error]
can someone please advice me how resolve this? :( here is the code.
[code]
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" indent="yes"/>
<xsl:decimal-format decimal-separator="." grouping-separator="," />
<xsl:key name="files" match="file" use="@name" />
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:lxslt="http://xml.apache.org/xslt"
xmlns:redirect="http://xml.apache.org/xalan/redirect"
extension-element-prefixes="redirect">
<!-- Checkstyle XML Style Sheet by Stephane Bailliez
<[email protected]> -->
<!-- Part of the Checkstyle distribution found at
http://checkstyle.sourceforge.net -->
<!-- Usage (generates checkstyle_report.html):
-->
<!-- <checkstyle failonviolation="false" config="${check.config}">
-->
<!-- <fileset dir="${src.dir}" includes="**/*.java"/>
-->
<!-- <formatter type="xml"
toFile="${doc.dir}/checkstyle_report.xml"/> -->
<!-- </checkstyle>
-->
<!-- <style basedir="${doc.dir}" destdir="${doc.dir}"
-->
<!-- includes="checkstyle_report.xml"
-->
<!-- style="${doc.dir}/checkstyle-noframes-sorted.xsl"/>
-->
<!--
****************************************************************************************************
-->
<xsl:param name="output.dir" select="'.'"/>
<xsl:param name="basedir" select="'.'"/>
<xsl:param name="directorySeparator" select="'\'"/>
<!--
****************************************************************************************************
-->
<xsl:template match="checkstyle">
<html>
<head>
<style type="text/css">
.bannercell {
border: 0px;
padding: 0px;
}
body {
margin-left: 10;
margin-right: 10;
font:normal 80% arial,helvetica,sanserif;
background-color:#FFFFFF;
color:#000000;
}
.a td {
background: #efefef;
}
.b td {
background: #fff;
}
th, td {
text-align: left;
vertical-align: top;
}
th {
font-weight:bold;
background: #ccc;
color: black;
}
table, th, td {
font-size:100%;
border: none
}
table.log tr td, tr th {
}
h2 {
font-weight:bold;
font-size:140%;
margin-bottom: 5;
}
h3 {
font-size:100%;
font-weight:bold;
background: #525D76;
color: white;
text-decoration: none;
padding: 5px;
margin-right: 2px;
margin-left: 2px;
margin-bottom: 0;
}
</style>
</head>
<body>
<a name="top"></a>
<!-- jakarta logo -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td class="bannercell" rowspan="2">
<!--a href="http://jakarta.apache.org/">
<img src="http://jakarta.apache.org/images/jakarta-logo.gif"
alt="http://jakarta.apache.org" align="left" border="0"/>
</a-->
</td>
<td class="text-align:right"><h2>CheckStyle Audit</h2></td>
</tr>
<tr>
<td class="text-align:right">Designed for use with <a
href='http://checkstyle.sourceforge.net/'>CheckStyle</a>
and <a href='http://jakarta.apache.org'>Ant</a>.</td>
</tr>
</table>
<hr size="1"/>
<!-- ===================================== Summary part
===================================================== -->
<xsl:apply-templates select="." mode="summary"/>
<hr size="1" width="100%" align="left"/>
<!-- ===================================== Error detail part
===================================================== -->
<xsl:apply-templates select="." mode="errorDetail"/>
<!-- ===================================== Package List part
================================================== -->
<xsl:apply-templates select="." mode="filelist"/>
<hr size="1" width="100%" align="left"/>
<!-- ===================================== For each package create its
part =================================== -->
<xsl:apply-templates select="file[@name and generate-id(.) =
generate-id(key('files', @name))]" />
<hr size="1" width="100%" align="left"/>
</body>
</html>
</xsl:template>
<!--
*************************************************************************************************************
-->
<xsl:template match="file" mode="filelist">
<tr>
<xsl:call-template name="alternated-row"/>
<td nowrap="nowrap">
<a>
<xsl:attribute name="href">
<xsl:text>files/</xsl:text><xsl:value-of
select="substring-after(@name,
$basedir)"/><xsl:text>.html</xsl:text>
</xsl:attribute>
<!--xsl:value-of select="substring-after(@name,
$basedir)"/-->
<xsl:value-of
select="substring-after(substring-after(@name,
$basedir),$directorySeparator)"/>
</a>
</td>
<td width="100" style="text-align:right"><xsl:value-of
select="count(error)"/></td>
</tr>
</xsl:template>
<!--
=========================================================================================================
-->
<xsl:template match="file" mode="all.classes">
<tr>
<xsl:call-template name="alternated-row"/>
<td nowrap="nowrap">
<a target="fileFrame">
<xsl:attribute name="href">
<xsl:text>files/</xsl:text><xsl:value-of
select="substring-after(@name,
$basedir)"/><xsl:text>.html</xsl:text>
</xsl:attribute>
<!--xsl:value-of select="substring-after(@name,
$basedir)"/-->
<xsl:value-of
select="substring-before(substring-after(substring-after(@name,
$basedir),$directorySeparator),$directorySeparator)"/>
<xsl:call-template name="className"><xsl:with-param
name="wholeName" select="substring-after(@name,
$basedir)"/></xsl:call-template>
</a>
</td>
</tr>
</xsl:template>
<!--
=========================================================================================================
-->
<xsl:template name="path">
<xsl:param name="path"/>
<xsl:if test="contains($path,$directorySeparator)">
<xsl:text>../</xsl:text>
<xsl:call-template name="path">
<xsl:with-param name="path"><xsl:value-of
select="substring-after($path,$directorySeparator)"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="not(contains($path,$directorySeparator)) and
not($path = '')">
<xsl:text>../</xsl:text>
</xsl:if>
</xsl:template>
<!--
=========================================================================================================
-->
<xsl:template name="className">
<xsl:param name="wholeName"/>
<xsl:if test="contains($wholeName,$directorySeparator)">
<xsl:call-template name="className">
<xsl:with-param name="wholeName"><xsl:value-of
select="substring-after($wholeName,$directorySeparator)"/></xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="not(contains($wholeName,$directorySeparator)) and
not($wholeName = '')">
--> <xsl:value-of select="$wholeName"/>
</xsl:if>
</xsl:template>
<xsl:template match="file">
<redirect:write file="{$output.dir}/files/{substring-after(@name,
$basedir)}.html"></redirect:write>
<head>
<html>
<link rel="stylesheet" type="text/css">
<xsl:attribute name="href"><xsl:call-template
name="path"><xsl:with-param name="path"
select="substring-after(@name,
$basedir)"/></xsl:call-template><xsl:text>stylesheet.css</xsl:text></xsl:attribute>
</link>
</html>
</head>
</xsl:template>
<!--
****************************************************************************************************
-->
<xsl:template match="checkstyle" mode="filelist">
<h3>Files</h3>
<table class="log" border="0" cellpadding="5" cellspacing="2"
width="100%">
<tr>
<th>Name</th>
<th>Errors</th>
</tr>
<xsl:for-each select="file[@name and generate-id(.) =
generate-id(key('files', @name))]">
<xsl:sort data-type="number" order="descending"
select="count(key('files', @name)/error)"/>
<xsl:variable name="errorCount" select="count(error)"/>
<tr>
<xsl:call-template name="alternated-row"/>
<td><a href="#f-{@name}"><xsl:value-of select="@name"/></a></td>
<td><xsl:value-of select="$errorCount"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
<!--
=========================================================================================================
-->
<xsl:template match="file">
<a name="f-{@name}"></a>
<h3>File <xsl:value-of select="@name"/></h3>
<table class="log" border="0" cellpadding="5" cellspacing="2"
width="100%">
<tr>
<th>Error Description</th>
<th>Line</th>
</tr>
<xsl:for-each select="key('files', @name)/error">
<xsl:sort data-type="number" order="ascending" select="@line"/>
<tr>
<xsl:call-template name="alternated-row"/>
<td><xsl:value-of select="@message"/></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:for-each>
</table>
<a href="#top">Back to top</a>
</xsl:template>
<!--
=========================================================================================================
-->
<xsl:template match="checkstyle" mode="summary">
<h3>Summary</h3>
<xsl:variable name="fileCount" select="count(file[@name and
generate-id(.) = generate-id(key('files', @name))])"/>
<xsl:variable name="errorCount"
select="count(file/error[@severity='error'])"/>
<xsl:variable name="errorCountTotal" select="count(file/error)"/>
<xsl:variable name="fileErrorCount" select="count(file[count(error) !=
0])"/>
<xsl:variable name="infoCount"
select="count(file/error[@severity='info'])"/>
<xsl:variable name="warningCount"
select="count(file/error[@severity='warning'])"/>
<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%">
<tr>
<th>Total Files</th>
<th>Files with Errors</th>
<th>Errors</th>
</tr>
<tr>
<xsl:call-template name="alternated-row"/>
<td><xsl:value-of select="$fileCount"/></td>
<td><xsl:value-of select="$fileErrorCount"/></td>
<td><xsl:value-of select="$errorCountTotal"/></td>
</tr>
</table>
<!-- =================================== Error details
===================================== -->
<xsl:template match="checkstyle" mode="errorDetail">
<h3>Error Detail</h3>
<table class="log" border="0" cellpadding="5" cellspacing="2"
width="100%">
<tr>
<th>Level</th>
<th width="100" style="text-align:right">Amount</th>
</tr>
<tr>
<td bgcolor="#efefef">Info</td>
<td bgcolor="#efefef" width="100"
style="text-align:right"><xsl:value-of
select="$infoCount"/></td>
</tr>
<tr>
<td>Warning</td>
<td width="100" style="text-align:right"><xsl:value-of
select="$warningCount"/></td>
</tr>
<tr>
<td bgcolor="#efefef">Error</td>
<td bgcolor="#efefef" width="100"
style="text-align:right"><xsl:value-of
select="$errorCount"/></td>
</tr>
</table>
</xsl:template>
</xsl:template>
<xsl:template name="alternated-row">
<xsl:attribute name="class">
<xsl:if test="position() mod 2 = 1">a</xsl:if>
<xsl:if test="position() mod 2 = 0">b</xsl:if>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
[/code]
Thank you very much
------------------------------------------------------------------------------