[Bug 5312] [XSLT 2.1] Separate compilation of stylesheet modules

http://www.w3.org/Bugs/Public/show_bug.cgi?id=5312





--- Comment #1 from Michael Kay <mike@saxonica.com>  2008-09-03 09:07:27 ---
Some further design ideas to meet this requirement:

Allow a stylesheet module to specify library="yes|no", default is "no". If
library="yes" is specified, then the idea is that it is suitable for separate
compilation (along with the modules that it includes or imports). In a library
module:

(a) you cannot use the context node when initializing global variables

(b) you must declare which global variables, functions, named templates, and
attribute sets are visible outside the module by use of the attribute
public="yes"

(c) all references to variables, functions, named templates etc must be
satisfied within the module (or the modules it imports/includes); they cannot
refer to variables etc supplied by the caller. However we allow them to be
satisfied by a variable, function etc declared with abstract="yes", in which
case the caller must supply a concrete implementation.

(d) in all public variables, functions, and templates, all types ("as"
attributes) must be explicit.

(e) a public object can be declared with final="yes" to prevent it being
overridden

(f) a mode can also be declared with final="yes". The calling stylesheet cannot
provide template rules in such a mode. A mode declared with public="no" cannot
be invoked from outside the library.

(g) when overriding a public variable, function, or named template, the
overriding object must (i) declare override="yes", (ii) have a compatible
signature. This means the parameter types and return type must be compatible
(details TBA), required parameters cannot be made optional, and so on.

(h) constructs such as xsl:decimal-format, xsl:key, xsl:namespace-alias are
non-overridable: if a value is declared in a library module, that value is used
in the library module, regardless of anything the caller declares.


-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Wednesday, 3 September 2008 09:08:01 UTC