
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
    xmlns:dd11="https://dd.eionet.europa.eu/namespace.jsp?ns_id=11" xmlns:dd873="https://dd.eionet.europa.eu/namespace.jsp?ns_id=873">
    <xsl:output method="xml"/>

    <xsl:template match="/">
<delivery>        <xsl:apply-templates select="dd11:DesignatedArea/dd11:Row"/>
</delivery>    </xsl:template>

    <xsl:template match="dd11:DesignatedArea/dd11:Row">
        <xsl:if test="position()=1">
            <xsl:call-template name="table-def"/>
<xsl:text disable-output-escaping="yes">&lt;data&gt;</xsl:text>        </xsl:if>

<row>
   <xsl:variable xmlns:xsl="http://www.w3.org/1999/XSL/Transform" name="row" select="."></xsl:variable>
   <xsl:for-each xmlns:xsl="http://www.w3.org/1999/XSL/Transform" select="$elementsMetadata/element">
      <xsl:variable name="elemIdentifier">
         <xsl:value-of select="identifier"></xsl:value-of>
      </xsl:variable><xsl:text disable-output-escaping="yes">&lt;</xsl:text><xsl:value-of select="$elemIdentifier"/><xsl:text disable-output-escaping="yes">&gt;</xsl:text>
      <xsl:variable name="multiValueSeparator">
         <xsl:call-template name="getSeparator">
            <xsl:with-param name="element" select="$elemIdentifier"></xsl:with-param>
         </xsl:call-template>
      </xsl:variable>
      <xsl:choose>
         <xsl:when test="count($row/*[local-name()= $elemIdentifier])=0 or string-join($row/*[local-name()= $elemIdentifier ],'')=''"></xsl:when>
         <xsl:otherwise>
            <xsl:value-of select="string-join($row/*[local-name()= $elemIdentifier ],$multiValueSeparator)"></xsl:value-of>
         </xsl:otherwise>
      </xsl:choose><xsl:text disable-output-escaping="yes">&lt;/</xsl:text><xsl:value-of select="$elemIdentifier"/><xsl:text disable-output-escaping="yes">&gt;</xsl:text>
   </xsl:for-each>
</row>        <xsl:if test="position()=last()">
<xsl:text disable-output-escaping="yes">&lt;/data&gt;</xsl:text>        </xsl:if>
</xsl:template>

<xsl:template name="table-def">

<table><elem>
<name>cddaId</name>
<type>integer</type>
<length>10</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>nationalId</name>
<type>string</type>
<length>30</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>PSlocalId</name>
<type>string</type>
<length>255</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>PSnamespace</name>
<type>string</type>
<length>255</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>PSversionId</name>
<type>string</type>
<length>255</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>designatedAreaType</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>cddaCountryCode</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>cddaRegionCode</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>designationTypeCode</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>iucnCategory</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>siteArea</name>
<type>decimal</type>
<length>15</length>
<precision>5</precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>majorEcosystemType</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>marineAreaPercentage</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>spatialDataDissemination</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>spatialResolutionCode</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>eionetChangeDate</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>eionetChangeType</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>eionetEditedBy</name>
<type>string</type>
<length>64</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>eionetInstitute</name>
<type>string</type>
<length>64</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>remark</name>
<type>string</type>
<length>5000</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>siteEnded</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>containedBy</name>
<type>integer</type>
<length>5</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem></table></xsl:template>

<xsl:template xmlns:xsl="http://www.w3.org/1999/XSL/Transform" name="getSeparator">
   <xsl:param name="element" select="''"></xsl:param>
   <xsl:value-of select="','"></xsl:value-of>
</xsl:template>
<xsl:variable xmlns:xsl="http://www.w3.org/1999/XSL/Transform" name="elementsMetadata">
   <element>
      <elementid>92552</elementid>
      <identifier>cddaId</identifier>
      <parentNS>873</parentNS>
      <type>integer</type>
      <length>10</length>
      <precision></precision>
   </element>
   <element>
      <elementid>92553</elementid>
      <identifier>nationalId</identifier>
      <parentNS>873</parentNS>
      <type>string</type>
      <length>30</length>
      <precision></precision>
   </element>
   <element>
      <elementid>92569</elementid>
      <identifier>PSlocalId</identifier>
      <parentNS>873</parentNS>
      <type>string</type>
      <length>255</length>
      <precision></precision>
   </element>
   <element>
      <elementid>92570</elementid>
      <identifier>PSnamespace</identifier>
      <parentNS>873</parentNS>
      <type>string</type>
      <length>255</length>
      <precision></precision>
   </element>
   <element>
      <elementid>92571</elementid>
      <identifier>PSversionId</identifier>
      <parentNS>873</parentNS>
      <type>string</type>
      <length>255</length>
      <precision></precision>
   </element>
   <element>
      <elementid>92554</elementid>
      <identifier>designatedAreaType</identifier>
      <parentNS>873</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>94222</elementid>
      <identifier>cddaCountryCode</identifier>
      <parentNS>null</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>94219</elementid>
      <identifier>cddaRegionCode</identifier>
      <parentNS>null</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>93952</elementid>
      <identifier>designationTypeCode</identifier>
      <parentNS>null</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>93950</elementid>
      <identifier>iucnCategory</identifier>
      <parentNS>873</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>92814</elementid>
      <identifier>siteArea</identifier>
      <parentNS>873</parentNS>
      <type>decimal</type>
      <length>15</length>
      <precision>5</precision>
   </element>
   <element>
      <elementid>92556</elementid>
      <identifier>majorEcosystemType</identifier>
      <parentNS>873</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>92562</elementid>
      <identifier>marineAreaPercentage</identifier>
      <parentNS>873</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>92559</elementid>
      <identifier>spatialDataDissemination</identifier>
      <parentNS>873</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>92840</elementid>
      <identifier>spatialResolutionCode</identifier>
      <parentNS>873</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>92563</elementid>
      <identifier>eionetChangeDate</identifier>
      <parentNS>873</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>92564</elementid>
      <identifier>eionetChangeType</identifier>
      <parentNS>873</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>92565</elementid>
      <identifier>eionetEditedBy</identifier>
      <parentNS>873</parentNS>
      <type>string</type>
      <length>64</length>
      <precision></precision>
   </element>
   <element>
      <elementid>92566</elementid>
      <identifier>eionetInstitute</identifier>
      <parentNS>873</parentNS>
      <type>string</type>
      <length>64</length>
      <precision></precision>
   </element>
   <element>
      <elementid>92567</elementid>
      <identifier>remark</identifier>
      <parentNS>873</parentNS>
      <type>string</type>
      <length>5000</length>
      <precision></precision>
   </element>
   <element>
      <elementid>92568</elementid>
      <identifier>siteEnded</identifier>
      <parentNS>873</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>92572</elementid>
      <identifier>containedBy</identifier>
      <parentNS>873</parentNS>
      <type>integer</type>
      <length>5</length>
      <precision></precision>
   </element>
</xsl:variable>
</xsl:stylesheet>
