
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
    xmlns:dd802="https://dd.eionet.europa.eu/namespace.jsp?ns_id=802" xmlns:dd823="https://dd.eionet.europa.eu/namespace.jsp?ns_id=823">
    <xsl:output method="xml"/>

    <xsl:template match="/">
<delivery>        <xsl:apply-templates select="dd802:DischargePoints/dd802:Row"/>
</delivery>    </xsl:template>

    <xsl:template match="dd802:DischargePoints/dd802: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>dcpState</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>repCode</name>
<type>string</type>
<length>16</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>uwwCode</name>
<type>string</type>
<length>32</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpCode</name>
<type>string</type>
<length>32</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpName</name>
<type>string</type>
<length>255</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpNUTS</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpLatitude</name>
<type>decimal</type>
<length>18</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpLongitude</name>
<type>decimal</type>
<length>18</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpWaterBodyType</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpIrrigation</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpTypeOfReceivingArea</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>rcaCode</name>
<type>string</type>
<length>42</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpSurfaceWaters</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpWaterbodyID</name>
<type>string</type>
<length>64</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpNotAffect</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpMSProvide</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpCOMAccept</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpGroundWater</name>
<type>string</type>
<length>64</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpReceivingWater</name>
<type>string</type>
<length>64</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpWFDSubUnit</name>
<type>string</type>
<length>64</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpWFDRBD</name>
<type>string</type>
<length>64</length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpWaterBodyReferenceDate</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpGroundWaterReferenceDate</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpReceivingWaterReferenceDate</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpWFDSubUnitReferenceDate</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpWFDRBDReferenceDate</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpBeginLife</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpEndLife</name>
<type></type>
<length></length>
<precision></precision>
<multiValueDelim></multiValueDelim>
</elem><elem>
<name>dcpRemarks</name>
<type>string</type>
<length>4096</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>99460</elementid>
      <identifier>dcpState</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>95777</elementid>
      <identifier>repCode</identifier>
      <parentNS>null</parentNS>
      <type>string</type>
      <length>16</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99611</elementid>
      <identifier>uwwCode</identifier>
      <parentNS>823</parentNS>
      <type>string</type>
      <length>32</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99505</elementid>
      <identifier>dcpCode</identifier>
      <parentNS>823</parentNS>
      <type>string</type>
      <length>32</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99503</elementid>
      <identifier>dcpName</identifier>
      <parentNS>823</parentNS>
      <type>string</type>
      <length>255</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99605</elementid>
      <identifier>dcpNUTS</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99604</elementid>
      <identifier>dcpLatitude</identifier>
      <parentNS>823</parentNS>
      <type>decimal</type>
      <length>18</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99589</elementid>
      <identifier>dcpLongitude</identifier>
      <parentNS>823</parentNS>
      <type>decimal</type>
      <length>18</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99585</elementid>
      <identifier>dcpWaterBodyType</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99596</elementid>
      <identifier>dcpIrrigation</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99552</elementid>
      <identifier>dcpTypeOfReceivingArea</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99607</elementid>
      <identifier>rcaCode</identifier>
      <parentNS>823</parentNS>
      <type>string</type>
      <length>42</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99551</elementid>
      <identifier>dcpSurfaceWaters</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99549</elementid>
      <identifier>dcpWaterbodyID</identifier>
      <parentNS>823</parentNS>
      <type>string</type>
      <length>64</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99523</elementid>
      <identifier>dcpNotAffect</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99534</elementid>
      <identifier>dcpMSProvide</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99520</elementid>
      <identifier>dcpCOMAccept</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99677</elementid>
      <identifier>dcpGroundWater</identifier>
      <parentNS>823</parentNS>
      <type>string</type>
      <length>64</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99498</elementid>
      <identifier>dcpReceivingWater</identifier>
      <parentNS>823</parentNS>
      <type>string</type>
      <length>64</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99491</elementid>
      <identifier>dcpWFDSubUnit</identifier>
      <parentNS>823</parentNS>
      <type>string</type>
      <length>64</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99532</elementid>
      <identifier>dcpWFDRBD</identifier>
      <parentNS>823</parentNS>
      <type>string</type>
      <length>64</length>
      <precision></precision>
   </element>
   <element>
      <elementid>99524</elementid>
      <identifier>dcpWaterBodyReferenceDate</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99683</elementid>
      <identifier>dcpGroundWaterReferenceDate</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99538</elementid>
      <identifier>dcpReceivingWaterReferenceDate</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99535</elementid>
      <identifier>dcpWFDSubUnitReferenceDate</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99525</elementid>
      <identifier>dcpWFDRBDReferenceDate</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99487</elementid>
      <identifier>dcpBeginLife</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99485</elementid>
      <identifier>dcpEndLife</identifier>
      <parentNS>823</parentNS>
      <type></type>
      <length></length>
      <precision></precision>
   </element>
   <element>
      <elementid>99529</elementid>
      <identifier>dcpRemarks</identifier>
      <parentNS>823</parentNS>
      <type>string</type>
      <length>4096</length>
      <precision></precision>
   </element>
</xsl:variable>
</xsl:stylesheet>
