W3C home > Mailing lists > Public > www-xml-schema-comments@w3.org > April to June 2003

lazy attribute wildcard conflicts with restriction

From: Xan Gregg <xan@tibco.com>
Date: Mon, 21 Apr 2003 11:58:53 -0400
Message-ID: <339902DC0E58D411986A00B0D03D84320186AC0D@extmail.rtp.tibco.com>
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

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:50:01 UTC