- From: Michael Dyck <MichaelDyck@home.com>
- Date: Mon, 24 Sep 2001 00:23:23 -0700
- To: www-xml-query-comments@w3.org
XQuery 1.0 and XPath 2.0 Data Model W3C Working Draft 7 June 2001 The pseudo-code appears to allow multiple declarations of the same identifier, as long as it is declared as functions with disjoint domain categories. Thus: 4. parent : Node -> Sequence(0,1)<...> 8. parent : SchemaComponent -> Sequence(0,1)<...> 4. string-value : Node -> xs:string 5.2 string-value : SimpleValue -> xs:string 4.1 children : DocumentNode -> Sequence(1,*)<...> 4.2 children : ElementNode -> Sequence<...> 4.2 declaration : ElementNode -> SchemaComponent 4.3 declaration : AttributeNode -> SchemaComponent 4.2 type : ElementNode -> SchemaComponent 4.3 type : AttributeNode -> SchemaComponent 5.2 type : SimpleValue -> SchemaComponent 4.2 typed-value : ElementNode -> Sequence<SimpleValue> 4.3 typed-value : AttributeNode -> Sequence<SimpleValue> That's fine. But consider the declarations of "name": 4. name : Node -> Sequence(0,1)<xs:QName> 4.2 name : ElementNode -> expanded-QName 4.3 name : AttributeNode -> xs:QName 8. name : SchemaComponent -> xs:QName ElementNode and AttributeNode are subcategories of Node, and therefore not disjoint from it. Presumably, the second and third declarations are meant to denote special cases of the first, rather than being on an equal footing with it. But there is a different syntax for such specializations, introduced in 4.1 Documents: name(DocumentNode) : Sequence(0,0)<xs:QName> Therefore, I think the those two declarations should be changed to: 4.2 name(ElementNode) : xs:QName 4.3 name(AttributeNode) : xs:QName (In 4.2, I also changed "expanded-QName" to "xs:QName" -- see my previous posting.) -Michael Dyck
Received on Monday, 24 September 2001 03:26:14 UTC