[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Bruce,
Did you try Michael's latest suggestion of
count="db:footnote|db:citation[not(ancestor::db:footnote)]"
?
My current reading (though I confess your problem is complex enough that I'm not absolutely confident after a cursory glance) is that this should work. I might have suggested the other expression in an effort to account for the fact that XSLT 2.0 functions do not "carry their context" the way named templates do ... but that would be mistaken in this case, as the 'count' attribute takes a pattern to be matched, not an arbitrary XPath expression (as a 'select' attribute does).
The expression above should provide for consecutive numbering of all footnotes with all citations not themselves in footnotes, which is what you want, isn't it? (Not either all footnotes only, or footnotes mixed with citations, depending on whether the context node -- footnote or citation -- itself has a footnote ancestor.)
At 12:03 PM 5/31/2005, you wrote:
Re: [xsl] xsl:number and conditional
Subject: Re: [xsl] xsl:number and conditional From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Tue, 31 May 2005 15:41:41 -0400 |
Bruce,
Did you try Michael's latest suggestion of
count="db:footnote|db:citation[not(ancestor::db:footnote)]"
?
My current reading (though I confess your problem is complex enough that I'm not absolutely confident after a cursory glance) is that this should work. I might have suggested the other expression in an effort to account for the fact that XSLT 2.0 functions do not "carry their context" the way named templates do ... but that would be mistaken in this case, as the 'count' attribute takes a pattern to be matched, not an arbitrary XPath expression (as a 'select' attribute does).
The expression above should provide for consecutive numbering of all footnotes with all citations not themselves in footnotes, which is what you want, isn't it? (Not either all footnotes only, or footnotes mixed with citations, depending on whether the context node -- footnote or citation -- itself has a footnote ancestor.)
Cheers, Wendell
At 12:03 PM 5/31/2005, you wrote:
On 5/31/05, Michael Kay <mike@xxxxxxxxxxxx> wrote: > > If I understand right, this, in the context of a function: > > > > <xsl:number level="any" select="$footcite" > > > > count="db:footnote|db:citation[not($footcite/ancestor::db:foot > > note)]"/> > > > > ... should not be counting db:citation elements which are descendents > > of db:footnote. > > > > Is that right? > > Not quite. There are two cases: > > if $footcite has an ancestor that is a db:footnote, then it counts all > db:footnote elements
.. but not the db:citation descendent?
> otherwise, it counds all db:footnote and db:citation elements
$footcite in this context is a function parameter that is defined as element(), but in practice is either db:footnote or db:citation. So I have:
<xsl:function name="bib:number-footcite" as="xs:string"> <xsl:param name="footcite" as="element()"/> <xsl:choose> <xsl:when test="$chapters/db:chapter"> <xsl:number level="any" select="$footcite"
count="db:footnote|db:citation[not($footcite/ancestor::db:footnote)]" from="db:chapter"/> </xsl:when> <xsl:otherwise> <xsl:number level="any" select="$footcite"
count="db:footnote|db:citation[not($footcite/ancestor::db:footnote)]"/> </xsl:otherwise> </xsl:choose> </xsl:function>
I then call the function in those templates like so:
<xsl:template match="db:citation">
<xsl:choose>
<xsl:when test="$citeclass='note-bib' or $citeclass='note-nobib'">
<xsl:variable name="footnote-number">
<xsl:value-of select="bib:number-footcite(.)"/>
</xsl:variable>
<xsl:text>[</xsl:text>
<a href="#fn{$footnote-number}" name="fnm{$footnote-number}"
class="footnote-mark">
<xsl:value-of select="$footnote-number"/>
</a>
<xsl:text>]</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="bib:format-citation">
<xsl:with-param name="output-format" select="'xhtml'"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
So if I don't specify not to count db:citation elements that are descendents of db:footnote, they get double-counted.
====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl:number and conditiona, Bruce D'Arcus | Thread | Re: [xsl] xsl:number and conditiona, Bruce D'Arcus |
[xsl] Extreme 2005 Program Now Avai, B. Tommie Usdin | Date | Re: [xsl] namespace generation in t, David Carlisle |
Month |