W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2007

RE: Interaction of explicit attributes and wildcards

From: Michael Kay <mike@saxonica.com>
Date: Wed, 24 Jan 2007 17:35:36 -0000
To: "'Henry S. Thompson'" <ht@inf.ed.ac.uk>, "'srinivasarao vegunta'" <mukalsin@lycos.com>
Cc: <xmlschema-dev@w3.org>
Message-ID: <00a801c73fde$0f1da880$6401a8c0@turtle>

I'm not sure how my message of 8 Dec came to be reposted, but I'm glad it's
caused some discussion.

This situation can't occur with elements because UPA prevents an element
particle overlapping with an element wildcard particle. There's no
corresponding rule for attributes: the explicit attribute wins over the
attribute wildcard. It's not clear why the rules for elements/attributes
here are asymmetric.

Rather than making this case an error (an invalid schema), it would seem
more helpful to define the rules so that use="prohibited" means what it
says: an attribute of this name is prohibited, despite the presence of a
wildcard that would otherwise permit it.

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: xmlschema-dev-request@w3.org 
> [mailto:xmlschema-dev-request@w3.org] On Behalf Of Henry S. Thompson
> Sent: 24 January 2007 13:49
> To: srinivasarao vegunta
> Cc: xmlschema-dev@w3.org
> Subject: Re: Interaction of explicit attributes and wildcards
> 
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> [Please _don't_ use HTML-format mail to public lists -- not 
> all of us are using Outlook!]
> 
> srinivasarao vegunta writes:
> 
>  According to several schema processors, (Saxon, Xerces, MS 
> .NET), the        
>  following instance:                                          
>                 
>  <e att1="banana"/>                                           
>                 
>  is valid against the following schema:                       
>                 
>  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"       
>                 
>  elementFormDefault="qualified" 
> attributeFormDefault="unqualified">           
>  <xs:complexType name="B">                                    
>                 
>  <xs:sequence/>                                               
>                 
>  <xs:attribute name="att1" use="optional" type="xs:decimal"/> 
>                 
>  <xs:anyAttribute namespace="##local"                         
>                 
>  processContents="skip"/>                                     
>                 
>  </xs:complexType>                                            
>                 
>  <xs:complexType name="R">                                    
>                 
>  <xs:complexContent>                                          
>                 
>  <xs:restriction base="B">                                    
>                 
>  <xs:attribute name="att1" use="prohibited"/>                 
>                 
>  <xs:anyAttribute namespace="##local"                         
>                 
>  processContents="skip"/>                                     
>                 
>  </xs:restriction>                                            
>                 
>  </xs:complexContent>                                         
>                 
>  </xs:complexType>                                            
>                 
>  <xs:element name="e" type="R"/>                              
>                 
>  </xs:schema>                                                 
>                 
>  But change the element declaration to <xs:element name="e" 
> type="B"/>, and   
>  validation fails, saying that "banana" is not a valid 
> xs:decimal (the same   
>  set of schema processors agree on this).                     
>                 
>  Surely the element cannot be a valid instance of R unless it 
> is also a valid 
>  instance of B?                                               
>                 
> 
> You have hit on one of the areas where the Schema REC fails 
> to live up to its own promise that restrictions accept 
> subsets of their base.
> 
> The behaviour you describe is conformant, it follows all the 
> explicit rules in the spec. for checking valid restrictions.  
> It's just that those rules aren't quite 'right'.
> 
> The XML Schema WG expects to fix this problem in v1.1.
> 
> ht
> - --
>  Henry S. Thompson, HCRC Language Technology Group, 
> University of Edinburgh
>                      Half-time member of W3C Team
>     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 
> 131 650-4440
>             Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
>                    URL: http://www.ltg.ed.ac.uk/~ht/ [mail 
> really from me _always_ has this .sig -- mail without it is 
> forged spam] -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.6 (GNU/Linux)
> 
> iD8DBQFFt2PbkjnJixAXWBoRArzHAJsFzcU5+hgsZ61Wsiq7Ue2dTu8n4QCeJKNC
> FFyL2hvq4zjr4bzRiZuf31I=
> =pVkY
> -----END PGP SIGNATURE-----
> 
Received on Wednesday, 24 January 2007 17:35:59 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:14:57 GMT