View stylesheet

XML schema http://dd.eionet.europa.eu/schemas/ied/IEDQuestionnaire.xsd
Output type HTML
Description HTML report
XSL file ied-html.xsl (Last modified: 27 Jan 2015 09:28 )
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                version="2.0">
    <xsl:output method="html" 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" select="''"/>
    <xsl:param name="filename" select="''"/>

    <xsl:variable name="countrycode">
        <xsl:choose>
            <xsl:when test="string-length($envelopeurl)>0 and starts-with($envelopeurl, 'http')"><xsl:value-of select="document(concat($envelopeurl, '/xml'))/envelope/countrycode"/> </xsl:when>
            <xsl:otherwise></xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:variable name="reportingdate">
        <xsl:choose>
            <xsl:when test="string-length($envelopeurl)>0 and starts-with($envelopeurl, 'http')"><xsl:value-of select="substring-before(document(concat($envelopeurl, '/xml'))/envelope/date, 'T')"/> </xsl:when>
            <xsl:otherwise></xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:variable name="schema" select="document('http://dd.eionet.europa.eu/schemas/ied/IEDQuestionnaire.xsd')/xs:schema"/>
    <xsl:variable name="labels" select="document('http://converters.eionet.europa.eu/xmlfile/ied-labels.xml')/labels"/>
    <xsl:variable name="codelists" select="document('http://converters.eionet.europa.eu/xmlfile/ied-codelists-en.xml')/IEDCodelists"/>


    <!-- parameters for testing at localhost

    <xsl:variable name="codelists" select="document('../xml/languages/ied-codelists-en.xml')/IEDCodelists" />
    <xsl:variable name="labels" select="document('../xml/ied-labels.xml')/labels"/>

    -->
    <xsl:template match="/">
        <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <title>IED Annex I questionnaire</title>
                <meta content="text/html; charset=utf-8"/>
                <style type="text/css">
                    body {
                        font-size: 80%;
                        font-family: verdana, helvetica, arial, sans-serif;
                        color: #333;
                        margin-left:30px;
                    }
                    h1 {
                        font-size: 160%;
                        color: #315076;
                        text-align: center;
                        padding-bottom: 0.5em;
                        font-style: italic;
                    }
                    h2 {
                        font-size: 130%;
                        border-bottom: 1px solid #999999;
                        font-style: italic;
                        margin-left:-25px;
                    }
                    h3{
                        font-size: 110%;
                        color: #315076;
                        margin-left:-25px;
                    }
                    h4{
                        font-size: 110%;
                        color: #315076;
                        margin-top: 10px;
                        margin-bottom: 5px;
                    }
                    caption {
                        display: none;
                        font-family: vardana, verdana, helvetica, arial, sans-serif;
                        text-align: left;
                        font-size: 150%;
                    }

                    table {
                        border-collapse: collapse;
                    }
                    th, td{
                        padding: 0.5em 0.5em 0.5em 0.5em;
                        text-align:left;
                        border: 1px solid #bbb;
                    }
                    th {
                        background-color: #f9f8f6;
                    }
                    table.datatable {
                        width: 100%;
                    }

                    table.question{
                        margin-top: 13px;
                    }
                    table.question th, table.question td{
                        vertical-align: top;
                        border: none;
                    }
                    table.question th{
                        font-size: 105%;
                        color: #315076;
                        background-color: transparent;
                        padding-left: 0;
                    }
                    table.second{
                        margin-top: 5px;
                    }
                    .sub {
                        font-size: 0.8em;
                    }

                    sup {
                        font-size: 0.8em;
                        font-style: italic;
                        color: #777;
                    }
                    .note{
                        font-size: 0.8em;
                        color: #315076;
                    }
                    .value {
                        background-color: #ffffe0;
                    }
                    .disabled td{
                        background-color:lightgrey;
                    }
                    .italicTableHeading{
                        font-style: italic;
                        color: black;
                        margin-left: 1em;
                    }
                </style>

            </head>
           <body>
               <h1>
                   <xsl:call-template name="getLabel">
                       <xsl:with-param name="labelName" select="'Questionnaire-title'"/>
                   </xsl:call-template>
               </h1>
               <table>
                   <tr>
                       <xsl:call-template name="getLabelTd">
                           <xsl:with-param name="labelName" select="'Reporting country'"/>
                       </xsl:call-template>
                       <xsl:call-template name="getValueTd">
                           <xsl:with-param name="elem" select="$countrycode"/>
                       </xsl:call-template>
                   </tr>
                   <tr>
                       <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'CDR envelope'"/></xsl:call-template>
                       <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="$envelopeurl"/></xsl:call-template>
                   </tr>
                   <tr>
                       <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'File name'"/></xsl:call-template>
                       <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="$filename"/></xsl:call-template>
                   </tr>
                   <tr>
                       <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'Reporting date'"/></xsl:call-template>
                       <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="$reportingdate"/></xsl:call-template>
                   </tr>
                   <tr>
                       <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'reporting-language'"/></xsl:call-template>
                       <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="/IEDQuestionnaire/@xml:lang"/></xsl:call-template>
                    </tr>
                    <tr>
                        <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'reporting-year'"/></xsl:call-template>
                        <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="/IEDQuestionnaire/@year"/></xsl:call-template>
                    </tr>
               </table>
               <xsl:apply-templates />
           </body>
        </html>
    </xsl:template>
    <xsl:template match="NonCompliance">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question1-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question1-1a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_1"/></xsl:call-template>
            </tr>
        </table>
    </xsl:template>

    <xsl:template match="PermitConditions">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question2-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question2-2a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question2-2b'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question2-2.1'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_2_1"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_2_1_links">
                <tr>
                        <xsl:call-template name="getValueTd">
                            <xsl:with-param name="elem" select="url"/>
                            <xsl:with-param name="isLink" select="true()"/>
                        </xsl:call-template>
                </tr>
            </xsl:for-each>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question2-2.2'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_2_2"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_2_2_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
        </table>
    </xsl:template>

    <xsl:template match="EmissionLimitValues">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question3-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question3-3a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question3-3b'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question3-3.1'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_3_1"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_3_1_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question3-3.2'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_3_2"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_3_2_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question3-3.3'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_3_3"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_3_3_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question3-3.4'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_3_4"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_3_4_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question3-3.5'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_3_5"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_3_5_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
        </table>
    </xsl:template>

    <xsl:template match="MonitoringRequirements">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question4-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question4-4a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question4-4b'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question4-4.1'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_4_1"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_4_1_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question4-4.2'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_4_2"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_4_2_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question4-4.3'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_4_3"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_4_3_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
        </table>
    </xsl:template>

    <xsl:template match="GeneralBindingRules">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question5-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question5'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_5_yesNo"/></xsl:call-template>
            </tr>
            </table>
            <xsl:if test="q_5_yesNo='yes'" >
                        <table>
                            <tr>
                                <th>
                                    <xsl:call-template name="getLabel"><xsl:with-param name="labelName" select="'question5-5.1'"/></xsl:call-template>
                                </th>
                                <th>
                                    <xsl:call-template name="getLabel"><xsl:with-param name="labelName" select="'question5-5.1a'"/></xsl:call-template>
                                </th>
                                <th>
                                    <xsl:call-template name="getLabel"><xsl:with-param name="labelName" select="'question5-5.1b'"/></xsl:call-template>
                                </th>
                            </tr>
                            <xsl:for-each select="QuestionRow">
                                <tr>
                                    <xsl:call-template name="getListTd">
                                        <xsl:with-param name="elem" select="q_5_1"/>
                                        <xsl:with-param name="elementType" select="'Annex1Activities'"/>
                                    </xsl:call-template>
                                    <xsl:call-template name="getValueTd">
                                        <xsl:with-param name="elem" select="q_5_1a"/>
                                    </xsl:call-template>
                                    <xsl:call-template name="getListTd">
                                        <xsl:with-param name="elem" select="q_5_1b"/>
                                        <xsl:with-param name="elementType" select="'Pollutant'"/>
                                    </xsl:call-template>
                                </tr>
                            </xsl:for-each>
                        </table>
                <table>
                <tr>
                    <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question5-5.2'"/></xsl:call-template>
                </tr>
                <tr>
                    <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_5_2"/></xsl:call-template>
                </tr>
                <tr>
                    <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question5-5.3'"/></xsl:call-template>
                </tr>
                <tr>
                    <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_5_3"/></xsl:call-template>
                </tr>
                <tr>
                    <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question5-5.4'"/></xsl:call-template>
                </tr>
                <tr>
                    <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_5_4"/></xsl:call-template>
                </tr>
                <tr>
                    <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question5-5.5'"/></xsl:call-template>
                </tr>
                <tr>
                    <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_5_5"/></xsl:call-template>
                </tr>
                <tr>
                    <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question5-5.6'"/></xsl:call-template>
                </tr>
                <tr>
                    <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_5_6"/></xsl:call-template>
                </tr>
                </table>
            </xsl:if>
    </xsl:template>

    <xsl:template match="DevelopmentsInBAT">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question6-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question6-6.1'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_6_1"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question6-6.2'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_6_2"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question6-6.2a'"/></xsl:call-template>
            </tr>
            <tr>
                <!-- TODO maybe it is better idea to indent sub question answers -->
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_6_2a"/></xsl:call-template>
            </tr>
        </table>
    </xsl:template>

    <xsl:template match="ReconsiderationAndUpdatingPermits">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question7-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question7-7a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question7-7b'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question7-7.1'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_7_1"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_7_1_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question7-7.2'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_7_2"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_7_2_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question7-7.3'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_7_3"/></xsl:call-template>
            </tr>
            <xsl:for-each select="q_7_3_links">
                <tr>
                    <xsl:call-template name="getValueTd">
                        <xsl:with-param name="elem" select="url"/>
                        <xsl:with-param name="isLink" select="true()"/>
                    </xsl:call-template>
                </tr>
            </xsl:for-each>
        </table>
    </xsl:template>

    <xsl:template match="SiteClosure">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question8-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question8-8.1'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_8_1"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question8-8.1a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getListTd">
                    <xsl:with-param name="elem" select="q_8_1a"/>
                    <xsl:with-param name="elementType" select="'Annex1Activities'"/>
                </xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question8-8.1b'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_8_1b"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question8-8.1c'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_8_1c"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question8-8.1d'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_8_1d"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question8-8.2a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_8_2a"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question8-8.2b'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_8_2b"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question8-8.2c'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_8_2c"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question8-8.2d'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_8_2d"/></xsl:call-template>
            </tr>
        </table>
    </xsl:template>

    <xsl:template match="EnvironmentalInspections">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question9-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.1'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_1"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.1a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_1a"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.1b'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_1b"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.1c'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_1c"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.2'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_2"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.2a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_2a"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.2b'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_2b"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.2c'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_2c"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.3'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_3"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.3a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_3a"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.3b'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_3b"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.4'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getListTd">
                    <xsl:with-param name="elem" select="q_9_4"/>
                    <xsl:with-param name="elementType" select="'InspectionCircumstances'"/>
                </xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.5'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_5"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.5a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_5a"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.5b'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_5b"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.5c'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_5c"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question9-9.6'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_9_6"/></xsl:call-template>
            </tr>
        </table>
    </xsl:template>

    <xsl:template match="AccessToInformationAndPublicParticipation">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question10-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question10-10.1'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_10_1"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question10-10.2'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_10_2"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question10-10.3'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_10_3_yesNo"/></xsl:call-template>
            </tr>
            <xsl:if test="q_10_3_yesNo='yes'" >
                <tr>
                    <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question10-10.3a'"/></xsl:call-template>
                </tr>
                <tr>
                    <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_10_3a"/></xsl:call-template>
                </tr>
            </xsl:if>
        </table>
    </xsl:template>

    <xsl:template match="EmergingTechniques">
        <h2>
            <xsl:call-template name="getLabel">
                <xsl:with-param name="labelName" select="'question11-heading'"/>
            </xsl:call-template>
        </h2>
        <table class="table table-hover table-bordered">
            <tr>
                <xsl:call-template name="getLabelTd"><xsl:with-param name="labelName" select="'question11-11a'"/></xsl:call-template>
            </tr>
            <tr>
                <xsl:call-template name="getValueTd"><xsl:with-param name="elem" select="q_11"/></xsl:call-template>
            </tr>
        </table>
    </xsl:template>

    <!-- Method Definitions -->
    <xsl:template name="getLabel" >
    <xsl:param name="labelName"/>
    <!--<xsl:param name="lang" select="'en'"/>-->
    <xsl:variable name="labelValue" select="$labels/*[local-name() = $labelName]"/>
    <xsl:choose>
        <xsl:when test="string-length($labelValue) &gt; 0">
            <xsl:choose>
                <xsl:when test="contains($labelValue,'{{reportingYear}}')">
                    <xsl:value-of select="replace($labelValue,'\{\{reportingYear\}\}', string(../@year))"/>
                </xsl:when>
                <xsl:otherwise><xsl:value-of select="$labelValue"/></xsl:otherwise>
            </xsl:choose>

        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$labelName"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>


    <xsl:template name="getLabelTd" >
        <xsl:param name="labelName"/>
        <!--<xsl:param name="lang" select="'en'"/>-->
        <td>
            <xsl:call-template name="getLabel"><xsl:with-param name="labelName" select="$labelName"/></xsl:call-template>
        </td>
    </xsl:template>

    <xsl:template name="getValueTd">
        <xsl:param name="elem"/>
        <xsl:param name="elementType" select="''"/>
        <xsl:param name="colspan" select="0"/>
        <xsl:param name="isLink" select="false()"/>

        <xsl:variable name="codelistName">
            <xsl:if test="not(starts-with($elementType, 'String') or starts-with($elementType, 'Memo') or starts-with($elementType, 'Decimal')
                or starts-with($elementType, 'Integer')) and count($schema/xs:simpleType[@name = $elementType]//xs:enumeration[@value = $elem]) &gt; 0">
                <xsl:value-of select="$elementType"/>
            </xsl:if>
        </xsl:variable>

        <td>
            <xsl:attribute name="class">
                <xsl:value-of select="concat('value td-',position())"/>
            </xsl:attribute>
            <xsl:if test="$colspan > 0">
                <xsl:attribute name="colspan" select="$colspan"/>
            </xsl:if>
            <xsl:variable name="elemValue">
                <xsl:choose>
                    <xsl:when test="string-length($codelistName) &gt; 0">
                        <xsl:value-of select="$schema/xs:simpleType[@name = $elementType]//xs:enumeration[@value = $elem]/xs:annotation/xs:documentation"/>
                    </xsl:when>
                    <xsl:when test="string($elem)='yes'">Yes</xsl:when>
                    <xsl:when test="string($elem)='no'">No</xsl:when>
                    <!-- detect disabled fields -->
                    <xsl:otherwise><xsl:value-of select="$elem"/></xsl:otherwise>

                </xsl:choose>
            </xsl:variable>

            <xsl:choose>
                <xsl:when test="string($elemValue) = 'true'">
                    <xsl:call-template name="getLabel">
                        <xsl:with-param name="labelName" select="'yes'"/>
                    </xsl:call-template>
                </xsl:when>
                <xsl:when test="string($elemValue) = 'false'">
                    <xsl:call-template name="getLabel">
                        <xsl:with-param name="labelName" select="'no'"/>
                    </xsl:call-template></xsl:when>
                <xsl:otherwise>
                    <xsl:choose>
                        <xsl:when test="$isLink = true() and starts-with($elemValue, 'http')">
                            <xsl:element name="a">
                                <xsl:attribute name="href">
                                    <xsl:value-of select="$elemValue"/>
                                </xsl:attribute>
                                <xsl:value-of select="$elemValue"/>
                            </xsl:element>
                        </xsl:when>
                        <xsl:when test="$isLink = true() and starts-with($elemValue, 'www')">
                            <xsl:element name="a">
                                <xsl:attribute name="href">
                                    <xsl:text>http://</xsl:text>
                                    <xsl:value-of select="$elemValue"/>
                                </xsl:attribute>
                                <xsl:value-of select="$elemValue"/>
                            </xsl:element>
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:call-template name="break">
                                <xsl:with-param name="text" select="$elemValue"/>
                            </xsl:call-template>
                        </xsl:otherwise>
                    </xsl:choose>
                </xsl:otherwise>
            </xsl:choose>
        </td>
    </xsl:template>

    <xsl:template name="getListTd">
        <xsl:param name="elem"/>
        <xsl:param name="elementType" select="''"/>
        <xsl:param name="colspan" select="0"/>

        <xsl:variable name="codelistName">
            <xsl:if test="string-length($elementType) &gt; 0">
                <xsl:value-of select="$elementType"/>
            </xsl:if>
        </xsl:variable>

        <td>
            <xsl:attribute name="class">
                <xsl:value-of select="concat('value td-',position())"/>
            </xsl:attribute>
            <xsl:if test="$colspan > 0">
                <xsl:attribute name="colspan" select="$colspan"/>
            </xsl:if>
            <ul>
                <xsl:for-each select="$elem/*">
                    <xsl:if test="string-length(.) &gt; 0">
                    <li>
                        <xsl:variable name="arrayElement">
                            <xsl:value-of select="."/>
                        </xsl:variable>
                        <xsl:variable name="elemValue">
                            <xsl:choose>
                                <!--
                                <xsl:when test="string-length($codelistName) &gt; 0">
                                    <xsl:value-of select="$schema/xs:simpleType[@name = $elementType]//xs:enumeration[@value = $arrayElement]/xs:annotation/xs:documentation"/>
                                </xsl:when>
                                -->
                                <xsl:when test="$arrayElement/text()='yes'">Yes</xsl:when>
                                <xsl:when test="$arrayElement/text()='no'">No</xsl:when>
                                <!-- detect disabled fields -->
                                <xsl:otherwise><xsl:value-of select="$arrayElement"/></xsl:otherwise>
                            </xsl:choose>
                        </xsl:variable>
                        <xsl:choose>
                            <xsl:when test="string($elemValue) = 'true'">
                                <xsl:call-template name="getLabel">
                                    <xsl:with-param name="labelName" select="'yes'"/>
                                </xsl:call-template>
                            </xsl:when>
                            <xsl:when test="string($elemValue) = 'false'">
                                <xsl:call-template name="getLabel">
                                    <xsl:with-param name="labelName" select="'no'"/>
                                </xsl:call-template>
                            </xsl:when>
                            <xsl:otherwise>
                                <xsl:variable name="labelValue" select="$codelists/*[local-name()=$codelistName]/descendant::item[code = $elemValue]/label"/>
                                <xsl:choose>
                                    <xsl:when test="string-length($labelValue) &gt; 0">
                                        <xsl:value-of select="$labelValue"/>
                                    </xsl:when>
                                    <xsl:otherwise>
                                        <xsl:value-of select="$elemValue"/>
                                    </xsl:otherwise>
                                </xsl:choose>
                            </xsl:otherwise>
                        </xsl:choose>
                    </li>
                    </xsl:if>
                </xsl:for-each>
            </ul>
        </td>
    </xsl:template>

    <!-- Replaces line breaks with <br/> tags -->
    <xsl:template name="break">
        <xsl:param name="text" select="."/>
        <xsl:choose>

            <xsl:when test="contains($text, '&#10;')">
                <xsl:value-of select="substring-before($text, '&#10;')" />
                <br/>
                <xsl:call-template name="break">
                    <xsl:with-param name="text" select="substring-after($text, '&#10;')" />
                </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="$text"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
</xsl:stylesheet>