- From: <bugzilla@jessica.w3.org>
- Date: Wed, 23 Sep 2015 18:40:30 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29146
Bug ID: 29146
Summary: [FO31] fn:transform options update
Product: XPath / XQuery / XSLT
Version: Proposed Recommendation
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P2
Component: Functions and Operators 3.1
Assignee: mike@saxonica.com
Reporter: abel.braaksma@xs4all.nl
QA Contact: public-qt-comments@w3.org
Target Milestone: ---
Since we are approaching CR for XSLT 3.0, I had a look at the fn:transform
function and had a few observations / suggestions / improvements (mainly w.r.t.
XSLT 3.0):
1) there should only be one of stylesheet-location/-text/-node present
2) stylesheet-base-uri can be made relative to the current base-uri in scope,
or relative to the stylesheet-location or -node.
3) base-output-uri should be allowed to be a relative URI, as most processors
currently take it as defaulting to the current stylesheet-base-uri. This can
also be the default if absent.
4) source-node, text says "required unless initial-template is defined", it is
also not required if initial-function is defined.
5) source-node: is defined as node(), but can (in XSLT 3.0) be any item, or
even sequence of items. Perhaps combine with initial-match-selection (see
below)?
5) initial-mode: if supplied, initial-template *and* initial-function must be
absent
7) initial-template: if supplied, initial-mode *and* initial-function must be
absent
8) initial-function: if supplied, initial-mode *and* initial-template must be
absent and source-node will be ignored.
9) if *none* of initial-mode/-template/-function is supplied, and if a
source-node is supplied, initial-mode is the #unnamed mode, or the mode defined
on the outermost stylesheet element in [xsl:]default-mode. If no source-node is
supplied, initial-template is xsl:initial-template (these rules follow the
rules in XSLT 3.0, xsl:initial-template is meant to be the "int main()" of the
stylesheet).
10) package-version: this is currently xs:decimal, but should be a string. XSLT
3.0 has a production for how the string is allowed to be created. It can take a
fixed version or a range. Valid are 1.1+, 2.3-alpha, 1.0-3.1 etc
11) package-version: if not supplied, default to "*"
12) package-name: if supplied, stylesheet-location/-node/-text should all be
absent and package-node must be present.
13) package-node: add a package-location and package-text similar to
stylesheet-location and stylesheet-text? At least one of those must be present
if package-name is specified.
14) packages, general. Since used packages are recognized by name (URI) it is
probably good to allow a parameter to set a map with key/value pairs for URI +
version number vs location.
15) packages: they can be precompiled or not. If not precompiled, it should be
made possible to set their static params (which are private to the package and
can collide).
16) initial-match-selection: it is now possible to have a different initial
match selection than a global context item. By default, they should (probably)
be set to source-node. The initial-match-selection can be any sequence of items
of any type, and can be empty. It only makes sense to specify it with
initial-mode.
As an after-thought, perhaps we can add a required option that specifies the
requested type of invocation. For instance: invocation-type: mode | template |
function. And instead of initial-template/-function/-mode we could settle with
initial-component, which, if absent defaults to the defaults of that component
(#unnamed mode, xsl:initial-template, function invocation has no default).
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Wednesday, 23 September 2015 18:40:33 UTC