ovidiu 02/05/23 14:09:30 Added: tools/src check-jars.xsl Log: This is the program that does the actual work of verifying whether all the files in the lib/ directory are properly defined in lib/jars.xml. Revision Changes Path 1.1 xml-cocoon2/tools/src/check-jars.xsl Index: check-jars.xsl =================================================================== <?xml version="1.0" encoding="utf-8"?> <!-- Simple stylesheet to verify that files defined in lib/jars.xml actually appear in the lib/ directory, and vice-versa, that files that appear in the lib/ directory have an entry with a description in the lib/jars.xml file. Author: Ovidiu Predescu "[EMAIL PROTECTED]" Date: May 22, 2002 --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="yes"/> <xsl:param name="current-files"/> <xsl:variable name="directory" select="document($current-files)"/> <xsl:variable name="jars.xml" select="/"/> <xsl:template match="/"> <xsl:variable name="declared" select="jars/*"/> <!-- Verify if files declared in jars.xml appear in the lib/ directory --> <xsl:for-each select="$declared"> <xsl:apply-templates select="." mode="declared-but-doesnt-appear"/> </xsl:for-each> <!-- Verify that files that appear in lib/ are declared in jars.xml --> <xsl:for-each select="$directory/jars/*"> <xsl:apply-templates select="." mode="appears-but-not-declared"/> </xsl:for-each> <!-- Verify that all the entries in lib/jars.xml have a description attribute --> <xsl:apply-templates select="//file" mode="no-description-attribute"/> <!-- Verify that all the file entries are unique --> <xsl:for-each select="$jars.xml/jars/file"> <xsl:variable name="this" select="normalize-space(text())"/> <xsl:if test="count($jars.xml/jars/file[normalize-space(text()) = $this]) > 1"> <xsl:message terminate="yes"> Duplicate entry for file <xsl:value-of select="$this"/>. </xsl:message> </xsl:if> </xsl:for-each> </xsl:template> <!-- Template to verify if files declared in jars.xml appear in the lib/ directory --> <xsl:template match="node()" mode="declared-but-doesnt-appear"> <xsl:variable name="this" select="normalize-space(text())"/> <xsl:if test="count($directory/jars/jar[normalize-space(text()) = $this]) = 0"> <xsl:message terminate="yes"> File <xsl:value-of select="$this"/> is declared in lib/jars.xml, but doesn't appear in the lib/ directory. If this file was removed, please update the lib/jars.xml file to remove this file entry.</xsl:message> </xsl:if> </xsl:template> <!-- Template to verify that files that appear in lib/ are declared in jars.xml --> <xsl:template match="node()" mode="appears-but-not-declared"> <xsl:variable name="this" select="normalize-space(text())"/> <xsl:if test="count($jars.xml/jars/file[normalize-space(text()) = $this]) = 0"> <xsl:message terminate="yes"> File <xsl:value-of select="$this"/> appears in the lib/ directory, but is not declared in lib/jars.xml. Please update the lib/jars.xml file to include the <xsl:value-of select="$this"/> file together with a description.</xsl:message> </xsl:if> </xsl:template> <!-- Verify if a file element has a "description" attribute --> <xsl:template match="file[not(@description)]" mode="no-description-attribute"> <xsl:message terminate="yes"> Entry for file <xsl:value-of select="normalize-space(text())"/> in the lib/jars.xml does not have a "description" attribute. Please add a description attribute before continuing.</xsl:message> </xsl:template> <!-- Verify if a file element has an "used-by" attribute --> <xsl:template match="file[not(@used-by)]" mode="no-description-attribute"> <xsl:message terminate="yes"> Entry for file <xsl:value-of select="normalize-space(text())"/> in the lib/jars.xml does not have a "used-by" attribute. Please add an "used-by" attribute before continuing.</xsl:message> </xsl:template> </xsl:stylesheet>
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]