source: proto/gml2svg/Java/XSLTJ/res/generateDuplicates.xslt @ 1703

Last change on this file since 1703 was 1703, checked in by ksherdy, 8 years ago

Added gml2svg prototypes.

  • Property svn:executable set to *
File size: 2.5 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3        Description: Generates a set of GML files with duplicated features. Each feature is assigned a unique id. The number of duplicates is based on the stylesheet duplicates parameter.     
4-->
5<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fps="http://www.galdosinc.com/fps" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:van="http://www.galdosinc.com/vancouver" xmlns:wfs="http://www.opengis.net/wfs" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
6  <xsl:output indent="yes" 
7    encoding="UTF-8" 
8    method="xml" 
9    omit-xml-declaration="yes" 
10    version="1.0"/>
11 
12  <xsl:param name="duplicates">1</xsl:param>
13 
14  <xsl:template match="/">
15    <xsl:element name="wfs:FeatureCollection">
16      <xsl:namespace name="fps">http://www.galdosinc.com/fps</xsl:namespace>
17      <xsl:namespace name="gml">http://www.opengis.net/gml</xsl:namespace>
18      <xsl:namespace name="ogc">http://www.opengis.net/ogc</xsl:namespace>
19      <xsl:namespace name="van">http://www.galdosinc.com/vancouver</xsl:namespace>
20      <xsl:namespace name="wfs">http://www.opengis.net/wfs</xsl:namespace>
21      <xsl:namespace name="xlink">http://www.w3.org/1999/xlink</xsl:namespace>       
22      <xsl:namespace name="xsi">http://www.w3.org/2001/XMLSchema-instance</xsl:namespace>       
23      <xsl:copy-of select="wfs:FeatureCollection/gml:boundedBy" copy-namespaces="no"/>
24      <xsl:apply-templates select="wfs:FeatureCollection/gml:featureMember"/>
25    </xsl:element>     
26  </xsl:template>
27 
28  <xsl:template match="wfs:FeatureCollection/gml:featureMember">
29    <xsl:call-template name="duplicate">
30      <xsl:with-param name="count" select="number($duplicates)"/>
31    </xsl:call-template>
32  </xsl:template>
33 
34  <xsl:template name="duplicate">
35    <xsl:param name="count"/>
36    <xsl:if test="$count > 0">
37      <xsl:element name="gml:featureMember" namespace="http://www.opengis.net/gml">
38        <xsl:element name="{name(child::*[1])}">
39          <xsl:attribute name="gml:id" select="concat(child::*[1]/@gml:id,'-',$count)"/>
40          <xsl:copy-of select="child::*[1]/child::*" copy-namespaces="no"/>
41        </xsl:element>
42      </xsl:element>
43      <xsl:call-template name="duplicate">
44        <xsl:with-param name="count" select="$count - 1"/>
45      </xsl:call-template>
46    </xsl:if>
47  </xsl:template>
48 
49</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.