[xsl] GML to svg

Subject: [xsl] GML to svg
From: "sarra hamdi" <hacker249@xxxxxxxxx>
Date: Fri, 21 May 2004 11:36:14 -0400
Hello,
I have a valid GML file descriped follow, it was validated by xmlspy. I want to transform it to SVG format using xslt but I m newbie in xsl language.
follow the xsl file that I writed but it cant give me a the same result described in the output svg file.
from this can any one see this files to help me to write the xslt file correspind to my gml file to give me the same result of the svg file described in follow. 
thanks advanced.

------------------------------------------------
the gml file
------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<!-- File: cambridge.xml -->
<CityModel xmlns="http://www.opengis.net/examples"; 
          xmlns:gml="http://www.opengis.net/gml"; 
          xmlns:xlink="http://www.w3.org/1999/xlink"; 
           xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"; 
          xsi:schemaLocation="http://www.opengis.net/examples /u/pkg/gml4j/test/schemas/City.xsd">

  <gml:name>Cambridge</gml:name>
  <gml:boundedBy>
    <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326";>
      <gml:coordinates>0.0 0.0,100.0 100.0</gml:coordinates>
    </gml:Box>
  </gml:boundedBy>

<cityMember>
    <River>
      <gml:description>The river that runs through Cambridge.</gml:description>
     <gml:name>Cam</gml:name>
      <gml:centerLineOf>
        <gml:LineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326";>
         <gml:coordinates>0 50,70 60,100 50</gml:coordinates>
        </gml:LineString>
      </gml:centerLineOf>
    </River>
  </cityMember>

  <cityMember>
    <Road>
      <gml:name>M11</gml:name>
       <linearGeometry>
          <gml:LineString srsName="http://www.opengis.net/gml/srs/epsg.xml#4326";>
           <gml:coordinates>0 5.0,20.6 10.7,80.5 60.9</gml:coordinates>
          </gml:LineString>
        </linearGeometry>
      <classification>motorway</classification>
      <number>11</number>
    </Road>
  </cityMember>

  <cityMember xlink:type="simple" xlink:title="Trinity Lane" 
    xlink:href="http://www.foo.net/cgi-bin/wfs?FeatureID=C10239"; 
    gml:remoteSchema="city.xsd#xpointer(//complexType[@name='RoadType'])"/>
  <cityMember>
    <Mountain>
      <gml:description>World's highest mountain is in Nepal!</gml:description>
      <gml:name>Everest</gml:name>
      <elevation>8850</elevation>
    </Mountain>
  </cityMember>
  <dateCreated>2000-11</dateCreated>
</CityModel>


------------------------------------------------
the xsl file
------------------------------------------------<?xml version="1.0"?>
<!DOCTYPE xsl:stylesheet SYSTEM "C:\Documents and Settings\ines\Bureau\exemple3\Untitled2.dtd">
><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:xlink="http://www.w3.org/TR/xlink"; xmlns:gml="http://www.opengis.net/gml"; xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect" xmlns:mur="murmur" extension-element-prefixes="mur">
	<xsl:output method="xml" doctype-system="D:\mesrecherchesmastere\svg\DTD\svg10.dtd" doctype-public="-//W3C//DTD SVG 20000303 Stylable//EN"/>
	<xsl:variable name="boxCoord" select="//gml:Box/gml:coordinates/."/>
	     <xsl:template match="//gml:centerLineOf/gml:LineString/gml:coordinates">
		<xsl:variable name="clist" select="."/>
		<xsl:variable name="tclist" select="normalize-space($clist)"/>
		<xsl:template match="/">
			<xsl:variable name="boxCoord"></xsl:variable>
			<xsl:template match="/">
		<svg xml:space="preserve" viewBox="{$boxCoord}">
			<xsl:apply-templates/>
		</svg>
	</xsl:template>	
	</xsl:template>	
	</xsl:template>	
</xsl:stylesheet>
--------------------------------------------------
the wanted output svg file
-----------------------------------------------------

><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg SYSTEM "C:\Documents and Settings\Administrateur\Bureau\Untitled2.dtd">
<svg width="50cm" height="20cm" viewBox="0 0 800 40" xmlns:gml="http://www.opengis.net/gml"; xmlns:xlink="http://www.w3.org/TR/xlink"; xml:space="preserve" xmlns="http://www.w3.org/2000/svg";>
	
	<g transform="rotate(-100)">
		<g stroke="green">
			<line x1="50" y1="0" x2="60" y2="70" stroke-width="2"/>
			<line x1="60" y1="70" x2="50" y2="100" stroke-width="2"/>
		</g>
		<text x="0" y="0" font-size="10" font-family="Verdana" fill="blue">River
</text>
		<g stroke="red">
			<g transform="rotate(20)">
						</g>
			<line x1="5.0" y1="0.0" x2="10.7" y2="20.6" stroke-width="5"/>
			<line x1="10.7" y1="20.6" x2="60.9" y2="80.5" stroke-width="5"/>
			<line x1="60.9" y1="80.5" x2="100" y2="90" stroke-width="5"/>
		</g>
	</g>
	<text x="0" y="2" font-size="10" font-family="Verdana" fill="blue">
Road
</text>
	<text x="0" y="-70" font-size="10" font-family="Verdana" fill="blue">
River
</text>
	<path style="stroke:$colorc;fill:$remplir" d=""/>
	<path style="stroke:$colorc;fill:$remplir" d=""/>





____________________________________________________________
Find what you are looking for with the Lycos Yellow Pages
http://r.lycos.com/r/yp_emailfooter/http://yellowpages.lycos.com/default.asp?SRC=lycos10

Current Thread
  • [xsl] GML to svg
    • sarra hamdi - Fri, 21 May 2004 11:36:14 -0400 <=
      • Xia Li - Fri, 21 May 2004 17:08:59 -0700
      • <Possible follow-ups>
      • bry - Fri, 21 May 2004 22:24:14 CET