Re: [xsl] How to detect if the context item exists

Subject: Re: [xsl] How to detect if the context item exists
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Fri, 01 Jul 2011 00:19:46 +0100
On 01/07/2011 00:03, David Carlisle wrote:
On 30/06/2011 21:23, Michael Kay wrote:
No, within a named template it's not statically decidable. The named
template might be called from within a function.

yes (that's the usual way the context gets undefined) but what I meant was that the author of the stylesheet can write the template as

<xsl:template name=x">
<xsl:param name="hascontext" select="true()"/>

XSLT 3.0 will allow a named template to declare:

   as? = sequence-type
   use? = "required" | "optional" | "prohibited" />

"optional" is the current behaviour"; required means it's an error to call the template without a context item; "prohibited" means any context item that exists in the caller isn't made available to the called template.

Michael Kay

Current Thread