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 6541 - Assertions and in-scope functions
Summary: Assertions and in-scope functions
Status: CLOSED FIXED
Alias: None
Product: XML Schema
Classification: Unclassified
Component: Structures: XSD Part 1 (show other bugs)
Version: 1.1 only
Hardware: PC Windows NT
: P2 normal
Target Milestone: ---
Assignee: David Ezell
QA Contact: XML Schema comments list
URL:
Whiteboard:
Keywords: editorial, resolved
Depends on:
Blocks:
 
Reported: 2009-02-08 19:57 UTC by Michael Kay
Modified: 2009-03-16 14:03 UTC (History)
1 user (show)

See Also:


Attachments

Description Michael Kay 2009-02-08 19:57:40 UTC
The current rules for assertions state that the whole of the XPath 2.0 syntax must be implemented, but they leave the set of functions in the function library entirely implementation-defined (3.13.6.2 clause 2.2.8).

This seems to leave an enormous interoperability hole. Users, especially industry bodies producing schemas for an industry, need to have confidence that their schemas will be usable across a range of schema processors. To enable them to use assertions while achieving this level of interoperability, they need some kind of assurance about the minumum set of functions that will be available.

We could define the minimum set to be (a) all the constructor functions for built in types plus (b) all the functions defined in the F+O namespace for XPath 2.0. Or we could define a smaller set by doing some fairly arbitrary cherry-picking from that set. But a minimum set that is empty is fairly unusable.
Comment 1 Sandy Gao 2009-02-09 16:22:20 UTC
> (a) all the constructor functions for
> built in types plus (b) all the functions defined in the F+O namespace for
> XPath 2.0.

Trying to understand the proposal. Is this the same as "everything required by XPath 2.0"? If not, what's left out? If yes, is there a shorter way of saying "everything" than "(a) + (b)"?
Comment 2 Michael Kay 2009-02-09 16:49:16 UTC
XPath 2.0 leaves it to the host language to define which functions are supported; it merely provides a repertoire to choose from:

(a) functions in the fn namespace in F+O
(b) constructors for built-in types
(c) constructors for user-defined types
(d) functions defined by the host language spec e.g. XSLT or XForms
(e) user-defined functions written in XQuery or XSLT
(f) functions defined and provided by the implementor
(g) extension/external user-written functions written e.g. in Java or C#


I don't think there is a simple way of saying that the minimum for XML Schema is (a)+(b).
Comment 3 David Ezell 2009-02-27 17:12:58 UTC
Proposal is to add a sentence to section 3.13.6.2, 2.2.8 to say that the function signatures for assertions will include all in categories (a) and (b) as described in the bug report; this will be identified as a feature at risk; also optionally say that for identity constraints the set of function signatures can be empty.
Comment 4 Sandy Gao 2009-03-16 13:42:36 UTC
During its 2009-03-13 telecon, the schema WG adopted a proposal to address this issue.

The proposal can be found at (member-only):
  http://www.w3.org/XML/Group/2004/06/xmlschema-1/structures.omni.20090313.html

Changes include:
1. In bullet 2.2.8 of "3.13.6.2 XPath Valid", removed the special treatment for Type Alternative, and added a note indicating that the Assertions and Type Alternatives have special requirements for "function signatures".
2. Updated "3.13.6.1 Assertion Properties Correct" for "function signatures" requirements, as suggested in comment #3.

With these changes, the WG believes that the issue raised in this bug report is fully addressed. I'm marking this RESOLVED accordingly.

Michael, as the persons who opened and reopened this issue, if you would indicate your concurrence with or dissent from the WG's disposition of the comment by closing or reopening the issue, we'll be grateful. If we don't hear from you in the next two weeks, we'll assume that silence implies consent.