XML schema |
http://dd.eionet.europa.eu/schemas/eprtr_2014/ImplementationReport.xsd
|
---|---|
Output type | HTML |
Description | HTML report |
XSL file | e-prtr-questionnaire-html_2014.xsl (Last modified: 18 Jul 2014 08:22 ) |
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <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="xml_folder_uri"/> <xsl:param name="envelopeurl"/> <xsl:variable name="lang">en</xsl:variable> <xsl:variable name="labels" select="document(concat($xml_folder_uri,'e-prtr-questionnaire-labels.xml'))/labels" /> <xsl:variable name="country" select="document(concat($envelopeurl,'/xml'))/envelope/countrycode"/> <xsl:variable name="type" select="/questionnaire/@type"/> <xsl:template match="questionnaire"> <html> <head> <style type="text/css"> .data-table {border: 1px solid black; border-collapse: collapse; width: 100%; } .data-table th {border: 1px solid black; } .data-table td {border: 1px solid black; } #metadata-table {border: 1px solid black; border-collapse: collapse; } #metadata-table th {border: 1px solid black; text-align:right;padding:4px; } #metadata-table td {border: 1px solid black;padding:4px;} label{font-weight:bold; } .answer{color:#0000ff; } .noanswer{color:#808080; font-style:italic; } </style> </head> <body> <h1><xsl:value-of select="$labels/itemset[@type=$type and @xml:lang='en']/item[@id='h1']"/></h1> <xsl:call-template name="metadata"/> <h2><xsl:value-of select="$labels/itemset[@type='B' and @xml:lang='en']/item[@id='q-1-heading']"/></h2> <xsl:apply-templates select="q-1 | q-1-a[$type='A'] | q-1-b[$type='A']"/> <h2><xsl:value-of select="$labels/itemset[@type='B' and @xml:lang='en']/item[@id='q-2-heading']"/></h2> <xsl:apply-templates select="q-2 | q-2-a | q-2-a-i[$type='A'] | q-2-a-ii[$type='A'] | q-2-b[$type='A'] | q-2-c[$type='A'] | q-2-d[$type='A'] | q-2-d-i[$type='A'] | q-2-e[$type='A'] | q-2-f[$type='A'] | q-2-g[$type='A']"/> <h2><xsl:value-of select="$labels/itemset[@type='B' and @xml:lang='en']/item[@id='q-3-heading']"/></h2> <xsl:apply-templates select="q-3 | q-3-a[$type='A'] | q-3-b[$type='A'] | q-3-c[$type='A'] | q-3-c[$type='A'] | q-3-d[$type='A'] | q-3-e[$type='A'] | q-3-f[$type='A'] | q-3-g[$type='A'] | q-3-h[$type='A'] | q-3-i | q-3-ii | q-3-ii-table | q-3-iii[$type='A']"/> <h2><xsl:value-of select="$labels/itemset[@type='B' and @xml:lang='en']/item[@id='q-4-heading']"/></h2> <xsl:apply-templates select="q-4 | q-4-a | q-4-b | q-4-c | q-4-d | q-4-a-i[$type='A'] | q-4-a-ii[$type='A']|q-4-a-ii-repeated[$type='A'] | q-4-b-i | q-4-b-ii | q-4-b-iii | q-4-b-iv | q-4-c-i" /> <h2><xsl:value-of select="$labels/itemset[@type='B' and @xml:lang='en']/item[@id='q-5-heading']"/></h2> <xsl:apply-templates select="q-5 | q-5-a | q-5-b | q-5-b-table[$type='A'] | q-5-c[$type='A']" /> <h2><xsl:value-of select="$labels/itemset[@type='B' and @xml:lang='en']/item[@id='q-6-heading']"/></h2> <xsl:apply-templates select="q-6 | q-6-a[$type='A'] | q-6-b" /> <h2><xsl:value-of select="$labels/itemset[@type='B' and @xml:lang='en']/item[@id='q-7-heading']"/></h2> <xsl:apply-templates select="q-7 | q-7-a | q-7-b | q-7-c | q-7-c-i " /> <xsl:if test="$type='A'"> <h2><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-8-heading']"/></h2> <xsl:apply-templates select="q-8 | q-8-a" /> <h2><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-9-heading']"/></h2> <xsl:apply-templates select="q-9 | q-9-a" /> <h2><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-10-heading']"/></h2> <xsl:apply-templates select="q-10 | q-10-a | q-10-b" /> <h2><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-11-heading']"/></h2> <xsl:apply-templates select="q-11| q-11-a| q-11-b| q-11-c| q-11-d| q-11-e" /> <h2><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-12-heading']"/></h2> <xsl:apply-templates select="q-12| q-12-a" /> </xsl:if> </body> </html> </xsl:template> <xsl:template match="*"> <xsl:variable name="elem-name" select="local-name(.)"/> <label><xsl:attribute name="for"><xsl:value-of select="$elem-name"/></xsl:attribute><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id= $elem-name ]"/></label> <xsl:if test="$elem-name='q-4-a'"> <xsl:apply-templates select="../q-4-table"/> </xsl:if> <div> <xsl:attribute name="id"><xsl:value-of select="$elem-name"/></xsl:attribute> <xsl:call-template name="answer"> <xsl:with-param name="answer"><xsl:value-of select="."/></xsl:with-param> <xsl:with-param name="yesno"><xsl:value-of select="$elem-name='q-4-b-i' or $elem-name='q-4-b-iii' or $elem-name='q-4-a-ii-repeated'"/></xsl:with-param> </xsl:call-template> </div> </xsl:template> <xsl:template match="q-3-ii-table"> <table class="data-table"> <thead> <tr> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en' and $type='A']/item[@id='q-3-ii-institution']"/></th> <xsl:if test="$type='A'"> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-3-ii-institution-name']"/></th> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-3-ii-pathway']"/></th> </xsl:if> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-3-ii-validation']"/></th> <xsl:if test="$type='A'"> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-3-ii-remarks']"/></th> </xsl:if> </tr> </thead> <tbody> <xsl:for-each select="q-3-ii-row"> <tr> <td><xsl:value-of select="institution-type"/></td> <xsl:if test="$type='A'"> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="institution-name"/></xsl:with-param></xsl:call-template></td> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="pathway"/></xsl:with-param></xsl:call-template></td> </xsl:if> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="validation"/></xsl:with-param></xsl:call-template></td> <xsl:if test="$type='A'"> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="remarks"/></xsl:with-param></xsl:call-template></td> </xsl:if> </tr> </xsl:for-each> </tbody> </table> </xsl:template> <xsl:template match="q-4-table"> <table class="data-table"> <thead> <tr> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en' and $type='A']/item[@id='q-3-ii-institution']"/></th> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-4-institution-name']"/></th> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-4-deadline']"/></th> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-4-year']"/></th> </tr> </thead> <tbody> <xsl:for-each select="q-4-row"> <tr> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="institution-type"/></xsl:with-param></xsl:call-template></td> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="institution-name"/></xsl:with-param></xsl:call-template></td> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="deadline"/></xsl:with-param></xsl:call-template></td> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="year"/></xsl:with-param></xsl:call-template></td> </tr> </xsl:for-each> </tbody> </table> </xsl:template> <xsl:template match="q-5-b-table"> <table class="data-table"> <thead> <tr> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-5-b-measure-type']"/></th> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-5-b-reference']"/></th> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-5-b-authority']"/></th> <th><xsl:value-of select="$labels/itemset[@type='A' and @xml:lang='en']/item[@id='q-5-b-data-quality-check']"/></th> </tr> </thead> <tbody> <xsl:for-each select="q-5-b-row"> <tr> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="measure-type"/></xsl:with-param></xsl:call-template></td> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="reference"/></xsl:with-param></xsl:call-template></td> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="authority"/></xsl:with-param></xsl:call-template></td> <td><xsl:call-template name="answer"><xsl:with-param name="answer"><xsl:value-of select="data-quality-check"/></xsl:with-param></xsl:call-template></td> </tr> </xsl:for-each> </tbody> </table> </xsl:template> <xsl:template name="metadata"> <table id="metadata-table"> <tr> <th>Reporting country</th> <td><xsl:value-of select="$country"/></td> </tr> <tr> <th>Questionnaire type</th> <td> <xsl:if test="@type='A'">A - mandatory + voluntary questions</xsl:if> <xsl:if test="@type='B'">B - mandatory questions</xsl:if> </td> </tr> <tr> <th>Reporting language</th> <td><xsl:value-of select="@xml:lang"/></td> </tr> </table> </xsl:template> <xsl:template name="answer"> <xsl:param name="answer" select="''"/> <xsl:param name="yesno" select="'false'"/> <xsl:choose> <xsl:when test="string-length($answer)=0"> <xsl:attribute name="class">noanswer</xsl:attribute> [Not answered] </xsl:when> <xsl:otherwise> <xsl:attribute name="class">answer</xsl:attribute> <xsl:variable name="text"> <xsl:choose> <xsl:when test="$yesno = 'true'"> <xsl:if test="$answer=1 or $answer='true'">yes</xsl:if> <xsl:if test="$answer=0 or $answer='false'">no</xsl:if> </xsl:when> <xsl:otherwise><xsl:value-of select="$answer"/></xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="break"><xsl:with-param name="text" select="$text"/></xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- Replaces line breaks with <br/> tags --> <xsl:template name="break"> <xsl:param name="text" select="."/> <xsl:choose> <xsl:when test="contains($text, ' ')"> <xsl:value-of select="substring-before($text, ' ')"/> <br/> <xsl:call-template name="break"> <xsl:with-param name="text" select="substring-after($text, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$text"/> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
European Environment Agency
Kgs. Nytorv 6, DK-1050 Copenhagen K, Denmark