[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: xsl:number on attribute nodes..

Subject: RE: xsl:number on attribute nodes..
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 15 Aug 2005 09:46:34 +0100
xsl number attribute
This is a bug in Saxon 6.x

Oddly, Saxon 6.5.4 fixed a bug relating to the use of <xsl:number
level="any"/> when numbering attributes, but didn't fix the much simpler
case of <xsl:number level="single"/>. For level="single" (without any from
or count attribute, or in the case where the count pattern matches the
context node) the answer should always be 1, because an attribute has no
preceding siblings. I suspect that I originally implemented the restriction
in the code because I felt that the specification was unclear, but reading
it again I can't see any cause for doubt as to what the results should be. I
can't imagine any circumstance in which numbering attributes with
level="single" gives a useful result, but the result is well-defined and
Saxon is wrong to disallow it.

With level="any", I think the XSLT 1.0 spec is slighly ambiguous: does the
phrase:

"the set containing the current node and all nodes ... that are before the
current node ... excluding any namespace and attribute nodes"

mean

(a) "the set containing the current node and (all nodes ... that are before
the current node ... excluding any namespace and attribute nodes)"

or does it mean

(b) "(the set containing the current node and all nodes ... that are before
the current node ...) excluding any namespace and attribute nodes"

The XSLT 2.0 spec selects interpretation (a).

I will publish details of this bug in
http://saxon.sourceforge.net/saxon6.5.4/limitations.html

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Jack Matheson [mailto:jack@xxxxxxxxxxxxxx] 
> Sent: 09 August 2005 16:35
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  xsl:number on attribute nodes..
> 
> Can anyone tell me the correct action to take when xsl:number is  
> executed and the current node is an attribute?
> 
> I have a quick example:
> 
> <?xml version='1.0'?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
> version="1.0">
>    <xsl:template match="/">
>      <xsl:apply-templates select="//@* | //*"/>
>    </xsl:template>
> 
>    <xsl:template match="@* | *">
>      <xsl:number count="@* | *"/>
>    </xsl:template>
> </xsl:stylesheet>
> 
> Saxon 6.5.4 gives me the following error:
> Error at xsl:number on line 8 of file:test.xsl:
>    Attribute nodes cannot be numbered
> Transformation failed: Run-time errors were reported
> 
> Xalan 2.7 produces the following output:
> <?xml version="1.0" encoding="UTF-8"?>11
> 
> Is this an "up-to-the-implementer" case?
> 
> Any help would be appreciated!
> 
> -Jack

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.