This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
Common sense seems to dictate that casting to abstract types is not allowed. However, the only hint I could find is in places where the text mentions that casting to xs:NOTATION is not allowed *because* it is an abstract type. The closest I got was in 19.3.2, which says: "It is always possible to cast an atomic value A to a type T if the relation A instance of T is true, provided that T is not an abstract type." However, this indicates that casting is *not always possible*. It doesn't (necessarily) say that casting to a parent that is abstract is *always* a failure. Furthermore, sections 19.3.3 and 19.3.4 do not mention abstract types at all (and I'm unsure the text there covers TT of abstract type). Unless I am misunderstanding these sections, I propose to add a (tiny) section under 19.3, something like: 19.3.1 Casting to abstract types If TT is an abstract type, casting always fails. It doesn't matter in this case if TT is a parent type of ST, or if TT is equal to ST.
We concluded that the paragraphs in 9.1 that exclude casting to xs:NOTATION, xs:anyAtomicType, or xs:anySimpleType are adequate.
For sake of reference: during the discussion it became apparent that simple types cannot be abstract (by XSD rules), only complex types can, and that the text in the spec means "abstract type" in a different vein than the W3C XML Schema says.