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 4201 - Unique constraint misinterpretation.
Summary: Unique constraint misinterpretation.
Status: NEW
Alias: None
Product: XML Schema
Classification: Unclassified
Component: Structures: XSD Part 1 (show other bugs)
Version: 1.0 only
Hardware: All Windows 3.1
: P2 normal
Target Milestone: ---
Assignee: David Ezell
QA Contact: XML Schema comments list
URL:
Whiteboard:
Keywords:
Depends on: 2543
Blocks:
  Show dependency treegraph
 
Reported: 2007-01-12 15:57 UTC by Sandy Gao
Modified: 2012-12-04 00:53 UTC (History)
0 users

See Also:


Attachments

Description Sandy Gao 2007-01-12 15:57:10 UTC
(The same issue as bug 2543 that is opened against 1.1.)

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