I have what appears to be a bug in the jsl tag library wrt relative select 
attributes.

In a script (actually the conversion of Maven's site.dvsl to jelly's jsl), 
I 
1)loop through a set of files using core:forEach. 
2) Within the loop each file is then parsed using xml:parse.
3) The parsed doc is then used as the source of the jsl:stylesheet
4) Within a template an xml:expr is used to retrieve nodes with a select 
relative to the template (or so I thought), e.g. 
select="./properties/author"

First  time through all gets extracted as expected. For every other 
iteration though, it appears the xpath context has 'remembered' the 
original document.

Here's a snippet:
---------- Start Snippet ---------
Step 1:    <j:forEach var="file" items="${docFiles.iterator()}">
Step 2:      <x:parse var="doc" xml="${file.toURL()}" />
Step 3:      <jsl:stylesheet select="$doc">
             <jsl:template match="document" trim="no">
              <x:doctype name="html" 
                publicId="-//CollabNet//DTD XHTML 1.0 Transitional//EN"
                systemId=
"http://www.collabnet.com/dtds/collabnet_transitional_10.dtd"; />
              <html>
                <head>
Step 4:           <j:set var="docTitle"><x:expr select=
"./properties/title" /></j:set>
                  Test <x:expr select="./properties/title" /> - <x:expr 
select="$doc/document/properties/title" />

---------- End Snippet -----------

On the Test line above, just after Step 4, the first expr stays the same 
all the way through the loop.
The second expr changes as I would expect.

Anything I can do to work around this, short of specifying the full select 
attribute each time?

I've tried to find out where the bad code is, but so far no luck :)
--
dIon Gillard, Multitask Consulting
Work:      http://www.multitask.com.au
Developers: http://adslgateway.multitask.com.au/developers


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to