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 2543 - Unique constraint misinterpretation.
Summary: Unique constraint misinterpretation.
Status: RESOLVED WONTFIX
Alias: None
Product: XML Schema
Classification: Unclassified
Component: Structures: XSD Part 1 (show other bugs)
Version: 1.1 only
Hardware: All All
: P4 normal
Target Milestone: ---
Assignee: C. M. Sperberg-McQueen
QA Contact: XML Schema comments list
URL:
Whiteboard: important, work, idc cluster
Keywords: editorial
Depends on:
Blocks: 4201 4202
  Show dependency treegraph
 
Reported: 2005-11-21 14:54 UTC by Yevgeniy Tishkin
Modified: 2007-01-12 16:02 UTC (History)
1 user (show)

See Also:


Attachments

Description Yevgeniy Tishkin 2005-11-21 14:54:29 UTC
Hi,
 
Proposed change for the unique constraint definition is:
Change paragraph 3.11.4 by adding a new clause 4.1.1 to make it clear that not
all fields must be present.

3.11.4 Identity-constraint Definition Validation Rules
...
  
4.1.1 The ·target node set· is a subset of the ·qualified node set·, that is,
every member of the ·target node set· is also a member of the ·qualified node
set· however not every member of ·taget node set· is a member of ·qualified node
set·.
...
 
 
Why this is important?
 
Xerces parser has a bug 18405, which has not been resolved since 2003.
The reason for not fixing is :
" ... I (and some others I've asked) think 
that the spec seems open to interpretation here; so I'm marking this bug 
invalid for now.  I'd encourage you to pose a question to the Schema working 
group via their comments list; if you get a response that demonstrates that 
your reading is correct, please reopen this bug with the appropriate text and 
I'll try and fix it when I get a chance."
 
The below is the comment from Xerces parser BUG 18405 report:
================================================ 
"3 For each node in the
·target node set·
all of the
{fields},
with that node as the context node, evaluate to either an empty node-set or a 
node-set with exactly one member, which must have a simple type."

The target node set is the set of nodes on which the selector is matched.  Note 
that this condition must hold for *any* identity constraint; only in bullet 4 
of the tableau are the differences between key and unique described.  
Therefore, it seems clear that, if a selector matches, then either all of the 
fields must match or none of them must match; even for xsd:unique, you can't 
have some fields matching.
=========================================================
 
 
Thanks,
Eugene
Comment 1 Sandy Gao 2007-01-12 16:02:54 UTC
The Schema WG discussed this issue at its 2007-01-05 telecon, and decided to close this bug without adopting the suggested changes.

The 1.0 specification may be unclear with respect to whether "unique" values are allowed to be "partial". The updated rules in 1.1 is believed to have clarified this.

It may still be helpful to have a note to make this explicit to avoid further mis-interpretation. Bug 4202 is opened to track this, which is purely editorial.