Feature Suggestion - result subtrees as macro arguments

Subject: Feature Suggestion - result subtrees as macro arguments
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 12 Jan 1999 14:12:50 -0500
Right now, macro arguments are attribute value templates:

<!ELEMENT xsl:arg EMPTY>
<!ATTLIST xsl:arg
  name NMTOKEN #REQUIRED
  value CDATA #REQUIRED
>

... and their default value can be specified:

<!ELEMENT xsl:macro-arg EMPTY>
<!ATTLIST xsl:macro-arg
  name NMTOKEN #REQUIRED
  default CDATA #IMPLIED
>

I've come across a situation where I'd like to supply to the macro a
fragment of the result tree as the value of an argument, as in the
following example:

<xsl:macro name="page-layout">
  <xsl:macro-arg name="title-block">
    <xsl:apply-templates match="title-prefix"/>
    <xsl:apply-templates match="title"/>
    <xsl:apply-templates match="title-suffix"/>
  </xsl:macro-arg>
  <xsl:apply-templates select="page-prefix"/>
  <xsl:arg name="title-block"/>
  <xsl:contents/>
</xsl:macro>
...
<xsl:template match="toc">
  <xsl:invoke macro="page-layout">
    <xsl:arg name="title-block">
      <xsl:text>Table of Contents - </xsl:text>
      <xsl:apply-templates select="../prestitle"/>
    </xsl:arg>
    <xsl:use-arg name="title-block"/>
    <xsl:apply-templates mode="toccreation" select="/">
  </xsl:invoke>
</xsl:template>
...
<xsl:template match="frame">
  <xsl:invoke macro="page-layout">
    <xsl:apply-templates/>
  </xsl:invoke>
</xsl:template>

In the above, matching a normal frame adds the default "title-block"
subtree to the result tree, while matching the toc frame adds the supplied
"title-block" subtree to the result tree.

Can someone think of a better name than "xsl:use-arg" to mark the injection
of the argument's subtree into the result tree?

............ Ken

--
G. Ken Holman         mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Crane Softwrights Ltd.  http://www.CraneSoftwrights.com/s/
Training:   http://www.CraneSoftwrights.com/s/schedule.htm
Resources: http://www.CraneSoftwrights.com/s/resources.htm
Shareware: http://www.CraneSoftwrights.com/s/shareware.htm
Next XSL Training (see training link):   WWW8 - 1999-05-11


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread