[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Modes


Subject: [xsl] Modes
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxx>
Date: Mon, 26 Nov 2012 03:48:05 +0000

A while back somebody posed a question about use cases for modes.

http://www.biglist.com/cgi-bin/wilma/wilma_hiliter/xsl-list@xxxxxxxxxxxxxxxxxxxxxx/201206/msg00054.html

I generally avoid them except where necessary but have come across
another use case beyond that mentioned in my reply.

If you are using variables to pipeline the a transformation into
various stages - i.e capturing the result of a transformation in a
variable and applying another set of transformations to the variable
(call that a stage) then they are useful in constraining the set of
template rules that can apply at any stage of the transformation.

Priorities don't help here because the template rule that should be
ascendant changes depending on what stage in the "pipeline" you are
at.

As an example a <person> element goes through an intial transformation
the result of which is captured in a variable $stage1.

We are now at stage 2 and want to apply templates to $stage1 which
features person elements, however the person element (call it a child
in Stage1) is now a teenager so we want to do different things with
it, so we apply templates in teenager mode to ensure we no longer
treat the person like a child and capture the result of that
transformation in a variable stage 3. Applying templates to stage3 -
again you have person elements but now you want to treat them like
adults and not teenagers or children so you write template rules for
person in adult mode ......etc.


Current Thread