GML to svg

Subject: GML to svg
From: "sarra hamdi" <hacker249@xxxxxxxxx>
Date: Wed, 09 Jun 2004 06:43:47 -0400
Hello,
I always have a same problem: how trasform a gml file to svg.I have a gml file validated with xmlspy, and i want tranform it in svg format to visualise the map (using xmlspy), this map should contain two lines when one represent the road and the other represent the river. I tried to use your suggestion for the xslt file but the result is a html file not a svg file,  from this can you look my following files, to help me found the error: 
----------------------------------------------
the file Cambridge.xml
------------------------------------------------
<?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  c:\City.xsd">
	<gml:name>Cambridge</gml:name>
	<gml:boundedBy>
		<gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326";>
			<gml:coord>
				<gml:X>0.0</gml:X>
				<gml:Y>0.0</gml:Y>
			</gml:coord>
			<gml:coord>
				<gml:X>100.0</gml:X>
				<gml:Y>100.0</gml:Y>
			</gml:coord>
		</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:coord>
						<gml:X>0</gml:X>
						<gml:Y>50</gml:Y>
					</gml:coord>
					<gml:coord>
						<gml:X>70</gml:X>
						<gml:Y>60</gml:Y>
					</gml:coord>
					<gml:coord>
						<gml:X>100</gml:X>
						<gml:Y>50</gml:Y>
					</gml:coord>
				</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:coord>
						<gml:X>0</gml:X>
						<gml:Y>5.0</gml:Y>
					</gml:coord>
					<gml:coord>
						<gml:X>20.6</gml:X>
						<gml:Y>10.7</gml:Y>
					</gml:coord>
					<gml:coord>
						<gml:X>80.5</gml:X>
						<gml:Y>60.9</gml:Y>
					</gml:coord>
				</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'])"/>
	<dateCreated>2000-11</dateCreated>
</CityModel>

------------------------------------------------
the file cambridge.xsl
----------------------------------------------
<?xml version="1.0"?>
<xsl:transform xmlns:xsl="http:\\www.w3.org\1999\XSL\Transform" 
xmlns:xlink="http://www.w3.org/1999/xlink"; xmlns:pre1="http://www.opengis.net/examples"; 
xmlns:gml="http://www.opengis.net/gml";>
	<xsl:output method="svg" doctype-system="http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd
" doctype-public="-//W3C//DTD SVG 20000303 Stylable//EN"/>
	<xsl:variable name="viewBox Value">
		<xsl:value-of select="fn:tokenize(*/gml:boundedBy/gml:Box/gml:coordinates)"/>
	</xsl:variable>
	<xsl:template match="/">
		<xsl:element name="svg">
			<xsl:attribute name="viewBox"><xsl:value-of select="$viewBoxValue"/></xsl:attribute>
			<!--apply template to each GML geometry property-->
			<xsl:apply-templates select="//pre1:cityMember/gml:centerLineOf"/>
		</xsl:element>
	</xsl:template>
	<xsl:template match="pre1:cityMember/gml:centerLineOf">
		<xsl:element name="path">
			<xsl:attribute name="style">stroke-width:fill:none;stroke:rgb(69,34,118);</xsl:attribute>
			<xsl:attribute name="d"><xsl:value-of select="fn:tokenize(./gml:coordinates)"/>
			</xsl:attribute>
		</xsl:element>
	</xsl:template>
</xsl:transform>

----------------------------------------------
the result given with xmlspy
----------------------------------------------
<?xml version="1.0" encoding="UTF-8"?><xsl:transform xmlns:gml="http://www.opengis.net/gml"; 
xmlns:pre1="http://www.opengis.net/examples"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:xsl="http:\\www.w3.org\1999\XSL\Transform"><xsl:output method="svg" 
doctype-system="http://www.w3.org/TR/2000/03/WD-SVG-20000303/DTD/svg-20000303-stylable.dtd"; 
doctype-public="-//W3C//DTD SVG 20000303 Stylable//EN"/><xsl:variable 
name="viewBox Value"><xsl:value-of select="fn:tokenize(*/gml:boundedBy/gml:Box/gml:coordinates)"
/></xsl:variable><xsl:template match="/"><xsl:element name="svg"><xsl:attribute 
name="viewBox"><xsl:value-of select="$viewBoxValue"/></xsl:attribute><xsl:apply-templates 
select="//pre1:cityMember/gml:centerLineOf"/></xsl:element></xsl:template><xsl:template 
match="pre1:cityMember/gml:centerLineOf"><xsl:element name="path"><xsl:attribute 
name="style">stroke-width:fill:none;stroke:rgb(69,34,118);</xsl:attribute><xsl:attribute 
name="d"><xsl:value-of select="fn:tokenize(./gml:coo
rdinates)"/></xsl:attribute></xsl:element></xsl:template></xsl:transform>
---------------------------------------------
the attented output svg file
-----------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
  <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