[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: Portability function-available tips

Subject: RE: Portability function-available tips
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 9 Jan 2004 10:17:59 -0000
foo template
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.