[Bug 2259] [xqueryx] xqx:constructorFunctionExpr

http://www.w3.org/Bugs/Public/show_bug.cgi?id=2259





------- Additional Comments From davidc@nag.co.uk  2005-09-20 10:31 -------

I agree that they behave like casts, but casting is functional, this is not like
a node test which also uses function syntax but is not a function.

A system writing XQueryX (for example an XQuery to XQueryX convertor) has no way
of knowing if a function is a "constructor function". In the case of the
predefined schema types it may know, but in general once you have imported
a schema or module or two then any xx:f(foo) call is just a call to some
possibly system defined XPath function. It may be a constructor function
corresponding to a schema defined type xx:f or it may be an external system call
to some pile of Java, it isn't possible to tell by analysing the XQuery
Expression and so it's not possible to make this distinction in the XQueryX.
So, practically speaking, any XQueryX system _has_ to accept constructor
functions marked up as FunctionCall. (Unless the stylesheet can somehow be made
to flag an error, it is a normative requirement that such functions are
accepted, as they translate to a valid XQuery Expression.)

Given that, the separate element as an alternative markup for constructor
functions seems to add little.

A more practical yes-no question. My software currently converts the entire
XQuery test suite to XQueryX without ever (having the possibility of) generating
an xqx:constructorFunctionExpr element. Once the conformance criteria for
XQueryX are finalised, is such a system going to be conformant?
If the conformance requirements said that xqx:constructorFunctionExpr should be
used, and I changed the system to use this for _all_ one-argument functions
(practically speaking, the only alternative I have) would that be conformant?


David

Received on Tuesday, 20 September 2005 10:31:19 UTC