Re: [xsl] Stylesheet parameters and packages?

Subject: Re: [xsl] Stylesheet parameters and packages?
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 7 Jun 2020 21:55:45 -0000
I'm afraid asking for a "rule of thumb" is over-optimistic; as always, the
devil is in the detail.

For a $debug option you need to decide whether you want a static parameter or
a dynamic parameter (do you want users to be able to switch debugging on at
execution time, or must it be built-in at compile time?

Static parameters do have some limitations and there are some inconsistencies
in the spec: see https://github.com/w3c/qtspecs/issues/5.

Do you need to enable debugging at the package level, or is it a global
option?

If package A uses B and C, and if there's a $debug parameter in both B and C,
then I think you're going to get a conflict, because both are visible in A. I
think you can tackle that by having two parameters $debug-B and $debug-C with
different names, and have overriding xsl:variable's in A that setsthe value of
both to the value of parameter $debug-A.

But to be honest, there's not much practical experience yet of developing with
XSLT 3.0 packages; you're pioneering here and I hope you'll share your
experiences as a contribution to shared understanding.

Michael Kay
Saxonica

> On 7 Jun 2020, at 18:40, David Birnbaum djbpitt@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Dear xsl-list,
>
> Is there a rule of thumb for managing stylesheet parameters when using a
package hierarchy, that is, in situations where packages use other packages? I
would like to set a $debug parameter in all packages, both the lowest-level
collections of user-defined functions and the higher-level packages that
import those libraries, and that are then imported, themselves, by other
stylesheets. But as I fiddle with the options, either I am notified by the
mid-level package that a parameter has not been declared there (even though it
is declared in a lower-level package that I am using in the mid-level one, and
the XSLT 3.0 spec tells me that stylesheet parameters are obligatorily public)
or, when I declare the parameter in the mid-level package, that it conflicts
with the lower-level declaration. In case this is helpful, the point of the
$debug parameter is that I want to write diagnostic messages to stderr using
<xsl:message>  when the $debug parameter value is true, and I need to be able
to generate messages of this sort from both the low-level and mid-level
packages.
>
> Sincerely,
>
> David
> djbpitt@xxxxxxxxx <mailto:djbpitt@xxxxxxxxx>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
email <>)

Current Thread