[Bug 2543] Unique constraint misinterpretation.

http://www.w3.org/Bugs/Public/show_bug.cgi?id=2543

           Summary: Unique constraint misinterpretation.
           Product: XML Schema
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Structures: XSD Part 1
        AssignedTo: ht@w3.org
        ReportedBy: etishkin@mackenziefinancial.com
         QAContact: www-xml-schema-comments@w3.org


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

Received on Monday, 21 November 2005 14:54:34 UTC