RE: [xsl] Best default value for a result tree fragment?

Subject: RE: [xsl] Best default value for a result tree fragment?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 28 Sep 2005 13:07:04 +0100
> What do people think is the "best" way of specifying the 
> default value for
> the parameters:
> <xsl:param name="contentRTF"></xsl:param>
> which gives a RTF containing nothing

No: if there is no content and no select attribute, the value is a
zero-length string. You can get an RTF consisting of a document node with no
children by writing, for example

<xsl:param name="contentRTF"><xsl:fallback/></xsl:param>

> <xsl:param name="contentRTF" select="" />
> which gives an empty nodeset (or something),

No, that's an error: the select attribute must be an XPath expression, and
this isn't

or even
> <xsl:param name="contentRTF select="''" />
> which gives an empty string.
> I appreciate that, for all practical purposes, I should get the same
> output from all of them, but was wondering which might be seen as the
> canonical way of doing it, given that any *passed* value will 
> always be a
> result tree fragment. Must have my strong-typing head on today :-)

I agree that logically, a document node with no children makes the most
sense. In 2.0, the cleanest way of constructing this is

<xsl:param name="x" as="document-node()">

Michael Kay

Current Thread