XML schema |
http://water.eionet.europa.eu/schemas/dir200856ec/GES_1p0.xsd
|
---|---|
Output type | RDF |
Description | |
XSL file | GES_1p0-rdf.xslt (Last modified: 04 Jul 2012 13:03 ) |
<?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/eea/countries/"> ]> <xsl:stylesheet version="1.0" xmlns="http://rdfdata.eionet.europa.eu/msfd/ontology/" xmlns:ms="http://water.eionet.europa.eu/schemas/dir200856ec/mscommon" xmlns:n1="http://water.eionet.europa.eu/schemas/dir200856ec" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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:xdt="http://www.w3.org/2005/xpath-datatypes" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="ms n1 xs xsi"> <xsl:output method="xml" indent="yes" encoding="UTF-8"/> <xsl:variable name="lcletters"> abcdefghijklmnopqrstuvwxyz </xsl:variable> <xsl:variable name="ucletters"> ABCDEFGHIJKLMNOPQRSTUVWXYZ </xsl:variable> <xsl:template match="n1:GES"> <rdf:RDF> <rdf:Description rdf:about=""> <rdfs:label> Reporting requirement for the determination of good environmental status of the marine environment., art 9, Marine Strategy Framework Directive for for <xsl:value-of select="Country"/>, <xsl:value-of select="Region"/> </rdfs:label> <forCountry> <xsl:attribute name="rdf:resource">&countries;<xsl:value-of select="Country"/></xsl:attribute> </forCountry> <!-- TODO replace with code/resource from http://rdfdata.eionet.europa.eu/eea/biogeographic-regions/ ? --> <BioGeoRegion> <xsl:value-of select="Region"/> </BioGeoRegion> <DescriptionApproach> <xsl:value-of select="DescriptionApproach"/> </DescriptionApproach> <dc:Language> <xsl:value-of select="@Language"/> </dc:Language> <Email> <xsl:value-of select="@Email"/> </Email> <dc:Created> <xsl:value-of select="@CreationDate"/> </dc:Created> <Contact> <xsl:value-of select="@Contact"/> </Contact> <dc:Description> <xsl:value-of select="@Description"/> </dc:Description> <dc:Creator> <xsl:value-of select="@Creator"/> </dc:Creator> <GeneratedBy> <xsl:value-of select="@GeneratedBy"/> </GeneratedBy> <!-- find more DC matches? --> </rdf:Description> <xsl:apply-templates select="n1:Descriptors"/> </rdf:RDF> </xsl:template> <xsl:template match="n1:Descriptors"> <xsl:element name="{concat(local-name(),'Declaration')}"> <xsl:attribute name="rdf:ID"><xsl:value-of select="generate-id()"/></xsl:attribute> <xsl:apply-templates mode="predicates"/> </xsl:element> </xsl:template> <xsl:template match="n1:DesriptorCriterionIndicator" mode="predicates"> <xsl:element name="desriptorCriterionIndicator"><xsl:value-of select="."/></xsl:element> <xsl:element name="rdfs:label"><xsl:value-of select="."/></xsl:element> </xsl:template> <xsl:template match="*" mode="predicates"> <xsl:choose> <xsl:when test="count(child::*)=0"> <xsl:element name="{concat(translate(substring(local-name(),1,1),$ucletters,$lcletters),substring(local-name(),2))}"> <xsl:value-of select="."/> </xsl:element> </xsl:when> <xsl:when test="count(child::*)=1"> <xsl:apply-templates mode="predicates"/> </xsl:when> <xsl:otherwise> <xsl:element name="{concat(translate(substring(local-name(),1,1),$ucletters,$lcletters),substring(local-name(),2))}"> <xsl:element name="rdf:Description"> <!--xsl:attribute name="rdf:id"><xsl:value-of select="generate-id()"/></xsl:attribute --> <xsl:apply-templates mode="predicates"/> </xsl:element> </xsl:element> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="*" mode="ignore"/> </xsl:stylesheet>
European Environment Agency
Kgs. Nytorv 6, DK-1050 Copenhagen K, Denmark