View stylesheet

XML schema http://bd.eionet.europa.eu/schemas/Art12Art17_reporting_2013/art17_habitats.xsd
Output type HTML
Description HTML factsheet
XSL file habitats.xsl (Last modified: 15 May 2013 15:02 )
<?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="'habitats'"/>

    <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="habitat_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>Report on the main results of the surveillance under article 11 for annex I habitat types (Annex D)</h1>
                <h2>Habitat Types and Regional Levels on this report</h2>
                   <xsl:for-each select="habitat_report">
                    <xsl:variable name="habitatName"><xsl:call-template name="getValue"><xsl:with-param name="elem" select="habitatcode"/></xsl:call-template></xsl:variable>
                    <p>
                       <a><xsl:attribute name="href"><xsl:value-of select="concat('#', habitatcode)"/></xsl:attribute><xsl:value-of select="$habitatName"/></a>
                          <xsl:for-each select="regional/region">
                           <a>
                              <xsl:attribute name="href"><xsl:value-of select="concat('#', ../../habitatcode, 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="habitat_report">
        <xsl:variable name="hcode" select="habitatcode"/>
        <a name="{$hcode}"/>

        <h1>Habitat Report</h1>

        <table>
            <tbody>
                <tr><th colspan="2" class="header_3"></th></tr>
                <xsl:apply-templates select="country"/>
                <tr><th>0.2 a) Habitat code</th><td class="value-highlighted"><span class="value"><xsl:value-of select="habitatcode"/></span></td></tr>
                <tr><th>0.2 b) Habitat name</th><td class="value-highlighted"><span class="value"><xsl:call-template name="getValueLabelFromLookup"><xsl:with-param name="elem" select="habitatcode"/></xsl:call-template></span></td></tr>
            </tbody>
        </table>

        <h2>1. National level</h2>

        <table>
            <tbody>
                <tr><th colspan="2" class="header_3">1.1 Maps</th></tr>
                <xsl:apply-templates select="distribution_map"/>
                <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('#', ../../habitatcode, 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(../../habitatcode, code)"/>
        <table class="table_region">
            <caption>Regional level</caption>

            <tbody>

            <tr><th colspan="3" class="header_3"><a name="{$reg}"/></th></tr>
        <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 Area covered by habitat</th>
        </tr>
        <xsl:apply-templates select="coverage_surface_area"/>
        <xsl:apply-templates select="coverage_date"/>
        <xsl:apply-templates select="coverage_method"/>
        <xsl:apply-templates select="coverage_trend_period"/>
        <xsl:apply-templates select="coverage_trend"/>
        <xsl:apply-templates select="coverage_trend_magnitude_min"/>
        <xsl:apply-templates select="coverage_trend_magnitude_max"/>
        <xsl:apply-templates select="coverage_trend_magnitude_ci"/>
        <xsl:apply-templates select="coverage_trend_method"/>
        <xsl:apply-templates select="coverage_trend_long_period"/>
        <xsl:apply-templates select="coverage_trend_long"/>
        <xsl:apply-templates select="coverage_trend_long_magnitude_min"/>
        <xsl:apply-templates select="coverage_trend_long_magnitude_max"/>
        <xsl:apply-templates select="coverage_trend_long_magnitude_ci"/>
        <xsl:apply-templates select="coverage_trend_long_method"/>
        <xsl:apply-templates select="complementary_favourable_area"/>
        <xsl:apply-templates select="complementary_favourable_area_op"/>
        <xsl:apply-templates select="complementary_favourable_area_unknown"/>
        <xsl:apply-templates select="complementary_favourable_area_method"/>
        <xsl:apply-templates select="area_reasons_for_change_a"/>
        <xsl:apply-templates select="area_reasons_for_change_b"/>
        <xsl:apply-templates select="area_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"/>
        <xsl:apply-templates select="typical_species"/>
        <xsl:apply-templates select="typical_species_method"/>
        <xsl:apply-templates select="justification"/>
        <xsl:apply-templates select="structure_and_functions_method"/>
        <xsl:apply-templates select="other_relevant_information"/>
        <tr>
            <th colspan="3" class="header_3">2.8 Conclusions</th>
        </tr>
        <xsl:apply-templates select="conclusion_range"/>
        <xsl:apply-templates select="conclusion_range_trend"/>
        <xsl:apply-templates select="conclusion_area"/>
        <xsl:apply-templates select="conclusion_area_trend"/>
        <xsl:apply-templates select="conclusion_structure"/>
        <xsl:apply-templates select="conclusion_structure_trend"/>
        <xsl:apply-templates select="conclusion_future"/>
        <xsl:apply-templates select="conclusion_future_trend"/>
        <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</h2>
            </td>
        </tr>
        <tr>
            <th colspan="3" class="header_3">3.1 Area covered by habitat</th>
        </tr>
        <xsl:apply-templates select="natura2000_area_min"/>
        <xsl:apply-templates select="natura2000_area_max"/>
        <xsl:apply-templates select="natura2000_area_method"/>
        <xsl:apply-templates select="natura2000_area_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</th>
                    </tr>
                    <xsl:apply-templates/>
                </table>
            </td>
        </tr>

    </xsl:template>

    <xsl:template match="pressures">
        <tr>
            <th scope="row" class="header_3" colspan="3">
                2.5 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.6 Main threats
            </th>
        </tr>
        <tr>
            <th>a) Threats</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="typical_species">
        <tr>
            <th scope="row" class="header_3" colspan="3">
                2.7 Complementary information
            </th>
        </tr>
        <tr>
            <th colspan="3">2.7.1 Typical species</th>
        </tr>
        <xsl:apply-templates/>
    </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:call-template name="getValue"><xsl:with-param name="elem" select="speciesname"/></xsl:call-template>
            </td>
        </tr>
    </xsl:template>

</xsl:stylesheet>