Redeclaring attribute in derived type

Sorry if this has already been asked and answered, but the search function 
doesn't work blah blah blah, you know how that go. 

This is a question about schema structure.

Can I redeclare an attribute when deriving a complexType?  For example, if I 
want to create a generic type that specifies a minimal content model and one 
or more attributes and I want to derive other types from that, adding to the 
content model. and restricting the value of an attribute of the base type by 
setting a fixed or default value or restricting the value, etc.  e.g. 

[code]

..

<xsd:complexType name="BaseType">

  <xsd:sequence>

    <xsd:element ref="JMM:someElementABC" />

  </xsd:sequence>

  <xsd:attribute name="id" type="xsd:ID" />

</xsd:complexType>


<xsd:complexType name="DerivedType">

  <xsd:complexContent>

    <xsd:extension base="JMM:BaseType">

      <xsd:sequence>

        <xsd:element ref="JMM:someElementXYZ" />

      </xsd:sequence>

      <xsd:attribute name="id" type="xsd:ID" fixed="Derived" />

    </xsd:extension>

  </xsd:complexContent>

</xsd:complexType>

..

[/code]

The spec /seems/ to rule this out, but it would provide a useful facility for 
me, and the XSV schema validator linked from the W3C schema page doesn't seem 
to have a problem with it. 

Relevant parts of the spec:

[

Complex Type Definition with simple content Schema Component

{attribute uses}

A union of sets of attribute uses as follows 
1 The set of attribute uses corresponding to the <attribute> [children], if 
any. ...
3 if the type definition ·resolved· to by the ·actual value· of the base 
[attribute] is a complex type definition, the {attribute uses} of that type 
definition, ... 

]


[

3.4.6 Constraints on Complex Type Definition Schema Components

Schema Component Constraint: Complex Type Definition Properties Correct 

All of the following must be true:

..
4 Two distinct attribute declarations in the {attribute uses} must not have 
identical {name}s and {target namespace}s. ...

]


What do you make of this?

(please CC me when replying)

--> Jesse

Received on Wednesday, 19 December 2001 21:21:48 UTC