W3C home > Mailing lists > Public > xmlschema-dev@w3.org > November 2005

RE: unique constraint interpretation.

From: Tishkin, Eugene <etishkin@mackenziefinancial.com>
Date: Fri, 18 Nov 2005 08:59:20 -0500
Message-ID: <9685B8A36EB4A344A2AD0CC3508262C8B8B919@MFMAILEVS1.mackenziefinancial.bz>
To: "Sandy Gao" <sandygao@ca.ibm.com>
Cc: <xmlschema-dev@w3.org>

In order to avoid misinterpretations I would like to suggest a change to the unique constraint definition as follows.
Add an additional clause into the 3.11.4 paragraph:


3.11.4 Identity-constraint Definition Validation Rules

...
 
4.1.1 The  <http://www.w3.org/TR/xmlschema-1/#key-tns> ·target node set· is a subset of the   <http://www.w3.org/TR/xmlschema-1/#key-qns> ·qualified node set·, that is, every member of the  <http://www.w3.org/TR/xmlschema-1/#key-tns> ·target node set· is also a member of the  <http://www.w3.org/TR/xmlschema-1/#key-qns> ·qualified node set· however not every member of   <http://www.w3.org/TR/xmlschema-1/#key-qns> ·taget node set· is a member of  <http://www.w3.org/TR/xmlschema-1/#key-qns> ·qualified node set·.
...

Thanks
Eugene.

-----Original Message-----
From: Sandy Gao [mailto:sandygao@ca.ibm.com]
Sent: Tuesday, November 15, 2005 11:03 PM
To: Tishkin, Eugene
Cc: xmlschema-dev@w3.org
Subject: Re: unique constraint interpretation.



Just re-read the relevant clause in the spec a few times and came to the conclusion that Xerces indeed has a bug. That is, the quoted conclusion is not correct, and the testcase attached to 18405 should be valid.

Thanks,
Sandy Gao
XML Parser Development, IBM Canada
(1-905) 413-3255
sandygao@ca.ibm.com




"Tishkin, Eugene" <etishkin@mackenziefinancial.com>
Sent by: xmlschema-dev-request@w3.org


11/09/2005 09:31 AM


To
<xmlschema-dev@w3.org>

cc

Subject
unique constraint interpretation.






Hi,
 
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.
=========================================================
 
Especially I'm interested in the conclusion:
 
"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."
 
Is this a correct interpretation of unique constraint?
 
Regards,
Eugene
 


This e-mail and any attachments may contain confidential information. Any
distributing, copying or reliance upon the contents of this e-mail by anyone other
than the intended recipient is strictly prohibited. If you have received this e-mail
accidentally, please delete it and notify the sender. Although this message has been
screened for viruses, we cannot guarantee that our virus scanner will detect all
viruses and take no responsibility for any damage or loss that may be caused by its
contents.







This e-mail and any attachments may contain confidential information. Any
distributing, copying or reliance upon the contents of this e-mail by anyone other
than the intended recipient is strictly prohibited. If you have received this e-mail
accidentally, please delete it and notify the sender. Although this message has been
screened for viruses, we cannot guarantee that our virus scanner will detect all
viruses and take no responsibility for any damage or loss that may be caused by its
contents.
Received on Friday, 18 November 2005 13:59:28 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:51 GMT