So, when i'm making
<xsl:if test="$main">
what am i saying in english?
You are saying: when I convert the value of $main to a boolean, is the
result true?
The values that convert to false (in 1.0) are the boolean false(), the
number 0, a zero-length string, and an empty node-set. Everything else
converts to true.
When you specify a stylesheet parameter like this:
<xsl:param name="p"/>
then the default value (if the caller supplies no value) is a zero length
string.
Michael Kay
http://www.saxonica.com/