This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 28175 - [XP3.1] Statically known functions, and XSLT 3.0 packages
Summary: [XP3.1] Statically known functions, and XSLT 3.0 packages
Status: RESOLVED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XPath 3.1 (show other bugs)
Version: Candidate Recommendation
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Jonathan Robie
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-03-09 12:05 UTC by Michael Kay
Modified: 2015-07-14 00:54 UTC (History)
1 user (show)

See Also:


Attachments

Description Michael Kay 2015-03-09 12:05:01 UTC
The description of the static context in XPath 3.1 says:

<quote>
[Definition: Statically known function signatures. This is a mapping from (expanded QName, arity) to function signatureDM31. ] The entries in this mapping define the set of statically known functions — those functions that are available to be called from a static function call, or referenced from a named function reference. Each such function is uniquely identified by its expanded QName and arity (number of parameters). Given a statically known function's expanded QName and arity, this component supplies the function's signatureDM31, which specifies various static properties of the function, including types.
</quote>

Most of the time, the spec is careful to make clear that it is only the function signatures that are present in the static context -- not actual function implementations.

For XSLT 3.0 packages, this is essential. For example, XSLT 3.0 makes it possible to reference an abstract function whose implementation will be supplied later in a different package. The function signature is known statically, but the implementation is not.

The only place where the XPath 3.1 spec slips up on this distinction is in fact in the paragraph cited above, which is the only place that talks of "statically known functions" rather than statically known function signatures.

Suggested rewording:

<quote>
[Definition: Statically known function signatures. This is a mapping from (expanded QName, arity) to function signatureDM31. ] The entries in this mapping define the signatures of the functions that are available to be called from a static function call, or referenced from a named function reference. Each such function signature is uniquely identified by its expanded QName and arity (number of parameters). The function signatureDM31 defines various static properties of the function, including types.
</quote>
Comment 1 Andrew Coleman 2015-04-24 10:29:16 UTC
At the teleconference on 2015-04-21, the WG agreed to adopt the proposed wording.
Comment 2 Michael Kay 2015-07-06 08:58:34 UTC
This change has not been [fully] applied in the current draft specification. There is still a reference to "statically known functions" which was removed by the accepted revision.
Comment 3 Jonathan Robie 2015-07-14 00:54:10 UTC
Nice catch.  Fixed now.