Subject: RE: [xsl] Portability function-available tips From: "Michael Kay" <mhk@xxxxxxxxx> Date: Fri, 9 Jan 2004 10:17:59 -0000 |
Two other suggestions for how to tackle this: (a) put the processor-dependent code in an external XML entity, and use an EntityResolver to bring in the right version of the external entity at stylesheet compile-time. (b) write a processor-dependent stylesheet overlay that imports the main logic of the stylesheet and overrides the processor-specific parts (for example, the global variable "foo" in your example below). Use this overlay as the nominated stylesheet for your transformation. Michael Kay > > As an example, I currently build a temporary tree and convert it to a > node-set: > > <xsl:variable name="foo-rtf"> > <xsl:apply-templates mode="build"/> > </xsl:variable> > <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"> > <xsl:apply-templates/> > </xsl:for-each> > > 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:choose> > <xsl:when test="function-available(msxml:node-set)"> > <xsl:for-each select="msxml:node-set($foo-rtf)"> > <xsl:call-template name="foo-template"/> > </xsl:for-each> > </xsl:when> > <xsl:when test="function-available(exsl:node-set)"> > <xsl:for-each select="exsl:node-set($foo-rtf)"> > <xsl:call-template name="foo-template"/> > </xsl:for-each> > </xsl:when> > <xsl:otherwise> > <xsl:call-template name="error"/> > </xsl:otherwise> > </xsl:choose> > > 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 > function-available? > > (ps is this the way that everyone keeps there stylesheet portable?) > > cheers > andrew > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Portability function-avai, Andrew Welch | Thread | Re: [xsl] Portability function-avai, David Carlisle |
[xsl] Reusing Variables!!, Robert A. van Ginkel | Date | RE: [xsl] How to assign a nodelist , Michael Kay |
Month |