view artifacts/contrib/list-unused-macros.xsl @ 8682:5102733c4567

issue1755 Prevent out of bounds access when there is no data If there is no data it will default to the complete river. In the following overview you can then see that there is no data. Better then a "Error changing state".
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 13 Apr 2015 11:03:00 +0200
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