Subject: RE: 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/
|