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

RE: [xsl] initial template parameters


Subject: RE: [xsl] initial template parameters
From: "Robby Pelssers" <robby.pelssers@xxxxxxxxx>
Date: Thu, 18 Mar 2010 15:57:05 +0100

Or you would have to keep a package folder structure  like most programming
languages do and even in javascript it is an adopted approach to create
namespace like structures to have no clashes in variable names.


Com.mycompany.xslt.pdf
  - content2pdf.xslt

      <xsl:param name="com_mycompany_xslt_pdf_content2pdf_param1"
select="'defaultvalue'"/>


Com.mycompany.xslt.html
  -content2html.xslt
      <xsl:param name="com_mycompany_xslt_html_content2html_param1"
select="'anotherdefaultvalue'"/>

So if you would include both xslt's in another main.xslt you would at least
have no confusion about parameters.

I have to say I don't follow this approach myself because I can oversee and am
the only maintainer of the stylesheets.  But if you were to write xslt's which
would be used by 3rd parties this might not be such a bad approach.

What do you all think?

Kind regards,
Robby

-----Original Message-----
From: Max Toro [mailto:maxtoroq@xxxxxxxxx]
Sent: Thursday, March 18, 2010 3:40 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] initial template parameters

> more portable you can have a simple stylesheet with just a named template
> that initialises its parameters from global parameters and then xsl:imports
> the original stylesheet. this means you need a wrapper stylesheet for any
> top level named template that you want to use, but most stylesheets don't
> have _so_ many choices for initial named template.

Yes, I though of this solution too, but seems like too much trouble.

About stylesheets not having many entry point choices, I think this
limitation helps to enforce that stylesheets have a single purpose,
while they could have many purposes based on related functionality.
Like object-oriented languages, you can call a class constructor
passing parameters (global parameters in XSLT) and then call a method
passing other parameters (initial template parameters).
--
Max

2010/3/18 David Carlisle <davidc@xxxxxxxxx>:
> On 18/03/2010 14:13, Max Toro wrote:
>>> more portable you can have a simple stylesheet with just a named template
> that initialises its parameters from global parameters and then xsl:imports
> the original stylesheet. this means you need a wrapper stylesheet for any
> top level named template that you want to use, but most stylesheets don't
> have _so_ many choices for initial named template.
>> The only solution I can think of is using extension methods to pull
>> the parameters from the environment, something like this:
>>
>> <xsl:param name="color" value="(ext:get-parameter('color'), 'red')[1]"
>> as="xs:string"/>
>

>
> David
>
> ________________________________________________________________________
> The Numerical Algorithms Group Ltd is a company registered in England
> and Wales with company number 1249803. The registered office is:
> Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
>
> This e-mail has been scanned for all viruses by Star. The service is
> powered by MessageLabs.
> ________________________________________________________________________


Current Thread