On 12/04/2010 11:00, Alex Muir wrote:
<xsl:variable name="averageLineLength"
   select="round(avg($lines[last()]/preceding-sibling::node()/@length))"
 as="xs:double"/>
you have used an as attribute that says this mmust return one value but 
if $lines has less than two items
$lines[last()]/preceding-sibling::node()
will be empty, so avg() will get an empty sequence, and so return () so 
you fail the type check.
perhaps
select="(round(avg($lines[last()]/preceding-sibling::node()/@length)),0)[1]"
woul dbe what you want, returning 0 if there are no lines to average.
David
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________
--~------------------------------------------------------------------
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>
--~--