xsl-list
[Top] [All Lists]

Re: number collapsing

2004-12-14 07:12:20
On Dec 14, 2004, at 8:59 AM, Michael Kay wrote:

One observation:

       <xsl:when test="$begin castable as xs:integer">
         <xsl:variable name="begin2" select="$begin" as="xs:integer"/>

This may fail if $begin is a string. The string "123" is castable to
xs:integer, but not assignable to xs:integer.

I'm not following here. Aren't I saying in the function "if $begin is an integer, then apply this logic to determine how to shorten $end; if not, then just print $end as is"?

Better to write the second
line as

<xsl:variable name="begin" select="xs:integer($begin)" as="xs:integer"/>

to force the cast.

The problem is that I don't know if the page numbers will be integers (consider "iii").

I think your new problem can be tackled using a "group-starting-with". The only problem is that this requires nodes rather than atomic values. So we'll
start by putting the numbers into a temporary tree:

<xsl:function name="f:ranges" as="xs:string">
  <xsl:param name="pagelist" as="xs:integer*"/>

Note that my issue here was actually applying not to page numbers, but to the in-text citation markers. However, now that I think about it more, the same issue could apply to page number. Does this suggest that I ought to have a single generic number collapsing function that could be used for both citation markers and for page numbers?

Bruce


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>