Re: RE: [xsl] Error xsl:param may not be used here

Subject: Re: RE: [xsl] Error xsl:param may not be used here
From: michael.h.kay@xxxxxxxxxxxx
Date: Mon, 14 Oct 2002 16:07:37 +0000
> 
> From: "Andrew Welch" <awelch@xxxxxxxxxxxxxxx>
> Date: Mon, 14 Oct 2002 10:39:58 +0100
> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> Subject: RE: [xsl] Error xsl:param may not be used here
> 
> 
> > The problem is that your <xsl:param> is wrongly 
> > placed.<xsl:param> is a top 
> > level element ie, child of <xsl:stylesheet> element or if it is in a 
> > template then it must be the immediate child of the 
> > <xsl:template> element. 
> > so in your case, because you have an <xsl:variable> element 
> > before the 
> > <xsl:param> element, its reporting the error message.
> 
> Thats interesting - saxon 6.5.2 allows this (as stated msxml doesnt).

This is a known bug in Saxon 6.5.2 - it shouldn't be allowed.


> 
> The specs says:
> 
> 11.5 "As well as being allowed at the top-level, both xsl:variable and
> xsl:param are also allowed in templates. xsl:variable is allowed
> anywhere within a template that an instruction is allowed. In this case,
> the binding is visible for all following siblings and their descendants.
> Note that the binding is not visible for the xsl:variable element
> itself. xsl:param is allowed as a child at the beginning of an
> xsl:template element. In this context, the binding is visible for all
> following siblings and their descendants. Note that the binding is not
> visible for the xsl:param element itself."
> 
> Has this followed through into xslt 2.0 as its not mentioned in the
> draft?
> 
The content model is unchanged in 2.0:

<xsl:template
  match = pattern
  name = qname
  priority = number
  mode = tokens>
  <!-- Content: (xsl:param*, content-constructor) -->
</xsl:template>

Michael Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread