- From: <bugzilla@jessica.w3.org>
- Date: Thu, 12 Mar 2015 08:23:19 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28196
--- Comment #1 from Michael Kay <mike@saxonica.com> ---
To take an example of the problem, consider a call that attempts to delete all
invalid characters from JSON input by doing:
parse-json($in, map{'fallback':function($s){""}})
It turns out this doesn't work, because the function is the wrong type. It has
to be written
parse-json($in, map{'fallback':function($s as xs:string) as xs:string {""}})
The extra verbiage is all telling the system what it could easily work out for
itself...
A pragmatic solution might be to relax the required type, so instead of
requiring
function($s as xs:string) as xs:string
the required type becomes
function($s as xs:string) as item()*
and we then specify what happens dynamically if the returned value isn't a
single string. The first call above then becomes legal. There are precedents
for this, for example fn:remove() takes xs:integer rather than
xs:positiveInteger as the second argument, to allow the function to be called
more easily.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Thursday, 12 March 2015 08:23:21 UTC