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
--~--