W3C home > Mailing lists > Public > xmlschema-dev@w3.org > June 2009

RE: [XML Schema 1.1] A little confused about inheritable attributes

From: Michael Kay <mike@saxonica.com>
Date: Mon, 29 Jun 2009 19:07:23 +0100
To: "'Costello, Roger L.'" <costello@mitre.org>, <xmlschema-dev@w3.org>
Message-ID: <64A67A7A3E6D49F295C3FA3569F101F7@Sealion>
Whether or not the attributes start-time and end-time can appear on the
Beverage element is determined by the type definition of BeverageType (and
its two alternatives), which you have not shown us. If they don't mention
these attributes, then they can't appear. They are merely treated as if they
appeared for the purpose of evaluating the alternative tests.

We did consider a different approach where "inheritable" was another way of
defining a default value for an attribute. But some felt that was a step too
far. The current design is a bit of a compromise - it was motivated
particularly by use cases involving xml:lang.

Regards,

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



> -----Original Message-----
> From: xmlschema-dev-request@w3.org 
> [mailto:xmlschema-dev-request@w3.org] On Behalf Of Costello, Roger L.
> Sent: 29 June 2009 18:46
> To: xmlschema-dev@w3.org
> Subject: [XML Schema 1.1] A little confused about inheritable 
> attributes
> 
> 
> Hi Folks,
> 
> I know that by declaring an attribute to be inheritable, 
> nested elements can use the attribute in their <assert> and 
> <alternative> elements.
> 
> But suppose an attribute is declared to be both inheritable 
> and required (use="required"). Does that mean nested elements 
> must display that attribute in instance documents?
> 
> For example, <Meeting> has two required, inheritable attributes:
> 
> <element name="Meeting">
>     <complexType>
>         <sequence>
>             <element name="Beverage" type="b:BeverageType">
>                <alternative test="@end-time le '12:00:00'" 
> type="b:MorningBeverage" />
>                <alternative test="@end-time gt '12:00:00'" 
> type="b:AfternoonBeverage" />
>             </xs:element>
>         </sequence>
>         <attribute name="start-time" type="xs:time" 
> use="required" inheritable="true" />
>         <attribute name="end-time" type="xs:time" 
> use="required" inheritable="true" />
>     </complexType>
> </element>
> 
> In an instance document must the <Beverage> element have the 
> two inherited attributes:
> 
> <Meeting start-time="___" end-time="___">
> 
>     <Beverage start-time="___" end-time="___">
>         ...
>     </Beverage>
> 
> </Meeting>
> 
> 
> 
> /Roger
Received on Monday, 29 June 2009 18:08:01 GMT

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