Michael Kay
Michael Kay
During discussion of PR #1066 there was much debate about how best to handle normalization of (typically CRLF) line endings. Perhaps it's very unlikely that CRLF line endings will make...
The syntax for inline functions is, by design, similar to the syntax for function tests. So it's confusing that you can abbreviate "function" to "fn" in the first case but...
Fix #934 String comparisons in fn:deep-equal Fix #1167 Merge $collation and $options params of fn:deep-equal
To avoid the ugly third parameter to deep-equal which will almost always be set to (), merge $collation into the $options parameter, whose type becomes `(map(*) | xs:string)?` for backwards...
The code showing how strings should be compared in deep-equal has gone awry, it doesn't match the prose. In equal-strings(), the lines ``` let $n1 := if ($options?whitespace = "normalize"))...
This is in response to a bug/feature request from a Saxon user: see https://saxonica.plan.io/issues/6408 Currently (a) the round() function gives no control over rounding mode (towards zero, towards positive infinity,...
There can be little doubt that the fact that an unprefixed name in XPath fails to select an unprefixed element in the source document is one of the major gotcha's,...
Some observations: 1. array:replace would be more versatile if multiple positions could be specified, rather than just a single position. 2. if all positions are selected, the function becomes identical...
I propose to provide `!!` as a simple mapping operator for arrays. For example `[(1,2,3), (4.5.6)]!!count(.)` returns `[3, 3]`. The expression on the LHS must be an array. The expression...
I've been developing a complex query involving grouping, windowing, and sorting, and finding it very hard to debug. I propose a new clause that can be included anywhere in a...