Yesterday, I had a closer look upon COCOON3-103.
Here is a better restatement of the problem:
The "ObjectModel" keeps hold of the sitemap parameters and other variables.
In SitemapParametersStack, a series of parameters is pushed upon the stack
- whenever a 'pattern match ' occurs (map:match element)
- when a "when" condition matches
Here is a simple case that does not work:
<map:match name="matcherOne" pattern="selecttest/{para1}">
<map:generate src="static/lyrics/le_bistrot.xml"/>
<map:select value="{map:para1}">
<map:when equals="one">
<map:transform src="xslt/song.xsl">
<map:parameter name="para1" value="{map:para1}"/>
</map:transform>
<map:serialize type="html"/>
</map:when>
<map:otherwise>
<map:serialize type="xml"/>
</map:otherwise>
</map:select>
</map:match>
The trouble is with "getParameter" of SitemapParametersStack:
- in this case, there is a match for relativeParameterMatcher,
but subsequently the variable "level" is not correctly computed and only
the last entry is taken to hold the parameter.
I can fix that, so that parameters always get matched if they are on the
stack, but my real question is:
what is meant to happen? Is there a "scope" foreseen for sitemap
parameters? Is there an 'absolute' and a 'relative' matching,
are notations foreseen that look like:
bla/blu
or
../../../bla
and what with /{justAName} ?
In any case, this mechanism does not work for the moment.
If you folks can explain me what the idea is, I can gladly provide a patch.
I have nothing to do these days.
Cheers,
Jos