XML schema |
http://biodiversity.eionet.europa.eu/schemas/bernconvention/derogations.xsd
|
---|---|
Output type | XML |
Description | Show as RDF |
XSL file | derogations-rdf.xsl (Last modified: 05 Aug 2021 10:13 ) |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY biogeo "http://rdfdata.eionet.europa.eu/eea/biogeographic-regions/"> <!ENTITY countries "http://rdfdata.eionet.europa.eu/ramon/nuts/"> <!ENTITY nuts "http://rdfdata.eionet.europa.eu/ramon/nuts/"> ]> <!-- For http://biodiversity.eionet.europa.eu/schemas/bernconvention/derogations.xsd $Id: derogations-rdf.xsl 13512 2013-03-06 14:42:10Z roug $ --> <xsl:stylesheet version="1.0" xmlns="http://rdfdata.eionet.europa.eu/habdir/ontology/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:l="http://biodiversity.eionet.europa.eu/art17dataflow" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method='xml' version='1.0' encoding='UTF-8' indent='yes'/> <xsl:variable name="habitatsURL" select="'http://rod.eionet.europa.eu/obligations/268'"/> <xsl:variable name="birdsURL" select="'http://rod.eionet.europa.eu/obligations/276'"/> <xsl:template match="derogationJustification|licensingAuthority|licenseValidFrom|licenseValidUntil| sensitive|numberOfLicenses|location|alternativesAssessed| supervisoryMeasure|comments|licensedJustification| strictlySupervisedConditions|selectiveBasis|impactOnPopulation"> <xsl:if test="string-length(.) > 0"> <xsl:element name="{local-name()}"><xsl:value-of select="text()"/></xsl:element> </xsl:if> </xsl:template> <xsl:template match="species"> <xsl:element name="{local-name()}"><xsl:value-of select="text()"/></xsl:element> <xsl:if test="normalize-space(.)!=''"> <xsl:call-template name="split-species"> <xsl:with-param name="text" select="." /> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template name="split-species"> <xsl:param name="text" select="."/> <xsl:choose> <xsl:when test="contains($text, ',')"> <xsl:call-template name="get-eunis-species-code"> <xsl:with-param name="text" select="normalize-space(substring-before($text, ','))"/> </xsl:call-template> <xsl:call-template name="split-species"> <xsl:with-param name="text" select="substring-after($text, ',')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="get-eunis-species-code"> <xsl:with-param name="text" select="normalize-space($text)"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="get-eunis-species-code"> <xsl:param name="text" select="."/> <speciesClean><xsl:value-of select="$text"/></speciesClean> <xsl:if test="document('https://converters.eionet.europa.eu/xmlfile/map-eunis-species.xml')/l:eunis/l:species[@name=$text] != ''"> <xsl:element name="forSpecies"> <xsl:attribute name="rdf:resource">https://eunis.eea.europa.eu/species/<xsl:value-of select="document('https://converters.eionet.europa.eu/xmlfile/map-eunis-species.xml')/l:eunis/l:species[@name=$text]"/></xsl:attribute> </xsl:element> </xsl:if> </xsl:template> <xsl:template match="bioRegions/bioRegion"> <xsl:element name="{local-name()}"> <xsl:attribute name="rdf:resource">&biogeo;<xsl:value-of select="./@code"/></xsl:attribute> </xsl:element> </xsl:template> <xsl:template match="regions/region"> <xsl:element name="{local-name()}"> <xsl:attribute name="rdf:resource">&nuts;<xsl:value-of select="./@code"/></xsl:attribute> </xsl:element> </xsl:template> <xsl:template match="reasons/reason|activities/activity|methods/method"> <xsl:element name="{local-name()}"><xsl:value-of select="text()"/></xsl:element> </xsl:template> <xsl:template match="licensed|actuallyTaken|populationSize"> <xsl:for-each select="*"> <xsl:if test="string-length(.) > 0"> <xsl:element name="{concat(local-name(..),'_',local-name())}"> <xsl:if test="string(number(text())) != 'NaN'"> <xsl:attribute name="rdf:datatype">http://www.w3.org/2001/XMLSchema#decimal</xsl:attribute> </xsl:if> <xsl:value-of select="text()"/></xsl:element> </xsl:if> </xsl:for-each> </xsl:template> <xsl:template match="/"> <rdf:RDF> <xsl:for-each select="derogations/derogation"> <Derogation> <xsl:attribute name="rdf:ID"><xsl:value-of select="generate-id()"/></xsl:attribute> <rdfs:label>Derogation for <xsl:value-of select="species"/> in <xsl:value-of select="regions/region"/></rdfs:label> <country><xsl:value-of select="/derogations/@country"/></country> <countryRef> <xsl:attribute name="rdf:resource">&countries;<xsl:value-of select="/derogations/@country"/></xsl:attribute> </countryRef> <userIdentity><xsl:value-of select="./@userIdentity"/></userIdentity> <derogationReference><xsl:value-of select="./@derogation_reference"/></derogationReference> <userDerogationReference><xsl:value-of select="./@user_derogation_ref"/></userDerogationReference> <forObligation><xsl:attribute name="rdf:resource"><xsl:value-of select="./@directive"/></xsl:attribute></forObligation> <xsl:apply-templates/> </Derogation> </xsl:for-each> </rdf:RDF> </xsl:template> </xsl:stylesheet>
European Environment Agency
Kgs. Nytorv 6, DK-1050 Copenhagen K, Denmark