- 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