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 30297 - Compatibility of overridden functions
Summary: Compatibility of overridden functions
Status: RESOLVED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XSLT 3.0 (show other bugs)
Version: Recommendation
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Michael Kay
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-15 08:25 UTC by Michael Kay
Modified: 2019-02-20 00:33 UTC (History)
1 user (show)

See Also:


Attachments

Description Michael Kay 2018-10-15 08:25:37 UTC
In discussing compatibility of overriding functions, ยง3.5.3.3 says

If the overridden function specifies streamable="yes" then the overriding function also specifies streamable="yes", and in addition, it has the same posture and sweep as the function that it overrides.

What it means to say is:

The explicit or implicit value of the streamability attribute in the overriding function must be the same as the explicit or implicit value of the streamability attribute in the overridden function.
Comment 1 Abel Braaksma 2018-10-24 13:41:01 UTC
I actually think this was deliberate, I remember (but cannot readily find the reference) that we discussed that a non-streamable stylesheet function can be overridden by a streamable stylesheet function, but not the other way around.

Hence the current rule is written specifically to refer only to the situation where streamable="yes" is specified.

Your change would suggest that that is no longer the case and would make this change more than just editorial.
Comment 2 Michael Kay 2018-10-24 13:47:02 UTC
OK, but my main point was that xsl:function does not have an @streamable attribute, it has an @streamability attribute. Also, a function per se does not have a posture and sweep.

Perhaps the correct text is:

If the overridden function has a streamability attribute with a value other than "unspecified", then the overriding function must have a streamability attribute with the same value.
Comment 3 Abel Braaksma 2018-10-24 16:30:33 UTC
I didn't realize that, yes that makes sense.