- From: Morten M. Christensen <mmc@mortench.net>
- Date: Wed, 21 Feb 2001 14:26:45 -0500 (EST)
- To: xsl-editors@w3.org
Dear Sirs,
I would like to add a feature to XSLT2, which allows one to
chain/forward matches in a generic way, taking into account all current
params and at best also the current mode. Such as feature could be
architected using meta-axes
which work on the XSLT code itself, as shown below.
I.e. I would like to be able to write something like this (VERY invented
syntax):
<xsl:template match="*[@ref]" mode="*" priority="1000">
<xsl:param name="media"/>
<xsl:param name="pageid"/>
<xsl:variable name="ref" select="@ref"/>
<xsl:variable name="refNode" select="//*[@id=$ref]"/>
<!-- Forward to declared element with all params and the same mode...
Note that I assume some axes that
describe the XSL itself (meta axes???)
-->
<xsl:apply-templates select="$refNode" mode="mode::.">
<xsl:for-each select="param::*">
<xsl:with-param name="name()" select="value()"/>
</xsl:for-each>
</xsl:apply-templates>
</xsl:template>
USE CASE:
***** XML FILE:
<VMENU id="main-menu">
....
</VMENU>
....
<VMENU ref="main-menu"/>
***** GENERAL RULE:
<xsl:template match="VMENU">
<xsl:param name="media"/>
<xsl:param name="pageid"/>
...
</xsl:template>
*** FORWARD RULE (here is the problem)
<!-- Forward processing of specific referenced elements (with
parameters and validation)
This allows the general rule above to forget about the
possibility of referenced nodes etc.
NOTE: This does not work with every possible param and it does
not work with modes !@#$%
-->
<xsl:template match="VMENU[@ref] " priority="1000">
<xsl:param name="media"/>
<xsl:param name="pageid"/>
<xsl:variable name="ref" select="@ref"/>
<xsl:variable name="refNode" select="//*[@id=$ref]"/>
<!-- Forward: WARNING - it is NOT possible to forward all params, so
we can only guess -->
<xsl:apply-templates select="$refNode">
<xsl:with-param name="media" select="$media"/>
<xsl:with-param name="pageid" select="$pageid"/>
</xsl:apply-templates>
</xsl:template>
----------------------------------------
Sincerely,
Morten Christensen (mmc@mortench.net)
AArhus, Denmark
Received on Thursday, 22 February 2001 04:46:34 UTC