XML schema |
http://dd.eionet.europa.eu/schemas/ods-2023/ODSReport.xsd
|
---|---|
Output type | XML |
Description | Convert ODS submission from 2024 to 2025 format |
XSL file | ODS_2024-2025.xsl (Last modified: 10 Feb 2025 10:18 ) |
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <xsl:output method="xml" indent="yes" encoding="UTF-8"/> <xsl:strip-space elements="*" /> <xsl:template match="node()|@*" name="identity"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <xsl:template match="@*[name() = 'xsi:noNamespaceSchemaLocation']"> <xsl:attribute name="{name()}">http://dd.eionet.europa.eu/schemas/ods-2024/ODSReport.xsd</xsl:attribute> </xsl:template> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <!-- <xsl:template match="ODSReporting/ODSQuantities/TotalProduction/Comments"/> --> <!-- commented on 20241210 --> <xsl:template match="ODSReporting/ODSQuantities/TotalProduction"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:copy-of select="node()"/> <xsl:if test="count(./ProductionQuantity) > 1 and not(./ProductionQuantity//Subject[@usetype='emissions linked to production'])"> <ProductionQuantity> <Subject usetype="emissions linked to production"/> <!-- Generate <Quantity> for each SubstanceCode --> <xsl:for-each select="./ProductionQuantity[position() = 1]//SubstanceCode[string-length(normalize-space(.)) > 0]"> <Quantity> <SubstanceCode> <xsl:attribute name="virgin"> <xsl:value-of select="@virgin"/> </xsl:attribute> <xsl:value-of select="."/> </SubstanceCode> <Value/> </Quantity> </xsl:for-each> </ProductionQuantity> </xsl:if> <xsl:if test="not(./Comments)"> <Comments/> </xsl:if> </xsl:copy> </xsl:template> <xsl:template match="ODSReporting/ODSQuantities/TotalImports"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:copy-of select="node()"/> <xsl:if test="not(./Comments)"> <Comments/> </xsl:if> </xsl:copy> </xsl:template> <xsl:template match="ODSReporting/ODSQuantities/ExportFromEU"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:copy-of select="node()"/> <xsl:if test="not(./Comments)"> <Comments/> </xsl:if> </xsl:copy> </xsl:template> <xsl:template match="ODSReporting/ODSQuantities/ExportFromEU/ExportQuantity"> <xsl:if test="(./CustomsProcedure) and (./CustomsProcedure) != ''"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:if> </xsl:template> <xsl:template match="ODSReporting/ODSQuantities/PauFdst/ProcessQuantity/Process"> <Process alternatives=""> <xsl:apply-templates select="@*|node()"/> </Process> </xsl:template> <xsl:template match="ODSReporting/ODSQuantities/Destruction/DestructionQuantity/Quantity"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:copy-of select="node()"/> <xsl:if test="not(../../Comments)"> <Comments/> </xsl:if> <xsl:if test="not(./Table14Emissions)"> <Table14Emissions/> </xsl:if> <xsl:if test="not(./ByP)"> <ByP/> </xsl:if> <xsl:if test="not(./Eq)"> <Eq/> </xsl:if> </xsl:copy> </xsl:template> <xsl:template match="ODSReporting/ODSQuantities/TotalStocks"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:copy-of select="node()"/> <xsl:if test="count(./StockQuantity) > 1 and not(./Emissions)"> <Emissions> <Subject usetype="Emissions from storage"/> <!-- Generate <Quantity> for each existing <SubstanceCode> in TotalStocks --> <xsl:for-each select="./StockQuantity[@date='01-01' and position() = 1]//SubstanceCode[string-length(normalize-space(.)) > 0]"> <Quantity> <SubstanceCode> <xsl:attribute name="virgin"> <xsl:value-of select="@virgin"/> </xsl:attribute> <xsl:value-of select="."/> </SubstanceCode> <Value/> <Description/> </Quantity> </xsl:for-each> </Emissions> <Emissions> <Subject usetype="Emissions from transport"/> <!-- Generate <Quantity> for each existing <SubstanceCode> in TotalStocks --> <xsl:for-each select="./StockQuantity[@date='01-01' and position() = 1]//SubstanceCode[string-length(normalize-space(.)) > 0]"> <Quantity> <SubstanceCode> <xsl:attribute name="virgin"> <xsl:value-of select="@virgin"/> </xsl:attribute> <xsl:value-of select="."/> </SubstanceCode> <Value/> <Description/> </Quantity> </xsl:for-each> </Emissions> </xsl:if> </xsl:copy> </xsl:template> </xsl:stylesheet>
European Environment Agency
Kgs. Nytorv 6, DK-1050 Copenhagen K, Denmark