View stylesheet

XML schema http://dd.eionet.europa.eu/schemas/habitatsdirective/art17_habitats.xsd
Output type HTML
Description HTML Factsheet
XSL file habitats-2018.xsl (Last modified: 07 Feb 2019 13:59 )
<?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-2018.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"/>
    <xsl:template match="habitat_reports">
        <html>
            <xsl:attribute name="xml:lang"><xsl:value-of select="@xml:lang"/></xsl:attribute>

            <head>
                <meta charset="UTF-8"/>
                <title>Factsheet</title>
                <xsl:call-template name="getCss"/>
            </head>
            <body>
                <h1>Annex D - Report format on the 'main results of the surveillance under Article 11' for Annex I habitat types</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"/>

        <h1 id="{$hcode}">Habitat Report</h1>
        <h2>NATIONAL LEVEL</h2>
        
        <table>
            <tbody>
                <tr><th colspan="2" class="header_3">1. General information</th></tr>
                <xsl:apply-templates select="country"/>
                <tr><th>1.2 Habitat code</th><td class="value-highlighted"><span class="value"><xsl:value-of select="habitatcode"/></span></td></tr>
                <tr><th>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>

        <table>
            <tbody>
                <tr><th colspan="2" class="header_3">2. Maps</th></tr>
                <xsl:apply-templates select="distribution_date"/>
                <xsl:apply-templates select="distribution_map"/>
                <xsl:apply-templates select="distribution_method"/>
                <xsl:apply-templates select="additional_distribution_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>BIOGEOGRAPHICAL 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" id="{$reg}">3. Biogeographical and marine regions</th>
                </tr>
                <xsl:apply-templates select="code"/>
                <xsl:apply-templates select="published"/>
            </tbody>
        </table>

        <table>
            <tbody>
                <tr><th colspan="3" class="header_3">4. Range</th></tr>
                <xsl:apply-templates select="range_surface_area"/>
                <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_method"/>
                <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="range_trend_long_method"/>
                <xsl:apply-templates select="complementary_favourable_range"/>
                <xsl:apply-templates select="complementary_favourable_range_op"/>
                <xsl:apply-templates select="complementary_favourable_range_x"/>
                <xsl:apply-templates select="complementary_favourable_range_method"/>
                <xsl:call-template name="getDataChangeSection">
                    <xsl:with-param name="elem" select="range_reasons_for_change"/>
                    <xsl:with-param name="title" select="'4.11 Change and reason for change in surface area of range'"/>
                </xsl:call-template>
                <xsl:apply-templates select="range_info"/>
            </tbody>
        </table>

        <table>
            <tbody>
                <tr><th colspan="3" class="header_3">5. Area covered by habitat</th></tr>
                <xsl:apply-templates select="coverage_date"/>
                <xsl:apply-templates select="coverage_surface_area_min"/>
                <xsl:apply-templates select="coverage_surface_area_max"/>
                <xsl:apply-templates select="coverage_surface_area"/>
                <xsl:apply-templates select="coverage_estimate_type"/>
                <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_x"/>
                <xsl:apply-templates select="complementary_favourable_area_method"/>
                <xsl:call-template name="getDataChangeSection">
                    <xsl:with-param name="elem" select="area_reasons_for_change"/>
                    <xsl:with-param name="title" select="'5.14 Change and reason for change in surface area'"/>
                </xsl:call-template>
                <xsl:apply-templates select="coverage_info"/>
            </tbody>
        </table>

        <table>
            <tbody>
                <tr><th colspan="3" class="header_3">6. Structure and functions</th></tr>
                <xsl:apply-templates select="hab_condition_good_min"/>
                <xsl:apply-templates select="hab_condition_good_max"/>
                <xsl:apply-templates select="hab_condition_notgood_min"/>
                <xsl:apply-templates select="hab_condition_notgood_max"/>
                <xsl:apply-templates select="hab_condition_unknown_min"/>
                <xsl:apply-templates select="hab_condition_unknown_max"/>
                <xsl:apply-templates select="hab_condition_method"/>
                <xsl:apply-templates select="hab_condition_period"/>
                <xsl:apply-templates select="hab_condition_trend"/>
                <xsl:apply-templates select="hab_condition_trend_method"/>
                <xsl:apply-templates select="typical_species_change"/>
                <xsl:apply-templates select="typical_species_method"/>
                <xsl:apply-templates select="hab_condition_info"/>
            </tbody>
        </table>

        <xsl:call-template name="getPressuresThreatsSection"/>

        <xsl:call-template name="getConservationMeasuresSection"/>

        <table>
            <tbody>
                <tr><th colspan="3" class="header_3">9. Future prospects</th></tr>
                <xsl:apply-templates select="future_range"/>
                <xsl:apply-templates select="future_area"/>
                <xsl:apply-templates select="future_structure"/>
                <xsl:apply-templates select="future_info"/>
            </tbody>
        </table>

        <table>
            <tbody>
                <tr><th colspan="3" class="header_3">10. Conclusions</th></tr>
                <xsl:apply-templates select="conclusion_range"/>
                <xsl:apply-templates select="conclusion_area"/>
                <xsl:apply-templates select="conclusion_structure"/>
                <xsl:apply-templates select="conclusion_future"/>
                <xsl:apply-templates select="conclusion_assessment"/>
                <xsl:apply-templates select="conclusion_assessment_trend"/>
                <xsl:call-template name="getConservationStatusDataChange"/>
                <xsl:apply-templates select="conclusion_info"/>
            </tbody>
        </table>

        <table>
            <tbody>
                <tr><th colspan="3" class="header_3">11. Natura 2000 (pSCIs, SCIs and SACs) coverage for Annex I habitat types</th></tr>
                <xsl:apply-templates select="natura2000_area_min"/>
                <xsl:apply-templates select="natura2000_area_max"/>
                <xsl:apply-templates select="natura2000_area"/>
                <xsl:apply-templates select="natura2000_area_estimate_type"/>
                <xsl:apply-templates select="natura2000_area_method"/>
                <xsl:apply-templates select="natura2000_area_trend"/>
                <xsl:apply-templates select="natura2000_area_trend_method"/>
                <xsl:apply-templates select="natura2000_info"/>
            </tbody>
        </table>

        <table>
            <tbody>
                <tr><th colspan="3" class="header_3">12. Complementary information</th></tr>
                <xsl:apply-templates select="justification"/>
                <xsl:apply-templates select="other_relevant_info"/>
            </tbody>
        </table>
    
    </xsl:template>

</xsl:stylesheet>