|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: xsl:number and conditional
> Example: > > <doc> > <p>a <citation/> and a <footnote>and a <citation/> in a > footnote</footnote> and a <citation/></p> > </doc> > > Correctly working stylesheet: > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:bib="http://purl.org/NET/xbiblio/citeproc" > exclude-result-prefixes="xs bib" version="2.0"> > > <xsl:template match="doc"> > <list> > <xsl:apply-templates > select="//footnote|//citation[not(ancestor::footnote)]"/> > </list> > </xsl:template> > > <xsl:template match="p"> > <xsl:apply-templates/> > </xsl:template> > > <xsl:template match="footnote"> > <number> > <xsl:value-of select="bib:footcite(.)"/> > <xsl:apply-templates select="citation"/> > </number> > </xsl:template> > > <xsl:template match="citation"> > <number> > <xsl:value-of select="bib:footcite(.)"/> > </number> > </xsl:template> > > <xsl:template match="citation[ancestor::footnote]"> > <nonumber/> > </xsl:template> > > <xsl:function name="bib:footcite" as="xs:string"> > <xsl:param name="footciteable" as="element()"/> > <xsl:for-each select="$footciteable"> > <xsl:number level="any" select="." > count="footnote|citation[not(ancestor::footnote)]"/> > </xsl:for-each> > </xsl:function> > > </xsl:stylesheet> > > Yields this output: > > <list> > <number>1</number> > <number>2<nonumber/> > </number> > <number>3</number> > </list> So this the output that you want? I think this illustrates the point that if your count pattern matches the same nodes as the ones you select for numbering, you will get consecutive numbers. > > Now, if I change the function to this: > > <xsl:function name="bib:footcite" as="xs:string"> > <xsl:param name="footciteable" as="element()"/> > <xsl:number level="any" select="$footciteable" > count="footnote|citation[not($footciteable/ancestor::footnote)]"/> > </xsl:function> > > I get: > > <list> > <number>1</number> > <number>2<nonumber/> > </number> > <number>4</number> > </list> I don't understand why you've changed a "correctly working stylesheet". > > Saxon (8.4) will not allow me to remove the $footcitable on the count, > nor to add it as context to the footnote. Your original "correctly working stylesheet" didn't have $footcitable in the count pattern, and works with Saxon 8.4, so I don't understand what you mean by this. And I don't know what you mean by "add it as context to the footnote" either! (But thanks for putting together a complete example.) Michael Kay http://www.saxonica.com/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








