Subject: [xsl] An xsl:number problem From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Thu, 10 Jul 2008 09:57:25 +0100 |
I've raised a bug report against the spec on this one, but I would be interested to know how various processors handle it. Please try it and report the results. The bug report is at http://www.w3.org/Bugs/Public/show_bug.cgi?id=5849 Source document: <?xml version="1.0"?> <doc> <a mark="true"/> <a/> <a/> <a/> <a mark="true"/> <a/> <a/> <a/> </doc> Stylesheet: <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output indent="yes"/> <xsl:template match="*"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:attribute name="nr"> <xsl:number from="a[@mark='true']" count="a" level="any"/> </xsl:attribute> <xsl:apply-templates/> </xsl:copy> </xsl:template> </xsl:stylesheet> The output of Saxon 9.1 and other recent releases is clearly wrong, and is being fixed by a patch. After correction, the output is still strange, but I believe it is correct according to the spec: <?xml version="1.0" encoding="UTF-8"?> <doc nr=""> <a mark="true" nr=""/> <a nr="2"/> <a nr="3"/> <a nr="4"/> <a mark="true" nr="5"/> <a nr="2"/> <a nr="3"/> <a nr="4"/> </doc> This is the Saxon 6.5.5 output: <?xml version="1.0" encoding="utf-8"?> <doc nr=""> <a mark="true" nr="1"/> <a nr="1"/> <a nr="2"/> <a nr="3"/ <a mark="true" nr="4"/> <a nr="1"/> <a nr="2"/> <a nr="3"/> </doc> The 1.0 spec is so terse that it's quite hard to decide whether this is correct or not, but it's certainly not intuitive. I would be interested to know what other XSLT 1.0 or 2.0 processors do with this one. I think the intuitively correct result is: <?xml version="1.0" encoding="UTF-8"?> <doc nr=""> <a mark="true" nr="1"/> <a nr="2"/> <a nr="3"/> <a nr="4"/> <a mark="true" nr="1"/> <a nr="2"/> <a nr="3"/> <a nr="4"/> </doc> Do you agree? Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] NaN showing up in firefox, Michael Kay | Thread | Re: [xsl] An xsl:number problem, Colin Paul Adams |
RE: [xsl] Re: Selecting consecutive, Michael Kay | Date | Re: [xsl] An xsl:number problem, Colin Paul Adams |
Month |