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

RE: [xsl] Portability function-available tips

Subject: RE: [xsl] Portability function-available tips
From: "Andrew Welch" <AWelch@xxxxxxxxxxxxxxx>
Date: Fri, 9 Jan 2004 09:50:43 -0000

> > Dimitre has a version of msxml that supports exsl,
> > alternatively I believe you can put in an msxsl script 
> > element that will be ignored by other processors but which 
> > implements exsl:node-set (essentially just needs to be an 
> > identity function)
> > 
> > David
> Ahhh excellent - exactly the kind of thing I was looking for, 
> thanks David

Hmmm, maybe it wasn't :)

Or at least, I can't see how to take advantage of it.

As an example, I currently build a temporary tree and convert it to a

<xsl:variable name="foo-rtf">
  <xsl:apply-templates mode="build"/>
<xsl:variable name="foo" select="exsl:node-set($foo-rtf)"/>

I then use that variable in several places by using:

<xsl:for-each select="$foo">

The only way I can see of making the stylesheet portable is to replace
all occurances of the above for-each, with this choose/when:

  <xsl:when test="function-available(msxml:node-set)">
    <xsl:for-each select="msxml:node-set($foo-rtf)">
      <xsl:call-template name="foo-template"/>
  <xsl:when test="function-available(exsl:node-set)">
    <xsl:for-each select="exsl:node-set($foo-rtf)">
      <xsl:call-template name="foo-template"/>
    <xsl:call-template name="error"/>

Not only that, but to avoid code duplication I need to separate out the
body of the for-each into a named template - which is even more code.

How can I integrate the msxml:script idea to avoid using

(ps is this the way that everyone keeps there stylesheet portable?)


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

Current Thread