This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
This is transferred from the comment made by email here: https://lists.w3.org/Archives/Member/w3c-xsl-query/2013Jan/0003.html We say in 2.5.5 derives-from( AT, ET ) returns true if AT is derived from ET by restriction or extension, or if ET is a union type of which AT is a member type. If this were the case, then when a function expects union(xs:string, xs:decimal), it would be a type error to supply an xs:integer. Furthermore, "union type" should be "pure union type". This sentence is immediately followed by a paraphrase that says "formally, ...", and the paraphrase gives the a more complete definition. But there is no indication that the sentence quoted is to be regarded as incomplete or informal. A better definition might be: derives-from( AT, ET ) returns true if any of the following conditions applies: * AT is ET * ET is the base type of AT * ET is a pure union type of which AT is a member type * There is a type MT such that derives-from(AT, MT) and derives-from(MT, ET) The problem is exemplified by test instanceof138. The expected result for this test assumes that restrictedDate is substitutable for a union type that includes the base type of restrictedDate as one of its members.
The Working Group accepted the proposed change.