<xsl:stylesheet 
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
   xmlns:sparql="http://www.w3.org/2005/sparql-results#" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
   xmlns:kml="http://www.opengis.net/kml/2.2"
   xmlns="http://www.opengis.net/kml/2.2" 
   version="1.0" 
   exclude-result-prefixes="sparql rdf kml">

<xsl:output indent="yes" 
            method="xml" 
            media-type="application/vnd.google-earth.kml+xml"/>

<xsl:param name="folder-name"/>
<xsl:param name="folder-desc"/>
   
<!-- Create document from SPARQL Query Results XML Format -->
<xsl:template match="/">
   <kml>   	
      <xsl:apply-templates select="//sparql:result"/>
   </kml>
</xsl:template>

<!-- Ignore head element -->
<xsl:template match="sparql:head"/>

<xsl:template match="sparql:results">
      <xsl:apply-templates select="sparql:result"/>
</xsl:template>

<!-- Process results element -->
<xsl:template match="sparql:result">
  <Placemark>
    <description><xsl:value-of select="sparql:binding[@name='description']/sparql:literal"/></description>
    <name><xsl:value-of select="sparql:binding[@name='title']/sparql:literal"/></name>
    <Point>
    	<coordinates>
    	<xsl:value-of select="sparql:binding[@name='long']/sparql:literal"/><xsl:text>,</xsl:text>
    	<xsl:value-of select="sparql:binding[@name='lat']/sparql:literal"/>
    	</coordinates>
    </Point>
  </Placemark>
</xsl:template>
   
</xsl:stylesheet>

