[Bug 4347] Deprecate ID(S)/IDREF(S), scrap constraints, redefine in terms of "as if" key/keyref

http://www.w3.org/Bugs/Public/show_bug.cgi?id=4347

           Summary: Deprecate ID(S)/IDREF(S), scrap constraints, redefine in
                    terms of "as if" key/keyref
           Product: XML Schema
           Version: 1.1 only
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Structures: XSD Part 1
        AssignedTo: cmsmcq@w3.org
        ReportedBy: ht@inf.ed.ac.uk
         QAContact: www-xml-schema-comments@w3.org


Proposal:

1) Deprecate the builtin simple types ID, IDS, IDREF, IDREFS;

2) Remove all existing co-constraints wrt ID;

3) Remove all the special validation rules and _ad-hoc_ PSVI structures
associated with ID/IDREF;

4) Define the semantics of ID/IDREF 'as if' every attr/elt of type ID
contributed to a synthetic 'unique' constraint on the validation root of the
form
  <xs:select xpath='[all possible parents]'/>
  <xs:field xpath='elt or @attr, as appropriate'/>
and every attr/elt of type IDREF contributed similarly to a synthetic 'keyref'
constraint

5) Change the {fields} property of Identity Constraints to be a property record
containing {xpath} and a new {distributed} property with a boolean value,
mapped from xs:field/@distributed, with semantics of 'false' being _status
quo_, and 'true' being, roughly "when this xpath matches something validated as
a list, treat each item in that list as a field value"

6) Use that new property to define the semantics of IDS and IDREFS, parallel to
(4)

Received on Friday, 23 February 2007 18:24:52 UTC