- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 08 Jun 2007 17:57:15 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4611 Summary: [UPD] Better error specification for updating function with declared return type Product: XPath / XQuery / XSLT Version: Working drafts Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Update Facility AssignedTo: andrew.eisenberg@us.ibm.com ReportedBy: john.snelson@oracle.com QAContact: public-qt-comments@w3.org In section 2.5.6.2.a the XQuery Update specification states: as SequenceType must not be specified because, in the current design, the XDM instance returned by an updating expression is always the empty sequence. The EBNF grammar production for a function declaration is this: [26] FunctionDecl ::= "declare" "updating"? "function" QName "(" ParamList? ")" ("as" SequenceType)? (EnclosedExpr | "external") Since the grammar production does not disallow the specifying of a return type, I believe we need to take one of two actions: 1) Specify an error code for the static error to be raised in the event of a return type being present. 2) Tighten the EBNF grammar production to disallow a return type when "updating" is used, thus including such a use under error [err:XPST0003]. This could be done by replacing grammar production 26 with the following: [26] FunctionDecl ::= NonUpdatingFunctionDecl | UpdatingFunctionDecl [26a] NonUpdatingFunctionDecl ::= "declare" "function" QName "(" ParamList? ")" ("as" SequenceType)? (EnclosedExpr | "external") [26b] UpdatingFunctionDecl ::= "declare" "updating" "function" QName "(" ParamList? ")" (EnclosedExpr | "external")
Received on Friday, 8 June 2007 17:57:17 UTC