Bug #1992
closed
Template pattern incorrectly identified as never matching
Category:
XSLT conformance
Fixed in Maintenance Release:
Description
The template:
xsl:template match="@*[xp:is.AVT(.)]"
with function:
<xsl:function name="xp:is.AVT" as="xs:boolean">
<xsl:param name="test" as="attribute()"/>
<xsl:sequence select="contains($test,'{')"/>
</xsl:function>
is incorrectly warned as 'Pattern will never match anything', and does not execute. Works correctly in 9.5.1.3. Running as SaxonEE and the fault occurs with both -opt:0 and byte code generation.
Files
Simplest test is to to run the stylesheet with itself as input.
Sorry - first line should read:
xsl:template match="@*[xp:is.AVT(.)]"
(There appears to be a problem in input within the text box - the predicate should read:
xp:is.AVT'OPENBRACKET' 'DOT' 'CLOSEBRACKET'
- Priority changed from High to Normal
This is caused by an error in the patch for bug #1908 (and reveals the wisdom of our normal policy of never trying to implement performance improvements in a maintenance release...). Basically that patch works for patterns that match element nodes, but not for those that match attribute or namespace nodes.
- Status changed from New to In Progress
- Status changed from In Progress to Resolved
Resolved on hte 9.5 branch. The test is currently crashing on the 9.6 branch for unrelated reasons (at the time we're trying to rewrite the pattern filter, the function call has not yet been fixed up, as a consequence of changes introduced for packaging).
Added as test case mode-0011 in the W3C XSLT 3.0 test suite.
- Status changed from Resolved to Closed
- % Done changed from 0 to 100
- Found in version changed from 9.5.1.4 to 9.5
- Fixed in version set to 9.5.1.5
Bug fix applied in Saxon maintenance release 9.5.1.5
Please register to edit this issue
Also available in: Atom
PDF