But just to ilustrate how vars should be used,
<xsl:variable name="t1">
<xsl:value-of
select="sum(/Trade/Record[Payment]/Payment)" />
</xsl:variable>
Don't use this construct unless you have a very good reason. It's much
better to write:
<xsl:variable name="t1"
select="sum(/Trade/Record[Payment]/Payment)" />
Why?
Firstly, it's shorter and more readable.
More importantly, the resulting value is a number, not a result tree
fragment. A number is a much simpler object than a result tree fragment, so
it's cheaper to create and cheaper to access. There are also some contexts,
for example in the predicate P[$t1], where it's important for correct
operation that the value should be a number.
Michael Kay