- From: Patrick Soh <chsoh@must.edu.my>
- Date: Wed, 28 Jan 2004 11:10:59 +0800
- To: <www-svg@w3.org>
- Message-ID: <004101c3e54c$5ab28530$d801a8c0@ITLAB21>
Hi,
I use SQL Transformer to extract XML data. simple.
My problem is that the resulting XML file have a problem. Specifically I am unable to read the data inside the rowset tags.
I read the archives and seems like in the past, the rowset have duplicate nametags. Well, it doesn't have duplicate nametags now and just have
<rowset xmlns="http://apache.org/cocoon/SQL/2.0">
However, the XSL file is unable to recognise the rowset tag. I deleted the "http://apache.org/cocoon/SQL/2.0" from the rowset tag and it works fine. Likewise, if I delete the rowset tag, the XSL file works fine.
Any help much appreciated to work around.
Below is the data file and Xsl file and sqlpage file.
Data File
=======
<?xml version="1.0" encoding="ISO-8859-1"?>
<page xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sql="http://apache.org/cocoon/SQL/2.0">
<title>Hello</title>
<resources>
<resource type="file" href="sql-page.xml.sql">Schema</resource>
<resource type="doc" href="userdocs/transformers/sql-transformer.html">SQL Transformer</resource>
</resources>
<content>
<para>This is my first Cocoon2 page filled with sql data!</para>
<rowset><row><eventdate>31/1/2004</eventdate><eventtime>08:00</eventtime><roadid>LDP</roadid><locationid>LDP-BU</locationid><description>BUMPER-TO-BUMPER TRAFFIC</description><color>RED</color></row><row><eventdate>31/1/2004</eventdate><eventtime>08:00</eventtime><roadid>LDP</roadid><locationid>MOTOROLA</locationid><description>HEAVY TRAFFIC</description><color>ORANGE</color></row><row><eventdate>31/1/2004</eventdate><eventtime>08:00</eventtime><roadid>LDP</roadid><locationid>SUNWAY</locationid><description>SMOOTH TRAFFIC</description><color>GREEN</color></row></rowset>
</content>
</page>
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
XSL File
=======
<?xml version="1.0"?>
<!-- 1st Style Sheet to convert traffic details -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink">
<xsl:output method="xml" />
<xsl:template match="/">
<svg id="main2" viewBox="0 0 0.54729 0.366895" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" version="1.0" contentScriptType="text/ecmascript" contentStyleType="text/css">
<g fill="none" stroke="black" stroke-width="6.11492e-005" transform="translate(0,0.366895) scale(1, -1)" xmlns:fme="http://www.safe.com/fme">
<g id="highways2" stroke-width="0.0015">
<date> <xsl:value-of select="//page/content/rowset/row/eventdate" /> </date>
<time> <xsl:value-of select="//page/content/rowset/rowset/row/eventtime" /> </time>
<xsl:variable name="loc-id"> </xsl:variable>
<xsl:for-each select="//page/content/rowset/row">
<use xlink:href="#{$loc-id}{locationid}" stroke="{color}"/>
</xsl:for-each>
</g>
</g>
</svg>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------------------------------------------------------------------------------------------
XSL File
======
<?xml version="1.0"?>
<page xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sql="http://apache.org/cocoon/SQL/2.0">
<title>Hello</title>
<resources>
<resource type="file" href="sql-page.xml.sql">Schema</resource>
<resource type="doc" href="userdocs/transformers/sql-transformer.html">SQL Transformer</resource>
</resources>
<content>
<para>This is my first Cocoon2 page filled with sql data!</para>
<execute-query xmlns="http://apache.org/cocoon/SQL/2.0">
<query>
select eventdate, eventtime, roadid, locationid, tb_traffic.description, color from traffic.tb_traffic, traffic.tb_congestion_code where tb_traffic.description = tb_congestion_code.description
</query>
</execute-query>
</content>
</page>
----- Original Message -----
From: Patrick Soh
To: www-svg@w3.org
Sent: Tuesday, January 27, 2004 4:44 PM
Subject: Problem with Generated XML File from Cocoon SQL Statement?
Hi,
I am a beginner with Cocoon and XML. I generated an XML File based on SQL Transformer but encounter problem when transforming that data file with XSL stylesheet. However, I do not have any problems with the XSL stylesheet transformation if I manually create the same XML data file.
Have I missed out some basic stuff?
Your help much appreciated!
Below is my sitemap commands and the 2 "identical" XML files and stylesheet.
Sitemap Command
<map:match pattern="*/**">
<map:generate src="transform/sql-page.xml"/>
<map:transform type="sql">
<map:parameter name="use-connection" value="personnel"/>
<map:parameter name="clob-encoding" value="UTF-8"/>
<!--
Let's have a look at the user docs:
"[...] The purpose of the SQLTransformer is to query a
database and translate the result to XML. [...]"
-->
</map:transform>
<map:transform src="stylesheets/trafficdetails.xsl">
<map:parameter name="servletPath" value="{request:servletPath}"/>
<map:parameter name="sitemapURI" value="{request:sitemapURI}"/>
<map:parameter name="contextPath" value="{request:contextPath}"/>
<map:parameter name="file" value=".xml"/>
</map:transform>
<map:serialize type="xml"/>
</map:match>
XML File Generated from the Transform SQL Command
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="trafficdetails2701.xsl"?>
<rowset xmlns="http://apache.org/cocoon/SQL/2.0">
<row>
<eventdate>31/1/2004</eventdate>
<eventtime>08:00</eventtime>
<roadid>LDP</roadid>
<locationid>LDP-BU</locationid>
<description>BUMPER-TO-BUMPER TRAFFIC</description>
<color>RED</color>
</row>
<row>
<eventdate>31/1/2004</eventdate>
<eventtime>08:00</eventtime>
<roadid>LDP</roadid>
<locationid>MOTOROLA</locationid>
<description>HEAVY TRAFFIC</description>
<color>ORANGE</color>
</row>
<row>
<eventdate>31/1/2004</eventdate>
<eventtime>08:00</eventtime>
<roadid>LDP</roadid>
<locationid>SUNWAY</locationid>
<description>SMOOTH TRAFFIC</description>
<color>GREEN</color>
</row>
</page>
XSL File to Transform the above XML File
<?xml version="1.0"?>
<!-- 1st Style Sheet to convert traffic details -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink">
<xsl:output method="xml" />
<xsl:template match="/">
<svg id="main2" viewBox="0 0 0.54729 0.366895" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" version="1.0" contentScriptType="text/ecmascript" contentStyleType="text/css">
<g fill="none" stroke="black" stroke-width="6.11492e-005" transform="translate(0,0.366895) scale(1, -1)" xmlns:fme="http://www.safe.com/fme">
<g id="highways2" stroke-width="0.0015">
<date> <xsl:value-of select="//page/content/rowset/row/eventdate" /> </date>
<time> <xsl:value-of select="//page/content/rowset/row/eventtime" /> </time>
<xsl:variable name="loc-id"> </xsl:variable>
<xsl:for-each select="//page/content/rowset/row">
<use xlink:href="#{$loc-id}{locationid}" stroke="{color}"/>
</xsl:for-each>
</g>
</g>
</svg>
</xsl:template>
Results Produced by XML and XSL File
<?xml version="1.0" encoding="UTF-16"?><svg id="main2" viewBox="0 0 0.54729 0.366895" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" version="1.0" contentScriptType="text/ecmascript" contentStyleType="text/css" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="none" stroke="black" stroke-width="6.11492e-005" transform="translate(0,0.366895) scale(1, -1)" xmlns:fme="http://www.safe.com/fme"><g id="highways2" stroke-width="0.0015"><date></date><time></time></g></g></svg>
Note that the date, time fields are empty and locationid and color data not generated.
Manual XML File
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="trafficdetails2101.xsl"?>
<page xmlns:sql="http://apache.org/cocoon/SQL/2.0">
<row>
<eventdate>19/1/2004</eventdate>
<eventtime>17:00</eventtime>
<roadid>LDP</roadid>
<locationid>LDP-Sunway</locationid>
<description>SMOOTH TRAFFIC</description>
<color>BLUE</color>
</row>
<row>
<eventdate>19/1/2004</eventdate>
<eventtime>17:00</eventtime>
<roadid>LDP</roadid>
<locationid>LDP-Motorola</locationid>
<description>HEAVY TRAFFIC</description>
<color>orange</color>
</row>
<row>
<eventdate>19/1/2004</eventdate>
<eventtime>17:00</eventtime>
<roadid>LDP</roadid>
<locationid>LDP-PJ</locationid>
<description>BUMPER-TO-BUMPER TRAFFIC</description>
<color>red</color>
</row>
</page>
Results Produced By Manual XML File and XSL File (with minor adjustments to tags)
<?xml version="1.0" encoding="UTF-16"?><svg id="main2" viewBox="0 0 0.54729 0.366895" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" version="1.0" contentScriptType="text/ecmascript" contentStyleType="text/css" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill="none" stroke="black" stroke-width="6.11492e-005" transform="translate(0,0.366895) scale(1, -1)" xmlns:fme="http://www.safe.com/fme"><g id="highways2" stroke-width="0.0015"><date>19/1/2004</date><time>17:00</time><use xlink:href="#LDP-Sunway" stroke="BLUE" /><use xlink:href="#LDP-Motorola" stroke="orange" /><use xlink:href="#LDP-PJ" stroke="red" /></g></g></svg>
Note that the data on date, time and location id & color is generated.
----- Original Message -----
From: Patrick Soh
To: www-svg@w3.org
Sent: Tuesday, January 20, 2004 7:26 PM
Subject: Help Needed: Using SVG command "use xlink:href="#local_variable_name" in XSLT
Hi,
I am trying to put into XSL file the SVG command "use xlink:href="#local_variable_name" but XSL keeps rejecting it. The Error Message is "Error in input XSL: Error: Reference to undeclared namespace prefix:'xlink'.
The XSL works fine if I change the command to "use xlink-href="#local_variable_name" i.e. as long as I do not refer to xlink:href.
Attached is my xsl file and xml datafile.
Any help much appreciated.
By the way, Happy Chinese New Year to all the chinese out there!
Patrick Soh
<?xml version="1.0"?>
<!-- 1st Style Sheet to convert traffic details -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" />
<xsl:template match="/">
<!-- xsl:text disable-output-escaping="yes" -->
<xsl:variable name="loc-id"> </xsl:variable>
<!-- xsl:variable name="dtime" / -->
<!-- ddtime="{$dtime}{title}"></ddtime -->
<svg xmlns="http://www.w3.org/2000/svg">
<g>
<date> <xsl:value-of select="//page/title" /> </date>
<time> <xsl:value-of select="//page/row/eventtime" />
</time>
<xsl:for-each select="//page/row">
<!-- xsl:text disable-output-escaping="yes" -->
<use xlink:href="#{$loc-id}{locationid}" stroke="{color}"/>
<!-- /xsl:text -->
</xsl:for-each>
</g>
</svg>
<!-- /xsl:text -->
</xsl:template>
</xsl:stylesheet>
My xml data file is
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="trafficdetails1901.xsl"?>
<page xmlns:sql="http://apache.org/cocoon/SQL/2.0">
<title>19/01/2004 </title>
<row>
<eventtime>17:00</eventtime>
<roadid>LDP</roadid>
<locationid>LDP-Sunway</locationid>
<description>SMOOTH TRAFFIC</description>
<color>BLUE</color>
</row>
<row>
<eventtime>17:00</eventtime>
<roadid>LDP</roadid>
<locationid>LDP-Motorola</locationid>
<description>HEAVY TRAFFIC</description>
<color>orange</color>
</row>
<row>
<eventtime>17:00</eventtime>
<roadid>LDP</roadid>
<locationid>LDP-PJ</locationid>
<description>BUMPER-TO-BUMPER TRAFFIC</description>
<color>red</color>
</row>
</page>
Received on Tuesday, 27 January 2004 22:10:59 UTC