|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: temp trees and context switching
On Nov 12, 2004, at 7:31 PM, Bruce D'Arcus wrote:
Below is my first few templates (I can't post the entire code), with source example below it. Am I doing something wrong with using the call-template below? I'm not sure this is the best solution (any comments?), but I ended up adding another pass to the processing, since I couldn't get it work just using the call-template: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:db="http://docbook.org/docbook-ng" xmlns:mods="http://www.loc.gov/mods/v3" xmlns:bib="http://xbiblio.sourceforge.net" xmlns="http://docbook.org/docbook-ng" exclude-result-prefixes="mods bib db xs"> <!-- This driver file creates a temporary tree of the document for subsequent processing. In the case of footnote class citations, this means wrapping all citations in a footnote element. --> <xsl:key name="citekey" match="db:biblioref/@linkend" use="'all'" /> <!-- first create a temporary tree that adds the raw bibliographic data based on citations --> <xsl:template match="/"> <xsl:variable name="temp"> <xsl:apply-templates mode="create-bibcollection" /> </xsl:variable> <xsl:apply-templates select="$temp" mode="step-2" /> </xsl:template> <xsl:template match="db:article" mode="create-bibcollection">
<article>
<xsl:apply-templates mode="create-bibcollection" />
</article>
</xsl:template> <xsl:template match="db:info" mode="create-bibcollection">
<xsl:copy-of select="."/>
</xsl:template> <xsl:template match="db:section" mode="create-bibcollection">
<xsl:copy-of select="."/>
</xsl:template><!-- next take that tree and create another temporary tree enhanced for subsequent processing --> <xsl:template match="/" mode="step-2"> <xsl:variable name="temp"> <xsl:apply-templates mode="enhanced-bib" /> </xsl:variable> <xsl:apply-templates select="$temp" mode="modified" /> </xsl:template> <xsl:template match="db:article" mode="enhanced-bib">
<article>
<xsl:apply-templates mode="enhanced-bib" />
</article>
</xsl:template> <xsl:template match="db:info" mode="enhanced-bib">
<xsl:copy-of select="."/>
</xsl:template><xsl:template match="db:section[$citation-class='author-year']" mode="enhanced-bib"> <xsl:copy-of select="."/> </xsl:template> <xsl:template match="db:bibliography" mode="create-bibcollection"> <bibliography> <modsCollection xmlns="http://www.loc.gov/mods/v3"> <xsl:for-each select="distinct-values(key('citekey', 'all'))"> <xsl:variable name="bibrecord" select="doc(concat('/Users/darcusb/Desktop/xbiblio-alt/samples/bib- data/', ., '.mods'))/mods:modsCollection/mods:mods"/> <xsl:copy-of select="$bibrecord" /> </xsl:for-each> </modsCollection> </bibliography> </xsl:template> <xsl:template match="db:bibliography" mode="enhanced-bib"> <bibliography> <xsl:apply-templates select="mods:modsCollection" mode="enhanced-bib"/> </bibliography> </xsl:template> <xsl:template match="db:section[$citation-class='note']" mode="enhanced-bib"> <section> <xsl:apply-templates mode="enhanced-bib"/> </section> </xsl:template> <xsl:template match="db:section[$citation-class='note']/db:info" mode="enhanced-bib"> <xsl:copy-of select="."/> </xsl:template> <xsl:template match="db:footnote[$citation-class='note']" mode="enhanced-bib"> <footnote> <xsl:apply-templates mode="enhanced-bib"/> </footnote> </xsl:template> <xsl:template match="db:section/db:para[$citation-class='note']" mode="enhanced-bib"> <para> <xsl:apply-templates mode="enhanced-bib"/> </para> </xsl:template> <xsl:template match="db:footnote/db:para[$citation-class='note']" mode="enhanced-bib"> <para> <xsl:apply-templates mode="enhanced-bib"/> </para> </xsl:template> <xsl:template match="db:citation[$citation-class='note']" mode="enhanced-bib"> <!-- with footnote class citations, wrap all citations in a footnote, unless already in a footnote --> <xsl:choose> <xsl:when test="ancestor::db:footnote"> <xsl:copy-of select="."/> </xsl:when> <xsl:otherwise> <footnote> <xsl:copy-of select="."/> </footnote> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
|
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








