Thorsten Scherler wrote:
El jue, 20-04-2006 a las 10:12 +0100, Ross Gardler escribió:

Thorsten Scherler wrote:

El jue, 20-04-2006 a las 10:40 +0200, Ferdinand Soethe escribió:


Ross Gardler wrote:



Am I helping or confusing?

Helping (me), thanks.


Still, I'm looking at this and wonder.

It seems to me like these cascades create a behavior that is very hard to
predict by the user. And probably - unless you really study that
sitemap - for many developers as well.


Yes, you are right the resource.xmap is *very* complex and *very* hard
to understand.



Should we really have all this legacy support and usage pattern choices
implemented in this way?


IMO no, that should go through the locationmap, however this is not that
simple since we have a wide range of different matches that cannot
directly be taken from the lm.

I already refactored the resource.xmap to use the locationmap [1]. It has been massively simplified. From what I can see everything now goes through the the locationamp. What are the specific problems you still see?


Stuff like <map:resource name="pipe-text-resource">
      <map:call resource="generate-transformed-resource">
        <map:parameter name="path" value="{path}" />
      </map:call>
      <map:serialize type="text" mime-type="{mime-type}"/>
    </map:resource>

Needs changes since you need to follow close to 5 different resource
declarations to finally found the root of the processing.

Yeah, I remember having a nightmare trying to sort out that stuff when doing the locationmap refactoring. If it can now be simplified then that would be cool.


Further <map:match pattern="**.png">
        <map:select type="exists">
          <map:when test="{lm:project.images.{1}.svg}">
            <map:call resource="pipe-aggregate-svg2png-resource">
              <map:parameter name="path"
value="{lm:project.images.{1}.svg}" />
            </map:call>
          </map:when>
          <map:when test="{lm:project.images.{1}.aart}">
            <map:generate type="asciiart-svg"
src="{lm:project.images.{1}.aart}" />
            <map:call resource="transform-project2text"/>
            <map:serialize type="svg2png" />
          </map:when>
          <map:when test="{lm:project.images.{1}.png}">
            <map:read src="{lm:project.images.{1}.png}"
mime-type="image/png" />
          </map:when>
        </map:select>
      </map:match>

We are doing here excessive use of the  <map:select type="exists"> which
should be done in the lm IMO (but that is hard).

The LM maps one request to one resource. This snippet selects how to process the relevant resources once it has been discovered. I'm not sure what you envision being changed here, in my view resource resolving belongs in the LM and processing belongs in the sitemap. Isn't that what is happening in the above?

Ross

Ross