I'm having real problems doing a "trivial" tranformation (in the style
of Matthew and Carsten's excellent book).
I generate xml which then gets transformed by the sql transformer.
Unfortunately, it only works if I have no containing elements in the
input to the transformer. I'm guessing its related to the namespace? Or
is it a bug in the sql transformer? Any suggestions welcomed!
Here's the full details (stripped down to simplest repro so please don't
worry about the stylesheet now being pointless)...
version info:
tomcat 4.0.1
java 1.3.1
cocoon 2.1 head
sitemap fragment:
<map:match pattern="test3.xml">
<map:generate src="model/bootstrap.xml"/>
<map:transform src="model/staff_model.xsl"/>
<map:transform type="sql"/>
<map:serialize type="xml"/>
</map:match>
model/bootstrap.xml:
<?xml version="1.0"?>
<bootstrap/>
model/staff_model.xsl
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sql="http://apache.org/cocoon/SQL/2.0">
<xsl:template match="bootstrap">
<user>
<execute-query xmlns="http://apache.org/cocoon/SQL/2.0">
<use-connection>pool-TAL</use-connection>
<query>
select
USERNAME,
SURNAME,
INITIALS
from
STAFF
where
STAFFID = '24'
</query>
</execute-query>
</user>
</xsl:template>
</xsl:stylesheet>
error in browser (reformatted by hand to make more readable):
Multiple colons are not allowed in a name. Error processing resource
'http://localhost:8080/cocoon/tal/admin/test3.xml'. Line 2, Position 18
<user xmlns:xmlns:sql="http://apache.org/cocoon/SQL/2.0">
-----------------^
<rowset xmlns="http://apache.org/cocoon/SQL/2.0"
xmlns:sql="http://apache.org/cocoon/SQL/2.0">
<row>
<username>ecsnp</username>
<surname>Price</surname>
<initials>S</initials>
</row>
</rowset>
</user>
To help diagnose, the intermediate XML that comes out of the stylesheet
transformation, before going into the sql transformer is:
<?xml version="1.0" encoding="UTF-8" ?>
<user xmlns:sql="http://apache.org/cocoon/SQL/2.0">
<execute-query xmlns="http://apache.org/cocoon/SQL/2.0">
<use-connection>pool-TAL</use-connection>
<query>select USERNAME, SURNAME, INITIALS from STAFF where STAFFID =
'24'</query>
</execute-query>
</user>
Contrast this with the XML at the same point if the root <user> element
is removed from the stylesheet (THIS ONE WORKS):
<?xml version="1.0" encoding="UTF-8" ?>
<execute-query xmlns="http://apache.org/cocoon/SQL/2.0"
xmlns:sql="http://apache.org/cocoon/SQL/2.0">
<use-connection>pool-TAL</use-connection>
<query>select USERNAME, SURNAME, INITIALS from STAFF where STAFFID =
'24'</query>
</execute-query>
Thanks in advance
Simon
-------------------------------------------------------------------
Simon Price
Institute for Learning and Research Technology
University of Bristol
8-10 Berkeley Square
Bristol BS8 1HH
United Kingdom
Direct: +44 (0)7071 226 720
Office: +44 (0)117 928 7193
Fax: +44 (0)117 928 7112
[EMAIL PROTECTED]
http://www.ilrt.bristol.ac.uk
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html>
To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>