Support #5965
closed
string-join implementation always uses XPath 3.1 implementation
Category:
XPath conformance
Fixed in Maintenance Release:
Description
Related to issue [[https://saxonica.plan.io/issues/2738]], it seems the situation hasn't effectively changed. Since that issue is closed a while now, I raise a new issue.
Essentially the implementation for string-join() should reject any non-string item arguments with a XPTY0004 when XPathCompiler has set the language version to 2.0.
Currently I'm using Saxon 9.9 (upgrading to 12.1 soon). Looking at XPath20FunctionSet, it uses the same StringJoin.class as the XPath31FunctionSet. Was the 2.0-specific implementation dropped again in 9.9?
Kind regards,
Johan Walters
- Copied from Support #2738: string-join implementation always uses XPath 3.1 implementation added
We made a conscious decision to drop the requirement for 100% XPath 2.0 conformance in cases where the only difference would be to raise an error for run-time conditions that XPath 3.1 allows but XPath 2.0 does not. This is documented at
https://www.saxonica.com/documentation12/index.html#!conformance/xpath20
The example of string-join() accepting non-string arguments is given as a specific example.
We felt that the only adverse impact would be on people (like yourself) running conformance tests. Sorry for the inconvenience.
That is a fair decision. And the inconvenience is indeed limited to a failing conformance test.
I got confused by the comments on the other ticket, where there was mention of a patch on 9.7 to have a 2nd string-join implementation, and where the 9.8 function sets were also presented as a 'solution'. Therefore I thought an exception was made for string-join.
But as said, the current situation is fine.
- Status changed from New to Closed
Please register to edit this issue
Also available in: Atom
PDF