- From: Xan Gregg <xan@tibco.com>
- Date: Mon, 21 Apr 2003 11:58:53 -0400
- To: "'www-xml-schema-comments@w3.org'" <www-xml-schema-comments@w3.org>
This is a recap of an possible erratum discussed within the Schema IG. Because attribute wildcards have a "lazy" behavior, it's possible for an apparently-valid restriction to violate the general notion of restriction. By "lazy" I mean the property that an attribute-wildcard will only match an attribute-information-item (AII) if no other attribute-use matches the AII. Best demonstrated by example: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="B"> <xs:attribute name="FOO" type="xs:int"/> <xs:anyAttribute processContents="skip"/> </xs:complexType> <xs:complexType name="A"> <xs:complexContent> <xs:restriction base="B"> <xs:attribute name="FOO" type="xs:int" use="prohibited" /> <xs:anyAttribute processContents="skip" /> </xs:restriction> </xs:complexContent> </xs:complexType> </xs:schema> I believe this is a valid restriction per the rules of restriction, but not by the general definition in Section 2, which includes Members of a type, A, whose definition is a ·restriction· of the definition of another type, B, are always members of type B as well. B doesn't accept an element with attribute FOO="abc", but A does accept it. That's because A doesn't contain an attribute-use for FOO, so the attribute-wildcard validates FOO in A. xan Xan Gregg TIBCO Software, Inc. www.tibco.com
Received on Monday, 21 April 2003 12:06:04 UTC