view artifacts/contrib/list-unused-macros.xsl @ 7471:fff862f4ef76

Experimental caching of datacage recommendations. The respective hook is called a lot and running the datacage over and over again when loading data can be expensive. So the generated recommendations are cached for some time. Hopefully this improves the overall speed of loading data from the datacage.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 30 Oct 2013 15:26:21 +0100
parents 9543b768d740
children
line wrap: on
line source
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:dc="http://www.intevation.org/2011/Datacage"
  version="1.0">

  <xsl:output method="text" encoding="UTF-8"/>

  <xsl:template match="/">
    <xsl:text>Duplicate macros:&#xa;</xsl:text>
    <xsl:for-each select="//dc:macro/@name">
      <xsl:variable name="mname" select="."/>
      <xsl:if test="count(//dc:macro[@name=$mname]) &gt; 1">
        <xsl:text>  </xsl:text>
        <xsl:value-of select="$mname"/>
        <xsl:text>&#xa;</xsl:text>
      </xsl:if>
    </xsl:for-each>

    <xsl:text>Marcos defined but not called:&#xa;</xsl:text>
    <xsl:for-each select="//dc:macro/@name">
      <xsl:variable name="mname" select="."/>
      <xsl:if test="count(//dc:call-macro[@name=$mname]) = 0">
        <xsl:text>  </xsl:text>
        <xsl:value-of select="$mname"/>
        <xsl:text>&#xa;</xsl:text>
      </xsl:if>
    </xsl:for-each>

    <xsl:text>Marcos called but not defined:&#xa;</xsl:text>
    <xsl:for-each select="//dc:call-macro/@name">
      <xsl:variable name="mname" select="."/>
      <xsl:if test="count(//dc:macro[@name=$mname]) = 0">
        <xsl:text>  </xsl:text>
        <xsl:value-of select="$mname"/>
        <xsl:text>&#xa;</xsl:text>
      </xsl:if>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

http://dive4elements.wald.intevation.org