W3C home > Mailing lists > Public > xmlschema-dev@w3.org > May 2004

RE: Enforcing IDs in XML Schema

From: Bob Schloss <rschloss@us.ibm.com>
Date: Tue, 4 May 2004 11:25:41 -0400
To: "Simon Kampa" <simon.kampa@stasys.co.uk>
Cc: xmlschema-dev@w3.org
Message-ID: <OFEF874FD2.E29398E5-ON85256E8A.00546FF4-85256E8A.0054BFBA@us.ibm.com>





Do you really need these attributes to IDs?  IDs should never be duplicated
within the same XML document .

<items>
             <item ident="1">...</item>
             <item ident="2">...</item>
             <item ident="3">...</item>
</items>
<things>
             <thing ident="2">...</thing>
             <thing ident="3">...</thing>
             <thing ident="4">...</thing>
</things>

You can use UNIQUE to say that the values of the ident attribute across all
<item> elements have to be unique,
and the same thing for all values of the ident attribute across all <thing>
elements.

Thanks,
Bob




                                                                           
             "Simon Kampa"                                                 
             <simon.kampa@stas                                             
             ys.co.uk>                                                  To 
             Sent by:                  <xmlschema-dev@w3.org>              
             xmlschema-dev-req                                          cc 
             uest@w3.org                                                   
                                                                   Subject 
                                       RE: Enforcing IDs in XML Schema     
             05/04/2004 11:18                                              
             AM                                                            
                                                                           
                                                                           
                                                                           
                                                                           





Hi,

Thanks for the tips so far.

However, I'm having difficulties getting that approach to work in a
scenario like this:

<items>
             <item id="1">...</item>
             <item id="2">...</item>
             <item id="3">...</item>
</items>
<things>
             <thing id="2">...</thing>
             <thing id="3">...</thing>
             <thing id="4">...</thing>
</things>

Within each section the IDs must be unique. But, the same ID can appear
again in a different section (e.g. in this example the ID values 2 and 3
appear twice).

Any ideas on how this would be expressed?

Thanks!

--
Simon Kampa

> -----Original Message-----
> From: Bob Schloss [mailto:rschloss@us.ibm.com]
> Sent: 03 May 2004 18:48
> To: Simon Kampa
> Cc: xmlschema-dev@w3.org
> Subject: Re: Enforcing IDs in XML Schema
>
>
>
>
>
>
> Simon,
>
> If there is an element which is the parent element of both the
> definition   element information items
> and the
> use_definition    element information items,
> you could specify identity-definition constraints as part of
> the element
> definition, specfically you could specify "key" and "keyref".
>
> See section 5.2 "Keys and their references" in the W3C XML
> Schema Part 0:
> Primer -
> http://www.w3.org/TR/xmlschema-0/#specifying%20Keys&theirRefs
>
> Bob Schloss
> XML/XSL Transformational Systems - Extensible Technologies
> IBM Thomas J Watson Research Center
> Yorktown Heights, New York, USA
> http://www.research.ibm.com/people/s/bschloss
>
>
>
>
>
>
>              "Simon Kampa"
>
>              <simon.kampa@stas
>
>              ys.co.uk>
>           To
>              Sent by:                  <xmlschema-dev@w3.org>
>
>              xmlschema-dev-req
>           cc
>              uest@w3.org
>
>
>      Subject
>                                        Enforcing IDs in XML
> Schema
>              04/30/2004 06:04
>
>              AM
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Hi,
>
> I would like to use XML Schema to enforce something like the
> following:
>
> <definition id="12345">
>  ...
> </definition>
>
> <use_definitions>
>   <def ref="12345"/>
>   ...
> </use_definitions>
>
>
> So, if an ID is used as a reference in the <def> element, there HAS TO
> BE a correpsonding <definition> element with the same ID. Is
> it possible
> to do this in XML Schema? Ideas?
>
> Thanks.
>
> --
> Simon
>
> ______________________________________________________________
> __________
> This email and any files transmitted with it are intended
> solely for the
> use of the individual or entity to whom they are addressed. They may
> contain sensitive and/or in confidence information that is covered by
> legal, professional or other privilege. No mistake in transmission is
> intended to waive or compromise any such privilege. If you
> have received
> this email in error please notify the sender at once.
>
> This email has been scanned for viruses on behalf of STASYS Limited by
> the MessageLabs Email Security System.
> ______________________________________________________________
> __________
>
>
>
>
> ______________________________________________________________
> __________
> This email has been scanned for viruses on behalf of STASYS Limited by
> the MessageLabs Email Security System.
> ______________________________________________________________
> __________
>

________________________________________________________________________
This email and any files transmitted with it are intended solely for the
use of the individual or entity to whom they are addressed. They may
contain sensitive and/or in confidence information that is covered by
legal, professional or other privilege. No mistake in transmission is
intended to waive or compromise any such privilege. If you have received
this email in error please notify the sender at once.

This email has been scanned for viruses on behalf of STASYS Limited by
the MessageLabs Email Security System.
________________________________________________________________________
Received on Tuesday, 4 May 2004 11:29:24 GMT

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