Project

General

Profile

1
<?xml version="1.0" encoding="UTF-8"?>
2
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:gml3="http://www.opengis.net/gml/3.1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rss="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:georss="http://www.georss.org/georss"  xmlns:wfs="http://www.opengis.net/wfs" xmlns:mb="http://mapbuilder.sourceforge.net/mapbuilder"> 
3
<!--
4
Description: A stylesheet to convert strange geobliki wfs to standards-compliant wfs.
5
Author:      Andreas Hocevar andreas.hocevarATgmail.com
6
Licence:     LGPL as per: http://www.gnu.org/copyleft/lesser.html
7

    
8
$Id: georss2wfs.xsl 3926 2008-03-20 14:13:35Z steven $
9
-->
10
  <xsl:template match="rdf:RDF">
11
    <wfs:FeatureCollection>
12
      <xsl:for-each select="rss:item">
13
        <xsl:call-template name="featureMember"/>
14
      </xsl:for-each>
15
    </wfs:FeatureCollection>
16
  </xsl:template>
17

    
18
  <xsl:template name="featureMember">
19
    <gml:featureMember>
20
    	<mb:geoRssFeature>
21
    	  <xsl:attribute name="fid"><xsl:value-of select="./@id"/></xsl:attribute>
22
    	  <mb:geom>
23
    	    <xsl:call-template name="point"/>
24
    	    <xsl:call-template name="lineString"/>
25
    	  </mb:geom>
26
    	</mb:geoRssFeature>      
27
    </gml:featureMember>
28
  </xsl:template>
29

    
30
<xsl:template name="point">
31
  <xsl:if test="georss:where/gml3:Point">
32
    <gml:Point>
33
      <gml:pos><xsl:value-of select="georss:where/gml3:Point/gml3:pos"/></gml:pos>
34
    </gml:Point>
35
  </xsl:if>
36
</xsl:template>
37

    
38
<xsl:template name="lineString">
39
  <xsl:if test="georss:where/gml3:LineString">
40
    <gml:LineString>
41
      <gml:posList dimension="2"><xsl:value-of select="translate(georss:where/gml3:LineString/gml3:posList, ',', ' ')"/></gml:posList>
42
    </gml:LineString>
43
  </xsl:if>
44
</xsl:template>
45

    
46
</xsl:stylesheet>
(5-5/6)