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 = '')">
            --&gt; <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



------------------------------------------------------------------------------