View stylesheet

XML schemas http://converters.eionet.europa.eu/util/Art17/2012
Output type HTML
Description Converts validate_fields.xml into XSL format to be used by art17 and art12 XSL.
XSL file art12_art17_validate_fields_converter.xsl (Last modified: 22 Oct 2013 23:16 )
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<!--
    Converts Article 17 validate_fields.xml into XSL templates to gain better performance, when converting large XML files.
-->
    <xsl:output  method="xml" indent="yes"/>

    <xsl:variable name="templateNameSuffix">
        <xsl:choose>
            <xsl:when test="count(/dataroot/validate_fields[lu_table='lu_season_redlist']) > 0">Redlist</xsl:when>
            <xsl:otherwise></xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

    <xsl:template match="/">
        <xsl:element name="xsl:stylesheet">
            <xsl:attribute name="version">1.0</xsl:attribute>

            <xsl:element name="xsl:template">
                <xsl:attribute name="name">getLabel<xsl:value-of select="$templateNameSuffix"/></xsl:attribute>
                <xsl:element name="xsl:param"><xsl:attribute name="name">table_name</xsl:attribute></xsl:element>
                <xsl:element name="xsl:param"><xsl:attribute name="name">xml_tag</xsl:attribute></xsl:element>
                <xsl:element name="xsl:choose">
                    <xsl:apply-templates select="dataroot/validate_fields" mode="label"/>
                </xsl:element>
            </xsl:element>

            <xsl:element name="xsl:template">
                <xsl:attribute name="name">getLookupName<xsl:value-of select="$templateNameSuffix"/></xsl:attribute>
                <xsl:element name="xsl:param"><xsl:attribute name="name">table_name</xsl:attribute></xsl:element>
                <xsl:element name="xsl:param"><xsl:attribute name="name">xml_tag</xsl:attribute></xsl:element>
                <xsl:element name="xsl:choose">
                    <xsl:apply-templates select="dataroot/validate_fields" mode="lookup"/>
                </xsl:element>
            </xsl:element>
        </xsl:element>
    </xsl:template>

    <xsl:template match="validate_fields" mode="label">
        <xsl:element name="xsl:when">
            <xsl:attribute name="test">$table_name = '<xsl:value-of select="table_name"/>' and $xml_tag = '<xsl:value-of select="xml_tag"/>'</xsl:attribute>
            <xsl:element name="span">
                <xsl:attribute name="class">label</xsl:attribute>
                <xsl:value-of select="label"/>
            </xsl:element>
            <xsl:if test="optional_by_spec = 1">
                <xsl:element name="span"><xsl:attribute name="class">optional</xsl:attribute>(Optional)</xsl:element>
            </xsl:if>
        </xsl:element>
    </xsl:template>

    <xsl:template match="validate_fields" mode="lookup">
        <xsl:if test="string-length(lu_table) &gt; 0">
            <xsl:element name="xsl:when">
                <xsl:attribute name="test">$table_name = '<xsl:value-of select="table_name"/>' and $xml_tag = '<xsl:value-of select="xml_tag"/>'</xsl:attribute>
                <xsl:value-of select="lu_table"/>
            </xsl:element>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>