RE: can an attribute prohibited by restriction be added back through a subsequent extension?

> -----Original Message-----
> From: xmlschema-dev-request@w3.org 
> [mailto:xmlschema-dev-request@w3.org] On Behalf Of Henry S. Thompson
> Sent: Thursday, January 22, 2004 08:56
> To: holstege@mathling.com
> Cc: Dare Obasanjo; xmlschema-dev@w3.org; 
> www-xml-schema-comments@w3.org
> Subject: Re: can an attribute prohibited by restriction be 
> added back through a subsequent extension?
> 
> 
> 
> The REC says in clause 1.5 of Schema Component Constraint: 
> Derivation Valid (Extension) [1]:
> 
>  Note: This requirement ensures that nothing removed by a 
> restriction  is subsequently added back by an extension.
> 
> That (rather than clause 1.2 as I think Mary was suggesting) 
> is where the REC tries to answer "no" to the question of 
> "whether an attribute [or element] removed by restriction 
> could be added back in an extension."  However the constraint 
> itself, in my view, fails to achieve this, so processors 
> which allow it are not broken.
> 
> I think we should fix this one way or another -- what do you think is
> best:
> 
>   1) No constraint on re-introduction;
>   2) No re-introduction of any kind (apparent intention of 
> current REC);
>   3) Re-introduction of unchanged originals only (what the current REC
>      actually says)?


I don't see any good reason for forbidding re-introduction.  What was the
rationale?

Allowing the re-introduced attribute-use to have different properties from
the original attribute-use depends on whether the new attribute use is
considered to be "the same" as the original one or another component with
the same name.

Since restriction types do not retain components for "prohibited" attributes
(there is no such thing as a "prohibited attribute-use"), one could say that
the restriction "forgets" the old attribute-use, and therefore there is no
good reason why a subsequent extension should not be allowed to add an
attribute with the same name but different properties.

I noticed that something similar happens with element declarations.

Suppose that a base type has a local element declaration particle E with
some properties, with min occurs 0 and max occurs 1.  A restriction kills
this particle.  A subsequent extension adds a local element declaration
particle with the same name (E) but a different type definition, to the end
of the content.  I don't believe this is forbidden - it *would* be forbidden
if the original particle E were still present, because we would then have
two distinct local element declarations with the same name but different
types in the symbol space of the complex type.  But since the first particle
was not inherited by the restriction, the two particles "E" (introduced at
different steps of the derivation hierarchy) never coexist in the same type.

If the above is true (and we allow the two particles "E" to have different
types on the grounds that they never coexist in the same type), do we really
need to be more restrictive for attributes?

Alessandro Triglia
OSS Nokalva



> 
> ht
> 
> [1] http://www.w3.org/TR/xmlschema-1/#cos-ct-extends
> -- 
>  Henry S. Thompson, HCRC Language Technology Group, 
> University of Edinburgh
>                      Half-time member of W3C Team
>     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 
> 131 650-4440
>             Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
>                    URL: http://www.ltg.ed.ac.uk/~ht/
> [mail really from me _always_ has this .sig -- mail without 
> it is forged spam]
> 
> 

Received on Thursday, 22 January 2004 12:23:26 UTC