Re: Derivation Valid (Extension): 1.2 attribute uses

Hi Harald,

> I do not understand this section:
> 1.2 Its {attribute uses} must be a subset of the {attribute uses} of
> the complex type definition itself, that is, for every attribute use
> in the {attribute uses} of the {base type definition}, there must be
> an attribute use in the {attribute uses} of the complex type
> definition itself whose {attribute declaration} has the same {name},
> {target namespace} and {type definition} as its attribute
> declaration.
>
> Before reading this I thougth that attributes, defined in the {base
> type definition} do not have to be listed in the extending complex
> type again.

Attributes that are specified in the base type definition do not have
to be listed in the extending complex type again.

The cause of your confusion, I think, is the fact that the {attribute
uses} property is distinct from the attribute declarations/references
within the extended type. Look at the XML representation of complex
type definitions, and you'll find the definition of the {attribute
uses} property, as follows:

  A union of sets of attribute uses as follows:

  1 The set of attribute uses corresponding to the <attribute>
  [children], if any.

  2 The {attribute uses} of the attribute groups ·resolved· to by the
  ·actual value·s of the ref [attribute] of the <attributeGroup>
  [children], if any.

  3 The {attribute uses} of the type definition ·resolved· to by the
  ·actual value· of the base [attribute]...

So the {attribute uses} on the extended complex type automatically
includes all the {attribute uses} of the base type.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/

Received on Thursday, 20 December 2001 11:23:47 UTC