Bugzilla – Bug 19670
[XQ3.0] What does it mean to prohibit "all extensions"?
Last modified: 2013-06-19 09:52:26 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.
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.
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.