If function

Below are comments from Michael Kay on the tail end of a discussion of
the boolean and control operators.
Dr. Kay made these suggestions about the avoiding future conflict
between XForms 1.0 if(0 and XPath 2.0 if().
I believe we should consider these options for XForms 1.1.

Furthermore, he made some comments about namespaces prefixes on XPath
functions in general; interested readers should consult the xml-dev


-----Original Message-----
From: Michael Kay [mailto:mike@saxonica.com] 
Sent: Friday, December 15, 2006 5:10 PM
To: Klotz, Leigh; 'Rick Marshall'
Cc: 'Ken North'; xml-dev@lists.xml.org
Subject: RE: [xml-dev] XML design of ((a and b) or c)

> Personally, I would welcome any helpful suggestions you have 
> about upward compatibility, with XForms 1.1 and with XPath 2.0.

I think one useful idea would be to enable a function prefix (or absence
a prefix) to be bound essentially to a search path containing multiple
namespaces. The WG rejected this notion when I proposed it, but that's
because I presented it badly. In fact I think it's currently legal: we
constrain how you build a library of functions and assign them to a
namespace, and one way of doing it is to assemble a new namespace from
multiple existing namespaces with a priority rule for resolving any
a sort of "virtual function namespace". That mechanism would allow you
put the XForms functions in a separate namespace and then allow the user
bind a prefix to a URI that identifies a search path containing first
XForms functions and then the XPath 2.0 functions.

That leaves "if", which is a nasty problem. Technically you can probably
disambiguate the XForms function from the XPath 2.0 conditional
by lookahead based on the presence of "then" after the ")", but that's
difficult to specify, and adds yet another nasty glitch to XPath
Orbeon Forms has this problem because it already uses XPath 2.0, and I
it simply forces the user to prefix the "if" function.

Michael Kay

Received on Saturday, 16 December 2006 01:15:30 UTC