[Bug 30049] [XSLT30] Request for clarification if xsl:evaluate example supposed to implement function-lookup is supposed to return empty sequence if function is not found

https://www.w3.org/Bugs/Public/show_bug.cgi?id=30049

Michael Kay <mike@saxonica.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Michael Kay <mike@saxonica.com> ---
The WG reviewed the bug and agreed with the proposed changes.

I have applied the following changes:

(a) change the example to catch XTDE3160 and return () if the function is
unknown.

(b) withdraw the assertion that the function has exactly the same effect as
fn:function-lookup, and add the note: "The main difference between this
function and the standard fn:function-lookup function is that there are
differences in the functions that are visible: for example fn:function-lookup
gives access to user-defined functions with private visibility, whereas
xsl:evaluate does not.

(c) I have added to 5.3.3.2 (additional components of the dynamic context) the
entry:

The *named functions* (representing the functions accessible using
function-available or function-lookup include all the functions available in
the static context, and may also include an additional implementation-defined
set of functions that are available dynamically but not statically.

Note: This set therefore includes some functions that are not available for
dynamic calling using <elcode>xsl:evaluate</elcode>, for example stylesheet
function whose visibility is private, and XSLT-defined functions such as
current and key.

Note: The rule that all functions present in the static context must always be
present in the dynamic context is a consistency constraint. The effect of
violating a consistency constraint is implementation-defined: it does not
necessarily lead to an error. For example, if the version of a used package
that is available at evaluation time does not include all public user-defined
functions that were available in the version that was used at analysis time,
then a processor <rfc2119>may</rfc2119> recover by signaling an error only if
the function is actually called. Conversely, if the evaluation-time version of
the package includes additional public functions, these may be included in the
dynamic context even though they were absent from the static context. Thus
dynamic calling of functions using function-lookup may be an effective strategy
for coping with variations between versions of a library package on which a
stylesheet depends.

(d) Also in 5.3.3 I have added the catch-all: "All other aspects of the dynamic
context (for example,the current date and time, the implicit timezone, the
default language, calendar, and place, the available documents, text resources,
and collections, and the default collection &mdash; details vary slightly
between XPath 3.0 and XPath 3.1) are implementation-defined, and do not change
in the course of a single transformation." and I have deleted the existing
entries which this rule subsumes (current-date-time, implicit-timezone,
collections).

(d) In 10.4.2 (dynamic context for xsl:evaluate) I have added the same rule as
in (c), but without the notes.

(e) In the existing note in 10.4.2 I have changed "document" to "collection" in
the list of example functions whose use may be restricted, because the
"document" function is not available in xsl:evaluate.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Friday, 27 January 2017 10:56:40 UTC