[Bug 5063] Inheritance of some SML reference constraints

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





------- Comment #13 from sandygao@ca.ibm.com  2008-02-08 20:42 -------
Sorry for the belated comments.

1. Section 5.1.2.1 (old 4.4.2.1), all "c" bullets should now be removed.

Our 5063 resolution is essentially: target* are inherited through new
properties on complex types, and NOT on elements inside the restriction types.

2. Section 5.1.2.2 (old 4.4.2.2), bullet 3 needs to be removed.

It should be allowed for EB to have target* and ED to not have them (in which
case complex type inheritance takes effect). The restriction requirements
should be enforce on the complex types, not the elements. (See below #7.)

3. #1 and #2 also apply to identity constraints: section 5.2.1.1 (old 4.5.1.1,
the last paragraph should be removed) and section 5.2.1.2 (old 4.5.1.2, delete
bullet 13).

4. Section 5.3.2.1, should be more precise about "the name of an element
declaration". {name} of element declarations is only the local part. We need
both that and the namespace.

5. Same section, the descriptions are not precise. When target* are inherited,
the value of {target * constraint list} may correspond to element declarations
in the base type, and not those contained in the current complex type.

6. To be consistent 5.3.2.2 title should be "mapping from schema".

7. Bullet 3.a in 5.3.2.2, need to be explicit about what "is a valid
restriction" mean. Either repeat the rules or refer to the relevant sections
(5.1.2.2 and 5.2.1.2).

8. Need to introduce complex type validation rules (e.g. 5.3.2.3 Instance
Validity Rules) that enforce {target * constraint list} properties. Something
like: if E is an instance of CTD, C is a child of E, and C matches an element
declaration contained in CTD, and CTD's {target * list} has a value for C's
name, then the corresponding target* constraint is check for C, in a way
similar to what's defined in 5.1.2.3 and 5.2.1.3.

Note that it's important to say "C matches an element declaration contained in
CTD" and not "C's name matches a member in the {target * list}", because C may
match a wildcard and a global element declaration which has a different target*
constraint.

Received on Friday, 8 February 2008 20:42:21 UTC