- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 12 Jan 2007 15:57:10 +0000
- To: www-xml-schema-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4201
Summary: Unique constraint misinterpretation.
Product: XML Schema
Version: 1.0 only
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Structures: XSD Part 1
AssignedTo: cmsmcq@w3.org
ReportedBy: sandygao@ca.ibm.com
QAContact: www-xml-schema-comments@w3.org
BugsThisDependsOn: 2543
(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
Received on Friday, 12 January 2007 15:57:19 UTC