- From: Michael Anderson <michael@research.canon.com.au>
- Date: Mon, 19 Feb 2001 23:06:42 +1100
- To: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
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