View stylesheet

XML schema http://bd.eionet.europa.eu/schemas/Art12Art17_reporting_2013/art17_species.xsd
Output type HTML
Description HTML factsheet
XSL file species.xsl (Last modified: 15 May 2013 15:01 )
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/1999/xhtml" xmlns:lookup="http://biodiversity.eionet.europa.eu/art17dataflow"
    version="1.0" exclude-result-prefixes="xml lookup">

    <xsl:import href="art12_art17-common.xsl"/>
    <xsl:variable name="report_type" select="'species'"/>

    <xsl:output method="xml" indent="yes"
        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
        omit-xml-declaration="yes" />

    <xsl:param name="envelopeurl"/>
    <xsl:param name="envelopepath"/>
    <xsl:param name="filename"/>

    <xsl:preserve-space elements="published reasons-specify"/>
    <xsl:template match="species_reports">
        <html>
            <xsl:attribute name="xml:lang"><xsl:value-of select="@xml:lang"/></xsl:attribute>

            <head>
                <title>Factsheet</title>
                <xsl:call-template name="getCss"/>
            </head>
            <body>
                <h1>Annex B - Reporting format on the 'main results of the surveillance under Article 11 for Annex II, IV &amp; V species</h1>
                <h2>Species and Regional Levels on this report</h2>
                   <xsl:for-each select="species_report">
                    <p>
                       <a><xsl:attribute name="href"><xsl:value-of select="concat('#', speciescode)"/></xsl:attribute><xsl:value-of select="concat(speciescode, ' - ' , speciesname)"/></a>
                          <xsl:for-each select="regional/region">
                           <a>
                              <xsl:attribute name="href"><xsl:value-of select="concat('#', ../../speciescode, code)"/></xsl:attribute>
                                 <xsl:value-of select="concat(' ', code)"/>
                            </a>
                          </xsl:for-each>
                    </p>
                </xsl:for-each>
                <xsl:apply-templates/>
            </body>
        </html>
    </xsl:template>
    <xsl:template match="species_report">
        <xsl:variable name="scode" select="speciescode"/>
        <a name="{$scode}"/>

        <h1>Species Report</h1>
          <table>
            <caption>General</caption>
            <tbody>
                <xsl:apply-templates select="country"/>
                <tr><th colspan="2" class="header_3">0.2 Species</th></tr>
                <xsl:apply-templates select="speciescode"/>
                <xsl:apply-templates select="speciesname"/>
                <xsl:apply-templates select="alternative_speciesname"/>
                <xsl:apply-templates select="common_speciesname"/>
            </tbody>
        </table>

        <h2>1. National level</h2>

        <table>
            <tbody>
                <th colspan="2" class="header_3">1.1 Maps</th>
                <xsl:apply-templates select="distribution_map"/>
                <xsl:apply-templates select="sensitive_species"/>
                <xsl:apply-templates select="distribution_method"/>
                <xsl:apply-templates select="distribution_date"/>
                <xsl:apply-templates select="additional_distribution_map"/>
                   <xsl:apply-templates select="range_map"/>
            </tbody>
        </table>

        <xsl:apply-templates select="regional"/>
        <p class="report_end"> </p>
    </xsl:template>

    <xsl:template match="regional">
        <p>
            Biogeographic regions and/or marine regions concerned within the member state:
            <b>
                <xsl:for-each select="region">
                    <a>
                        <xsl:attribute name="href"><xsl:value-of select="concat('#', ../../speciescode, code)"/></xsl:attribute>
                        <xsl:value-of select="concat(' ', code)"/>
                    </a>
                </xsl:for-each>
            </b>
        </p>
        <h2>2. Biogeographical or marine level</h2>
        <xsl:apply-templates select="region"/>

    </xsl:template>

    <xsl:template match="published">
        <tr>
            <th>
                <xsl:call-template name="tag-label">
                    <xsl:with-param name="tagname" select="name(.)"/>
                    <xsl:with-param name="entity_type" select="'region'"/>
                </xsl:call-template>
            </th>
            <td class="preserve" colspan="2">

                <xsl:if test="string-length(.)=0">
                </xsl:if>
                <xsl:if test="string-length(.)!=0">
                    <xsl:call-template name="break">
                        <xsl:with-param name="text" select="."/>
                    </xsl:call-template>
                </xsl:if>
            </td>
        </tr>
    </xsl:template>

    <xsl:template match="region">
        <xsl:variable name="reg" select="concat(../../speciescode, code)"/>
        <table class="table_region">
            <caption>Regional level</caption>
            <tbody>


        <th colspan="3" class="header_3"><a name="{$reg}"/></th>
        <xsl:apply-templates select="code"/>
        <xsl:apply-templates select="published"/>
        <tr>
            <th colspan="3" class="header_3">2.3 Range</th>
        </tr>
        <xsl:apply-templates select="range_surface_area"/>
        <xsl:apply-templates select="range_method"/>
        <xsl:apply-templates select="range_trend_period"/>
        <xsl:apply-templates select="range_trend"/>
        <xsl:apply-templates select="range_trend_magnitude_min"/>
        <xsl:apply-templates select="range_trend_magnitude_max"/>
        <xsl:apply-templates select="range_trend_long_period"/>
        <xsl:apply-templates select="range_trend_long"/>
        <xsl:apply-templates select="range_trend_long_magnitude_min"/>
        <xsl:apply-templates select="range_trend_long_magnitude_max"/>
        <xsl:apply-templates select="complementary_favourable_range"/>
        <xsl:apply-templates select="complementary_favourable_range_op"/>
        <xsl:apply-templates select="complementary_favourable_range_unknown"/>
        <xsl:apply-templates select="complementary_favourable_range_method"/>
        <xsl:apply-templates select="range_reasons_for_change_a"/>
        <xsl:apply-templates select="range_reasons_for_change_b"/>
        <xsl:apply-templates select="range_reasons_for_change_c"/>


        <tr>
            <th colspan="3" class="header_3">2.4 Population</th>
        </tr>
        <xsl:apply-templates select="population_size_unit"/>
        <xsl:apply-templates select="population_minimum_size"/>
        <xsl:apply-templates select="population_maximum_size"/>
        <xsl:apply-templates select="population_alt_size_unit"/>
        <xsl:apply-templates select="population_alt_minimum_size"/>
        <xsl:apply-templates select="population_alt_maximum_size"/>
        <xsl:apply-templates select="population_additional_locality"/>
        <xsl:apply-templates select="population_additional_method"/>
        <xsl:apply-templates select="population_additional_problems"/>
        <xsl:apply-templates select="population_date"/>
        <xsl:apply-templates select="population_method"/>
        <xsl:apply-templates select="population_trend_period"/>
        <xsl:apply-templates select="population_trend"/>
        <xsl:apply-templates select="population_trend_magnitude_min"/>
        <xsl:apply-templates select="population_trend_magnitude_max"/>
        <xsl:apply-templates select="population_trend_magnitude_ci"/>
        <xsl:apply-templates select="population_trend_method"/>
         <xsl:apply-templates select="population_trend_long_period"/>
        <xsl:apply-templates select="population_trend_long"/>
        <xsl:apply-templates select="population_trend_long_magnitude_min"/>
        <xsl:apply-templates select="population_trend_long_magnitude_max"/>
        <xsl:apply-templates select="population_trend_long_magnitude_ci"/>
        <xsl:apply-templates select="population_trend_long_method"/>
        <xsl:apply-templates select="complementary_favourable_population"/>
        <xsl:apply-templates select="complementary_favourable_population_op"/>
        <xsl:apply-templates select="complementary_favourable_population_unknown"/>
        <xsl:apply-templates select="complementary_favourable_population_method"/>
        <xsl:apply-templates select="population_reasons_for_change_a"/>
        <xsl:apply-templates select="population_reasons_for_change_b"/>
        <xsl:apply-templates select="population_reasons_for_change_c"/>
        <tr>
            <th colspan="3" class="header_3">2.5 Habitat for the species</th>
        </tr>
        <xsl:apply-templates select="habitat_surface_area"/>
        <xsl:apply-templates select="habitat_date"/>
        <xsl:apply-templates select="habitat_method"/>
        <xsl:apply-templates select="habitat_quality"/>
        <xsl:apply-templates select="habitat_quality_explanation"/>
        <xsl:apply-templates select="habitat_trend_period"/>
        <xsl:apply-templates select="habitat_trend"/>
        <xsl:apply-templates select="habitat_trend_long_period"/>
        <xsl:apply-templates select="habitat_trend_long"/>
        <xsl:apply-templates select="habitat_area_suitable"/>
        <xsl:apply-templates select="habitat_reasons_for_change_a"/>
        <xsl:apply-templates select="habitat_reasons_for_change_b"/>
        <xsl:apply-templates select="habitat_reasons_for_change_c"/>

         <xsl:apply-templates select="pressures"/>
        <xsl:apply-templates select="pressures_method"/>
        <xsl:apply-templates select="threats"/>
        <xsl:apply-templates select="threats_method"/>
        <tr>
            <th colspan="3" class="header_3">2.8 Complementary information</th>
        </tr>
         <xsl:apply-templates select="justification"/>
        <xsl:apply-templates select="other_relevant_information"/>
        <xsl:apply-templates select="transboundary_assessment"/>

        <tr>
            <th colspan="3" class="header_3">2.9 Conclusions</th>
        </tr>
        <xsl:apply-templates select="conclusion_range"/>
        <xsl:apply-templates select="conclusion_range_trend"/>
        <xsl:apply-templates select="conclusion_population"/>
        <xsl:apply-templates select="conclusion_population_trend"/>
        <xsl:apply-templates select="conclusion_habitat"/>
        <xsl:apply-templates select="conclusion_habitat_trend"/>
        <xsl:apply-templates select="conclusion_future"/>
        <xsl:apply-templates select="conclusion_future_trends"/>
        <xsl:apply-templates select="conclusion_assessment"/>
        <xsl:apply-templates select="conclusion_assessment_trend"/>

        <tr>
            <td colspan="3">
                <h2>3. Natura 2000 coverage &amp; conservation measures - Annex II species</h2>
            </td>
        </tr>
        <tr>
            <th colspan="3" class="header_3">3.1 Population</th>
        </tr>
        <xsl:apply-templates select="natura2000_population_unit"/>
        <xsl:apply-templates select="natura2000_population_min"/>
        <xsl:apply-templates select="natura2000_population_max"/>
        <xsl:apply-templates select="natura2000_population_method"/>
        <xsl:apply-templates select="natura2000_population_trend"/>

        <xsl:apply-templates select="measures"/>
        </tbody>
        </table>

    </xsl:template>

    <xsl:template match="measures">
        <tr>
            <th scope="row" class="header_3" colspan="3">3.2 Conservation Measures</th>
        </tr>
        <tr>
            <td colspan="3">
                <table>
                    <tr>
                        <th>3.2.1 Measure</th>
                        <th>3.2.2 Type</th>
                        <th>3.2.3 Ranking</th>
                        <th>3.2.4 Location</th>
                        <th>3.2.5 Broad evaluation of the measure</th>
                    </tr>
                    <xsl:apply-templates/>
                </table>
            </td>
        </tr>

    </xsl:template>

    <xsl:template match="pressures">
        <tr>
            <th scope="row" class="header_3" colspan="3">
                2.6 Main pressures
            </th>
        </tr>
        <tr>
            <th>a) Pressure</th>
            <th>b) Ranking</th>
            <th>c) Pollution Qualifier(s)</th>
        </tr>
        <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="threats">
        <tr>
            <th scope="row" class="header_3" colspan="3">
                2.7 Main threats
            </th>
        </tr>
        <tr>
            <th>a) Threat</th>
            <th>b) Ranking</th>
            <th>c) Pollution Qualifier(s)</th>
        </tr>
        <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="measure">
        <tr>
            <td>
                <xsl:call-template name="getValue"><xsl:with-param name="elem" select="code"/></xsl:call-template>
            </td>
            <td>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./type_legal"/>
                    <xsl:with-param name="out-text" select="'Legal '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./type_administrative"/>
                    <xsl:with-param name="out-text" select="'Administrative '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./type_contractual"/>
                    <xsl:with-param name="out-text" select="'Contractual '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./type_recurrent"/>
                    <xsl:with-param name="out-text" select="'Recurrent '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./type_oneoff"/>
                    <xsl:with-param name="out-text" select="'One Off '"/>
                </xsl:call-template>

            </td>
            <td>
                <xsl:call-template name="getValue"><xsl:with-param name="elem" select="ranking"/></xsl:call-template>
            </td>
            <td>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./location_inside"/>
                    <xsl:with-param name="out-text" select="'Inside '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./location_outside"/>
                    <xsl:with-param name="out-text" select="'Outside '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./location_both"/>
                    <xsl:with-param name="out-text" select="'Both '"/>
                </xsl:call-template>
            </td>
            <td>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./broad_evaluation_maintain"/>
                    <xsl:with-param name="out-text" select="'Maintain '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./broad_evaluation_enhance"/>
                    <xsl:with-param name="out-text" select="'Enchance '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./broad_evaluation_longterm"/>
                    <xsl:with-param name="out-text" select="'Long-term '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./broad_evaluation_noeffect"/>
                    <xsl:with-param name="out-text" select="'No Effect '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text" select="./broad_evaluation_unknown"/>
                    <xsl:with-param name="out-text" select="'Unknown '"/>
                </xsl:call-template>
                <xsl:call-template name="boolean-string">
                    <xsl:with-param name="text"
                        select="./broad_evaluation_notevaluated" />
                    <xsl:with-param name="out-text" select="'Not Evaluated '"/>
                </xsl:call-template>

            </td>
        </tr>
    </xsl:template>
    <xsl:template match="pressure|threat">
        <tr>
            <td>
                <xsl:call-template name="getValue"><xsl:with-param name="elem" select="code"/></xsl:call-template>
            </td>
            <td>
                <xsl:call-template name="getValue"><xsl:with-param name="elem" select="ranking"/></xsl:call-template>
            </td>
            <td>
                <xsl:apply-templates select="pollution_qualifiers"/>
            </td>
        </tr>
    </xsl:template>

    <xsl:template match="pollution_qualifiers">
        <xsl:apply-templates/>
    </xsl:template>
    <xsl:template match="pollution_qualifier">
        <xsl:call-template name="getValue"><xsl:with-param name="elem" select="code"/></xsl:call-template>
        <br/>
    </xsl:template>
    <xsl:template match="species">
        <tr>
            <td colspan="3">
                <xsl:value-of select="./speciesname"/>
            </td>
        </tr>
    </xsl:template>


</xsl:stylesheet>