attribute use="prohibited"

Hi all,
Can somebody help me understanding the function of use="prohibited"
please.  I can't find any validity or constraint on schema rules to help
me out.
My current understanding is that the function use="prohibited" would
only be useful when restricting a complex type's attribute.  I _assume_
the idea is that when restricting an attribute whose boolean part is
false, one can repeat the attribute and replace the use="optional" with
use="prohibited".  But I can not find ( in derivation-ok-restriction )
any test that says this is a valid restriction.  Furthermore, this
functionality seems to have the same effect as if I just do not repeat
the original attribute, which is allowed under
derivation-ok-restriction.1.3.  So just omitting the attribute in the
restricted ct has the same effect as repeating it with
use="prohibited".  The only way I can see there being a difference
between this omission and repeating it with use="prohibited", is _if_
there was some constraint on schema rule within Derivation
Valid(Extension) ( cos-ct-extends) that prevents adding an attribute
that has been previously prohibited.
Examples (excuse namespace inconsistencies please)

<complexType name="B">
  <attribute name="ineedsleep" type="boolean" use="optional">
</complexType>

<complexType name="DOne">
  <complexContent>
    <restriction base="B"/>
  <complexContent>
</complexType>

<complexType name="DTwo">
  <complexContent>
    <restriction base="B">
      <attribute name="ineedsleep" type="boolean" use="prohibited"/>
    </restriction>
  <complexContent>
</complexType>

<complexType name="DOneOne">
  <complexContent>
    <extension base="DOne">
      <attribute name="ineedsleep" type="boolean" />
     </extension>
  <complexContent>
</complexType>

<complexType name="DTwoOne">
  <complexContent>
    <extension base="DTwo">
      <attribute name="ineedsleep" type="boolean" />
     </extension>
  <complexContent>
</complexType>

My understanding is:
DOne and DTwo basically the same.  DOneOne and DTwoOne basically the
same.  Both DOneOne and DTwoOne allowed by the specs currently but I
believe that DTwoOne should not be allowed.

any insight will be appreciated.
cheers,
mick.

ps.  I apologise if this mail doesn't read well, its been a long day...
goodnight.

Received on Monday, 19 February 2001 07:06:45 UTC