W3C home > Mailing lists > Public > xmlschema-dev@w3.org > August 2001

Re: key/keyref problem

From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
Date: 22 Aug 2001 22:20:19 +0100
To: "Jun Wang" <t-junw@microsoft.com>
Cc: "Aung Aung" <aaung@microsoft.com>, <xmlschema-dev@w3.org>
Message-ID: <f5bbsl7n65o.fsf@cogsci.ed.ac.uk>
"Jun Wang" <t-junw@microsoft.com> writes:

> Could you give out some comments according to some skipped parts in
> Aung's emails?
>  
> Part I :
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Aung:
> >> B:  (this is what you and Eric come agreeement on how it should work,
>  
> >> if that is the case, how do you defind the scopeof
> >> the key 'B'? it cannot be all the way to the root element, can it? ) 
> >> <root> <element name="a">
> >>    <keyref   refer="B">
> >>    <element name="b">
> >>         <key   name="B">
> >>    </element>
> >> </element>
> >> </root>
>  
> Priscilla:
> >The scope of the key 'B' is the element 'b'.  All values of the
> field(s) have to be unique within an instance of 'b'.
>  
> Aung:
> 1. If scope of the key 'B' is the element 'b', then how can the <keyref
> refer="B">, which is outside of scope of element 'b', see the <key
> name="B"> ?
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>  
> I have the same question as Aung.  And if you can give out some specific
> example or issue in Databases area which brings you to think
> IDConstraint should be implemented this way, our understanding will be
> even clearer...

The declaration for any element which may contain <b> elements at any
depth can sensibly contain a keyref definition which references that key.


> Part II: 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Aung:
> >> How about this: should this work? (how/why?)
> >> C:
> >> <root>
> >> <element name="a">
> >>         <key   name="A">
> >> </element>
> >> <element name="b">
> >>         <keyref   refer="A">
> >> </element>
> >> </root>
>  
> Priscilla:
> > No, because the key and keyref have to be defined in the same element,
> or
> the key has to be defined in a child element.  Neither is the case here.

Not quite, Priscilla -- since <b> is unconstrained, in a valid
instance an <a> might occur inside it, so the above is OK.

> Aung:
> OK, simply put, we agree with 2 easy cases, lets put it here ...
> case 2. if key and keyref are declared in different scope it, should
> fail.
> <r>
>     <a>
>         key=1
>     </a>
>     <b>
>         keyref=1    
>     </b>
> </r>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Yes, fails.

ht
-- 
  Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
          W3C Fellow 1999--2001, part-time member of W3C Team
     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
	    Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
		     URL: http://www.ltg.ed.ac.uk/~ht/
Received on Wednesday, 22 August 2001 17:19:58 GMT

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