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]