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 19670 - [XQ3.0] What does it mean to prohibit "all extensions"?
Summary: [XQ3.0] What does it mean to prohibit "all extensions"?
Status: CLOSED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XQuery 3.0 (show other bugs)
Version: Last Call drafts
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: 2012-10-23 16:33 UTC by Michael Kay
Modified: 2013-06-19 09:52 UTC (History)
0 users

See Also:


Attachments

Description Michael Kay 2012-10-23 16:33:53 UTC
XQuery 3.0 provides an option declaration whose effect is to disable all (vendor) extensions.

But the spec doesn't say what counts as a (vendor) extension.

Extending the grammar clearly is an extension, I assume.

What about pragmas in a vendor namespace - are these extensions? (The spec calls these "extension expressions" so I guess so).

What about option declarations in a vendor namespace?

What about implicit addition of functions, collations, types etc to the static and dynamic context? Are these extensions? Are they extensions only if added to the context "by default", or also if added by explicit user request, e.g. using an API?

The rules need to be made much more clear.
Comment 1 Jonathan Robie 2012-10-29 16:43:08 UTC
The Working Group adopted this resolution:

A named feature is a feature that is associated with a QName that allows to require or prohibit it with a require-feature or prohibit-feature option. Vendors SHOULD associate any extensions with a named feature.

The name all-extensions corresponds to the set of named features whose QName is not in the http://www.w3.org/2011/xquery-options namespace.
Comment 2 Michael Kay 2013-06-19 09:52:26 UTC
For the record, I don't think the resolution addressed the point made. But we've dropped require/prohibit, so the problem is no longer relevant, so I'm closing it.