This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
(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