xsl-list
[Top] [All Lists]

Re: [xsl] Stylesheet parameters and packages?

2020-06-07 16:55:49
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(_at_)gmail(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> 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(_at_)gmail(_dot_)com <mailto:djbpitt(_at_)gmail(_dot_)com>
XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by 
email <>)
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>