[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 17:46:45 UTC