Subject: Re: [xsl] Discrepancy in handling current() in a pattern From: Alain <alainb06@xxxxxxx> Date: Thu, 11 Jun 2009 08:27:09 +0200 |
Hi Ken, - Thanks for the pointers to the norms, it's very helpful ! Scilly me I was searching for current() as current is a common word and give too many matches. So -1) I.E. is right Firefox and Xalan are being too laxist (but it's quite clear what current() means in this context) -3) Allas, if current() is not allowed, either I make the tests not generic (for example assuming you have a 9x9 sudoku) either I see no solution than to revert to the ugly case/otherwise -2) ><!-- First "stack" of matching for vertical lines --> ><!-- This matches cells that have a vertical lines on their left --> > ><xsl:template match="cell[@x != '1' and @z != ../cell[@y = >current()/@y][@x= current()/@x - 1]/@z]" mode="cell" priority="2"> >... ><!-- This matches cells that have a horizontal lines on their top --> > ><xsl:template match="cell[@y!='1' and @z != ../cell[@y = current()/@y >-1][@x= current()/@x]/@z]" mode="cell-2" priority="2"> >If you are at the top left cell, then won't both of the above >template rules match the cell you are at? That would be ambiguous >and Saxon is right to report an ambiguous template rule match. Definitely no. I admit the logic is quite complex because it is "optimised". The 4 tests are not consecutive but arranged 2 by 2 so that : - the condition to test on each match is less complex (faster) - you have the result with 2 tests where you could have to run 4 tests on a consecutive model. The cells that have both borders would match both templates but in a "successive" way as these templates are not in the same "mode". So those cells match only one template at a time. But *I withdraw the question about Saxon* as it appears to be a bug of an older version of Saxon (I'll give the exact reference later). I just tried again on my Linux box with Saxon 9.1.0.2 and it gives absolutely no warning, all works fine. Many thanks.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Discrepancy in handling c, G. Ken Holman | Thread | Re: [xsl] Discrepancy in handling c, Alain |
Re: [xsl] A smarter choose operatio, Dimitre Novatchev | Date | RE: [xsl] A smarter choose operatio, Michael Kay |
Month |