-----Original Message-----
From: sarra hamdi [mailto:hacker249(_at_)lycos(_dot_)com]
Sent: 21 May 2004 12:45
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] GML transformation
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 good result .
from this can any one see this two file to help me to
represent the gml file.
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[(_at_)name='RoadT
ype'])"/>
<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
------------------------------------------------
I've annotated this to show you some of the things that are wrong with your
code, but I haven't tried to correct your errors because I simply can't see
what you are aiming at.
<?xml version="1.0"?>
<!DOCTYPE xsl:stylesheet SYSTEM "C:\Documents and
Settings\ines\Bureau\exemple3\Untitled2.dtd">
The location of the DTD must be a URI, not a filename. Some products let you
get away with this error, but they shouldn't.
<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/."/>
The trailing "/." is noise and should be removed.
<xsl:template
match="//gml:centerLineOf/gml:LineString/gml:coordinates">
The leading "//" is noise and should be removed.
<xsl:variable name="clist" select="."/>
<xsl:variable name="tclist"
select="normalize-space($clist)"/>
<xsl:template match="/">
You can't have one template rule inside another. I don't know what you are
trying to achieve here.
<xsl:variable name="boxCoord"></xsl:variable>
This variable will have a value that is always a result tree fragment
containing an empty string, which doesn't seem very useful.
<xsl:template match="/">
Another nested template! You appear to be confused.
<svg xml:space="preserve" viewBox="{$boxCoord}">
<xsl:apply-templates/>
</svg>
</xsl:template>
</xsl:template>
</xsl:template>
</xsl:stylesheet>
Michael Kay