<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>29441</bug_id>
          
          <creation_ts>2016-02-09 17:16:04 +0000</creation_ts>
          <short_desc>[xslt3.0] Definition of &quot;extension functions&quot;</short_desc>
          <delta_ts>2016-10-06 18:42:26 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>XPath / XQuery / XSLT</product>
          <component>XSLT 3.0</component>
          <version>Candidate Recommendation</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Kay">mike</reporter>
          <assigned_to name="Michael Kay">mike</assigned_to>
          
          
          <qa_contact name="Mailing list for public feedback on specs from XSL and XML Query WGs">public-qt-comments</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>124932</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2016-02-09 17:16:04 +0000</bug_when>
    <thetext>Extension functions are defined as &quot;anything that is not one of the following...&quot;. The list of things that are not extension functions should include XPath inline functions and functions created dynamically by operations such as partial function application.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124933</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2016-02-09 18:21:09 +0000</bug_when>
    <thetext>Suggested definition, and elaboration:

[Definition: An extension function is a function that is available for use within an XPath expression, other than a function defined directly or by reference in this XSLT specification.] Extension functions typically are either defined by the implementer of the XSLT processor, or by a user using implementer-supplied APIs. 

The following are NOT classed as extension functions: core functions defined in [Functions and Operators 3.0]; additional functions defined in this XSLT specification; constructor functions named after an atomic type; stylesheet functions defined using an xsl:function declaration; XPath 3.0 inline functions; functions returned by (higher-order) functions such as load-xquery-module and random-number-generator.

Functions returned as the result of evaluating a construct such as a named function reference or a partial function application or a call on function-lookup are classified as extension functions if the construct includes a reference to an extension function. 

NOTE: 

It is possible in principle for named extension functions to be present in the dynamic context even though they are not present in the static context, and vice versa. This can arise, for example, when the environment in which a stylesheet is executed differs from the environment in which it is compiled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125044</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2016-02-15 15:10:44 +0000</bug_when>
    <thetext>The following appears to work:

An extension function is a named function introduced to the static or dynamic context by mechanisms outside the scope of this specification.

followed by a Note to explain the ramifications.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>