- From: TAN Kuan Hui <kuanhui@mobileworkspace.com>
- Date: Thu, 24 Jan 2002 09:49:59 +0800
- To: <www-ql@w3.org>
Hi, Would XQuery's type system be easier to understand if we define its type to (always) consists of the following type-components Unit-Type(QName) + Content-Type(QName) + Occurrence to be orthogonal along 3 hierarchies as follows, // Unit-Type(QName) item(*:*) == anyTree(*:*) |-- node(*:*) [7 node types ?] | |-- anyElement(*:*) == Element(*:*) | | |-- Element(QName) | | | |-- anyAttribute(*:*) == Attribute(*:*) | | |-- Attribute(QName) | | | |-- Comment(*:*) | | | |-- anyProcessingInstruction(*:*) | |-- ProcessingInstruction(NCName) | |-- anySimpleType(*:*) { appears to simultaneously define |-- SimpleType(QName) { the unit-type and content-type //Content-Type(QName) anyType(*:*) |-- anySimpleType(*:*) == SimpleType(*:*) | |-- SimpleType(QName) | |-- <hierarchy for built-in type follows> | |-- anyComplexType(*:*) == ComplexType(*:*) |-- ComplexType(QName) // OccurrenceIndicator(min,max) // - since the value of an XQuery expression is always a sequence Star(0,*) |-- Plus(1,*) |-- QMark(0,1) Firstly, casting is independent on each of the hierarchy. Secondly, up/down casting is legal only if the cast remains on the same lineage. Lastly, if any type-component is not defined, it defaults to its respective root. Thanks. Kuan Hui
Received on Wednesday, 23 January 2002 20:50:14 UTC