Carsten Ziegeler wrote:

>Hi,
>
>here is a simple proposal for an easier value substitution algorithm
>in the sitemap.
>
>Currently, if you nest actions and matchers you have to aware of
>the paths to get your information:
><match pattern="**">
>  <act type="anything">
>      <read src="{directory}/{../1}"/>
>  </act>
></match>
>
>This can get very complicated. When I first got contact with value
>substitution more than two years ago, I thought I could write:
><read src="{directory}/{1}"/>
>
>The two components use different keys, so there is no conflict and
>the values can be resolved.
>This is in accordence to usual programming languages where a
>variable is not only searched in the current scope but also
>in the parent scope:
>{
>   int i;
>   {
>      int x;
>      i = 5;
>   }
>}
>Only if you have conflicts, which means you define a variable with
>the same name in the inner block and want to use a variable with
>the same name of an outer block you have to define the complete
>path.
>
>So, keeping this short, I propose to change the search algorithm
>for value substitution:
>If a key is not found in the inner block, the search is continued
>up the chain. 
>

Crawling up the chain can be very expensive !

>So in the above example {1} is first searched in the values
>delivered by the action - not found there - and then searched
>in the values by the matcher.
>

Your above example, even if it seems nice at first, leads to some 
predictability problems : how do you know which {1} will be used ? What 
if several components in the stack return a {1} but with a different 
meaning ?

In a programming language, a local variable is *written* in the code, 
and you know which one you are using, even if hiding variables is often 
considered as a bad practice - if allowed by compilers. In the sitemap, 
returned variables are optional and their names aren't visible.

>The old path syntax is untouched - so no compatibility problems
>but easier handling.
>
>What do you think?
>

Sorry Carsten, this is a day where we don't agree :-/

Sylvain

-- 
Sylvain Wallez
  Anyware Technologies                  Apache Cocoon
  http://www.anyware-tech.com           mailto:[EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to