XML schema |
http://www.w3.org/2007/appservice
|
---|---|
Output type | RDF |
Description | Convert ATOM services to RDF |
XSL file | atom-service2rdf.xsl (Last modified: 20 May 2010 14:28 ) |
<?xml version="1.0" encoding="UTF-8"?> <stylesheet xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns ="http://www.w3.org/1999/XSL/Transform" xmlns:app ="http://www.w3.org/2007/app" xmlns:atom = "http://www.w3.org/2005/Atom" xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs ="http://www.w3.org/2000/01/rdf-schema#" xmlns:bibo ="http://purl.org/ontology/bibo/" xmlns:dcterms ="http://purl.org/dc/terms/" xmlns:void ="http://rdfs.org/ns/void#"> <!-- Convert service documents into RDF See http://www.ietf.org/rfc/rfc5023.txt --> <output indent="yes" method="xml" media-type="application/rdf+xml" encoding="UTF-8" omit-xml-declaration="no"/> <template match="app:service"> <rdf:RDF> <xsl:copy-of select="@xml:lang"/> <xsl:copy-of select="@xml:base"/> <app:Service rdf:about=""> <xsl:for-each select="app:workspace"> <app:workspace> <app:Workspace> <xsl:for-each select="atom:title"> <rdfs:label> <xsl:apply-templates select="." mode="object"/> </rdfs:label> </xsl:for-each> <xsl:for-each select="app:collection"> <app:collection> <xsl:apply-templates select="." /> </app:collection> </xsl:for-each> </app:Workspace> </app:workspace> </xsl:for-each> </app:Service> </rdf:RDF> </template> <template match="app:collection"> <xsl:element name="app:Collection"> <xsl:attribute name="rdf:about"> <xsl:value-of select="@href" /> </xsl:attribute> <xsl:for-each select="atom:title"> <rdfs:label> <xsl:apply-templates select="." mode="object"/> </rdfs:label> </xsl:for-each> </xsl:element> </template> <xsl:template match="*[not(*)]" mode="object"> <xsl:copy-of select="@xml:lang"/> <xsl:value-of select="."/> </xsl:template> <xsl:template match="*[*]" mode="object"> <xsl:attribute name="rdf:parseType">Literal</xsl:attribute> <xsl:copy-of select="@xml:lang"/> <xsl:copy-of select="node()"/> </xsl:template> <xsl:template name="uri"> <xsl:param name="uri"/> <xsl:choose> <xsl:when test="normalize-space($uri)!=''"> <xsl:attribute name="rdf:about"> <xsl:value-of select="$uri"/> </xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:attribute name="rdf:nodeID"> <xsl:text>blank</xsl:text> <xsl:value-of select="count(preceding::*)+count(ancestor::*)"/> </xsl:attribute> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- ignore the rest of the DOM --> <template match="text()|@*|*"><apply-templates /></template> </stylesheet>
European Environment Agency
Kgs. Nytorv 6, DK-1050 Copenhagen K, Denmark