[Bug 5646] fn:put() is underspecified


           Summary: fn:put() is underspecified
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Platform: PC
        OS/Version: Windows NT
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Update Facility
        AssignedTo: andrew.eisenberg@us.ibm.com
        ReportedBy: mike@saxonica.com
         QAContact: public-qt-comments@w3.org

Some gaps in the the specification of fn:put():

(a) it nowhere says whether this is an updating expression or not. Presumably
this means it isn't. But it behaves in many ways like an updating expression; I
would have thought it should be one.

(b) it says "The results of fn:put do not become effective until after
completion of the query", but it doesn't actually say what is probably
intended, which is that the node that is serialized is the post-update node,
rather than the pre-update node.

(c) It's not clear why put() doesn't use the pending update list in the same
way as other updating expressions, and why it's not subject to similar conflict
analysis (for example writing two different nodes to the same URI)

(d) There seem to be no special static typing rules. Since the static type of
put() is always empty-sequence(), it would seem that under static typing it is
always an error.

Received on Thursday, 17 April 2008 21:00:14 UTC