RE: [xsl] xsl:number and conditional

Subject: RE: [xsl] xsl:number and conditional
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 2 Jun 2005 02:31:28 +0100
> > Put simply, Saxon will not allow this:
> > 
> >     <xsl:number level="any" select="$footciteable" 
> >       count="footnote|citation[not(ancestor::footnote)]"/>
> 
> Ah, I see what you mean: it doesn't work if you leave out the 
> for-each. That's a bug.

I haven't been able to identify a bug here. If the function is:

  <xsl:function name="bib:footcite" as="xs:string">
    <xsl:param name="footciteable" as="element()"/>
      <xsl:number level="any" select="."
                  count="footnote|citation[not(ancestor::footnote)]"/>
  </xsl:function>

then Saxon complains rightly that there is no context item (note the
select=".").

If you change it to:

  <xsl:function name="bib:footcite" as="xs:string">
    <xsl:param name="footciteable" as="element()"/>
      <xsl:number level="any" select="$footciteable"
                  count="footnote|citation[not(ancestor::footnote)]"/>
  </xsl:function>

then it runs correctly.

Michael Kay
http://www.saxonica.com/

Current Thread