- From: <bugzilla@wiggum.w3.org>
- Date: Wed, 14 Mar 2007 15:35:28 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4392 Summary: Typing issues with // Product: XPath / XQuery / XSLT Version: Recommendation Platform: All OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: Functions and Operators AssignedTo: ashok.malhotra@oracle.com ReportedBy: nick@cbcl.co.uk QAContact: public-qt-comments@w3.org This is along a similar vein to #4273 and #3818, but has some added issues with the typing of fn:root hence I am reporting as a separate bug We are using the expression "//@status = 'failed'" where the context is an untyped document "document (element (*,xs:unTyped))" This fails to type check as @status is found to be anyAtomicType. The reason this happens is "//" is normalized to "fn:root(self::node()) treat as document-node)/descendant-or-self::node()/" As mentioned in #3818 the treat as document-node throw away typing information (namely that the document is untyped) so all data in return nodes will be xs:anyType. With our suggested static typing extensions in comment #16 we run into the problem that fn:root returns node()? which is not a subtype of document-node (which is presumably why the treat as expression was used in the first place). Therefore for the "//" expression to be able to work in a static type checking environment with untyped documents I think there need to be explicit static typing rules for fn:root which return the appropriate type rather than by use of treat as in the path expression.
Received on Wednesday, 14 March 2007 15:37:05 UTC