- From: Mukul Gandhi <gandhi.mukul@gmail.com>
- Date: Fri, 14 Aug 2009 10:32:37 +0530
- To: Michael Kay <mike@saxonica.com>
- Cc: xmlschema-dev@w3.org
Thanks, very much Mike for the answers. This has helped me. On Fri, Aug 14, 2009 at 7:45 AM, Michael Kay<mike@saxonica.com> wrote: >> I have following questions about inheritable attributes, >> in XML Schema 1.1. > > Good questions, and I had to do some careful reading to find the answers. >> >> 1. supposing there is an attribute declaration, like following: >> >> (a global declaration, and child of xs:schema element) >> >> <xs:attribute name="TEST_ATTR" type="xs:integer" /> >> >> then, can I define an attribute reference like following? >> >> (part of complex type definition) >> >> <xs:attribute ref="TEST_ATTR" inheritable="true" /> > > Yes, you can. >> >> 2. supposing, we have following attribute declarations >> present in XML Schema 1.1: >> >> (a global declaration, and child of xs:schema element) >> >> <xs:attribute name="TEST_ATTR" type="xs:integer" >> inheritable="false" /> >> >> (part of complex type definition) >> >> <xs:attribute ref="TEST_ATTR" inheritable="true" /> >> >> These two attribute declarations have conflicting >> inheritable=xs:boolean values (one is true, and other is false). >> >> Should the XML Schema 1.1 processor, give an error in this >> case? or, one of the inheritable declarations (either name=.. >> or ref=..) will take precedence (if yes, then which one)? >> > > The value on the reference takes priority over the one on the declaration. > This is the same rule as for "fixed" and "default". The relevant rule is in > 3.2.2.3, the Mapping Rules for References to Top-level Attribute > Declarations, where it says that the value of the {inheritable} property on > the attribute use component is: "The .actual value. of the inheritable > [attribute], if present, otherwise {attribute declaration}.{inheritable}."; > and when it comes to validation rules, it's the property on the attribute > use that counts, except in the case where there is no relevant attribute use > (for example, if the attribute matches a wildcard), in which case it's the > value on the declaration that counts. > > Regards, > > Michael Kay > http://www.saxonica.com/ > http://twitter.com/michaelhkay -- Regards, Mukul Gandhi
Received on Friday, 14 August 2009 05:03:31 UTC