This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
It's not clear in the adaptive method how the QName of a function is to be handled. The text says A function item is serialized to the representation "function fn:name#A" where fn:name is the function name and A is the arity. If the function is anonymous, fn:name is replaced by the string "(anonymous)". Note: The following examples illustrate this rule: exists#1 is serialized as function exists#1 fn:exists#1 is serialized as function fn:exists#1 Q{http://www.w3.org/2005/xpath-functions}exists#1 is serialized as function exists#1 Now, "fn:name" suggests using a lexical QName. But the examples then confuse this. What is "exists#1"? If we assume the default namespace for functions, it's the same thing as "fn:exists#1". The system can't be expected to remember how the QName was originally written. I suggest: A function item is serialized to the representation "function name#A" where name is a representation of the function name and A is the arity. If the function name is in one of the namespaces (...) then the name is output as a lexical QName using the conventional prefix "fn", "math", "map", "array", or "xs" as appropriate; if it is in any other namespace or in no namespace, then the name is output as a URI-qualified name (that is, "Q{uri}local"). If the function is anonymous, name is replaced by the string "(anonymous)".
At the teleconference on 2015-06-16, the WG agreed to adopt the proposed wording.