English:

The Free and Open Productivity Suite
New: Apache OpenOffice 4.1.1 released!
<xsl:stylesheet xmlns="http://purl.org/NET/xbiblio/citeproc" xmlns:bib="http://purl.org/NET/xbiblio/citeproc" xmlns:cs="http://purl.org/NET/xbiblio/csl" xmlns:db="http://docbook.org/ns/docbook" xmlns:mods="http://www.loc.gov/mods/v3" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:exist="http://exist.sourceforge.net/NS/exist" xmlns:xdoc="http://www.pnp-software.com/XSLTdoc" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:course="http://purl.org/NET/xbiblio/course" version="2.0" exclude-result-prefixes="db xdoc xhtml mods xs cs exist bib course">
<xsl:include href="config/CONFIG" />
<xsl:include href="main/format-style.xsl" />
<xsl:include href="main/functions.xsl" />
<xsl:include href="main/sort.xsl" />
<xsl:include href="main/process-mods.xsl" />
<xsl:include href="drivers/in-driver.xsl" />
<xsl:include href="drivers/out-drivers.xsl" />
<xsl:include href="VERSION" />
<!--===licensedunderCC-GNUGPL;seehttp://creativecommons.org/licenses/GPL/2.0===-->
<xsl:output name="xml" encoding="UTF-8" indent="yes" />
<xsl:strip-space elements="cs:*" />
<xdoc:doc type="stylesheet">
<xdoc:short>MainCiteProcstylesheet.</xdoc:short>
<xdoc:author>BruceD’Arcus</xdoc:author>
<xdoc:copyright>2004,BruceD’Arcus</xdoc:copyright>
</xdoc:doc>

<xdoc:doc>Sortorderforbibliography.<xdoc:param type="string" />
</xdoc:doc>

<xsl:param name="sort_order-bib" as="xs:string">
<xsl:choose>
<xsl:when test="$citeclass='citekey'">citekey</xsl:when>
<xsl:when test="$citeclass='number'">
<xsl:value-of select="$style-biblio/@sort-order" />
</xsl:when>
<xsl:otherwise>author-year</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xdoc:doc>ArequiredparameterthatspecifiestheCSLfiletouseforprocessing(minusthecsl
extension).
<xdoc:param type="string" />
</xdoc:doc>

<xsl:param name="citation-style" required="yes" as="xs:string" />
<xsl:variable name="styles" as="document-node()" select="doc(concat('../styles/',$citation-style,'.csl'))" />
<xdoc:doc>Classofformattingtype,drawnfromtheCSLfile.<xdoc:param type="string" />
</xdoc:doc>

<xsl:param name="citeclass" select="$styles/cs:citationstyle/@class" />
<xsl:variable name="style-citation" select="$styles/cs:citationstyle/cs:content/cs:citation" />
<xsl:variable name="style-biblio" select="$styles/cs:citationstyle/cs:content/cs:bibliography" />
<xsl:variable name="style-names" select="$styles/cs:citationstyle/cs:content/cs:names" />
<xsl:variable name="style-terms" select="$styles/cs:citationstyle/cs:content/cs:terms" />
<xsl:variable name="locators" select="$styles/cs:citationstyle/cs:content/cs:locators" />
<xdoc:doc>firstindexthecitations</xdoc:doc>

<xsl:key name="refs" match="db:biblioref" use="@linkend" />
<xdoc:doc>Createsatableagainstwhichtomeasurerelativecitationposition.</xdoc:doc>

<xsl:variable name="cite-position">
<bib:refs>
<bib:all>
<xsl:for-each select="$citerefs">
<bib:ref position="{position()}" id="{generate-id()}" key="{.}" />
</xsl:for-each>
</bib:all>
<bib:unique>
<xsl:for-each-group select="$citerefs" group-by=".">
<bib:ref position="{position()}" id="{generate-id()}" key="{.}" />
</xsl:for-each-group>
</bib:unique>
</bib:refs>
</xsl:variable>
<xdoc:doc>Constructsalistofuniquereferencestopasstoaquery.</xdoc:doc>

<xsl:variable name="citekeys">
<xsl:if test="$bibdb='exist-xmldb'">(</xsl:if>
<xsl:if test="$bibdb='sru'">%22</xsl:if>
<xsl:for-each-group select="$citerefs" group-by=".">
<xsl:if test="position() gt 1">
<xsl:choose>
<xsl:when test="$bibdb='exist-xmldb'">,%20</xsl:when>
<xsl:otherwise>%20</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="$bibdb='exist-xmldb'">'</xsl:if>
<xsl:value-of select="." />
<xsl:if test="$bibdb='exist-xmldb'">'</xsl:if>
</xsl:for-each-group>
<xsl:if test="$bibdb='sru'">%22</xsl:if>
<xsl:if test="$bibdb='exist-xmldb'">)</xsl:if>
</xsl:variable>
<xsl:variable name="authentication" select="'&amp;x-info-2-auth1.0-authenticationToken='" as="xs:string" />
<xsl:variable name="sru-email" select="concat('email=', $email)" as="xs:string" />
<xdoc:doc>Takesalistofreferences,andimportsthemfromadatabaseoverHTTP.Optionsinclude
anXQuerytoeXist,SRU/CQL,andflatfiles.
</xdoc:doc>

<xsl:variable name="bibrecord">
<xsl:message>
<xsl:text>
CiteProcXSLStylesheetsv
</xsl:text>
<xsl:value-of select="$CP-VERSION" />
<xsl:text>
</xsl:text>
</xsl:message>
<xsl:message>
<xsl:text>citationstyle:</xsl:text>
<xsl:value-of select="$styles/cs:citationstyle/cs:info/cs:title" />
</xsl:message>
<xsl:message>
<xsl:text>citationclass:</xsl:text>
<xsl:value-of select="$citeclass" />
<xsl:text>
</xsl:text>
</xsl:message>
<xsl:choose>
<xsl:when test="$bibdb='exist-xmldb'">
<xsl:copy-of select="doc(concat(&quot;http://localhost:8080/exist/servlet/db/mods?&quot;, &quot;_query=declare%20namespace%20mods=%22http://www.loc.gov/mods/v3%22;&quot;, &quot;%20for%20$citekey%20in%20&quot;, $citekeys, &quot;%20return%20//mods:mods[@ID=$citekey]&amp;_howmany=-1&quot;))" />
</xsl:when>
<xsl:when test="$bibdb='sru'">
<xsl:copy-of select="doc(concat($server_url, 'version=1.1&amp;query=bib.citekey%20any%20', $citekeys, '&amp;operation=searchRetrieve&amp;recordSchema=mods&amp;recordPacking=xml&amp;startRecord=1&amp;maximumRecords=9999', $authentication, $sru-email))" />
</xsl:when>
<xsl:when test="$bibdb='flatfile'">
<mods:modsCollection>
<xsl:for-each select="distinct-values($citerefs)">
<xsl:copy-of select="document($bibinfile)/mods:modsCollection/mods:mods[@ID=current()]" />
</xsl:for-each>
</mods:modsCollection>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xdoc:doc>Createsarawbibliographiccollection.</xdoc:doc>

<xsl:variable name="raw-biblist">
<modsCollection xmlns="http://www.loc.gov/mods/v3">
<xsl:copy-of select="$bibrecord//mods:mods" />
</modsCollection>
</xsl:variable>
<xdoc:doc>Groups,sorts,andenhancescontentforprocessing;thisiswheremostofthelogic
lies.
</xdoc:doc>

<xsl:variable name="enhanced-biblist">
<mods:modsCollection>
<xsl:choose>
<xsl:when test="$sort_order-bib='citekey'">
<xsl:apply-templates select="$raw-biblist/mods:modsCollection" mode="sort_citekey" />
</xsl:when>
<xsl:when test="$sort_order-bib='cited'">
<xsl:apply-templates select="$raw-biblist/mods:modsCollection" mode="sort_cited" />
</xsl:when>
<xsl:when test="$sort_order-bib='author-year'">
<xsl:apply-templates select="$raw-biblist/mods:modsCollection" mode="sort_author-year" />
</xsl:when>
</xsl:choose>
</mods:modsCollection>
</xsl:variable>

<xdoc:doc>Createsfinalformattedbibliographylist.Dependingonoutputformat,transformsor
justcopiescontentsofthebib:formatted-biblistvariable.
</xdoc:doc>

<xsl:template name="bib:format-bibliography">
<xsl:param name="output-format" as="xs:string" />
<xsl:choose>
<xsl:when test="$output-format='latex'">
<xsl:apply-templates select="$bib:formatted-biblist" mode="output-latex" />
</xsl:when>
<xsl:when test="$output-format='xhtml'">
<xsl:apply-templates select="$bib:formatted-biblist" mode="output-xhtml" />
</xsl:when>
<xsl:when test="$output-format='fo'">
<xsl:apply-templates select="$bib:formatted-biblist" mode="output-fo" />
</xsl:when>
</xsl:choose>
<xsl:if test="$biboutfile">
<xsl:result-document href="{$biboutfile}" format="xml">
<xsl:copy-of select="$raw-biblist" />
</xsl:result-document>
</xsl:if>
</xsl:template>

<xdoc:doc>Inconjunctionwithbib:format-bibtemplates,formatsbibliographylistintoan
intermediaterepresentation.Theintermediaterepresentationissimilartoxhtml,butinthe
citeprocnamespace.
</xdoc:doc>

<xsl:variable name="bib:formatted-biblist">
<xsl:apply-templates select="$enhanced-biblist/mods:modsCollection/mods:mods" mode="temp-placeholder" />
</xsl:variable>

<xdoc:doc>Formatsbibliographylistintoanintermediaterepresentation.</xdoc:doc>

<xsl:template match="mods:mods" mode="temp-placeholder">
<xsl:variable name="shorten-author" select="@bib:shorten-author" />
<xsl:variable name="use_reftype" select="@bib:use-reftype" />
<xsl:variable name="id" select="@ID" />
<xsl:variable name="number">
<xsl:choose>
<xsl:when test="$sort_order-bib='author-year'">
<xsl:value-of select="position()" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$cite-position/bib:refs/bib:unique/bib:ref[@key=$id]/@position" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:apply-templates select="$style-biblio">
<xsl:with-param name="bib:source" select="." as="element()" tunnel="yes" />
<xsl:with-param name="use_reftype" select="@bib:use-reftype" as="xs:string" tunnel="yes" />
<xsl:with-param name="bib:number" select="$number" as="xs:string" tunnel="yes" />
</xsl:apply-templates>
</xsl:template>

<xdoc:doc>formatscitations</xdoc:doc>

<xsl:template name="bib:format-citation">
<xsl:param name="output-format" as="xs:string" />
<!--createatemporarytreetoholdtheprocessingcitations-->
<xsl:variable name="intermediate-citation">
<bib:span class="citation">
<xsl:value-of select="$style-citation/cs:prefix" />
<xsl:choose>
<xsl:when test="$sort_order-bib='author-year' or $citeclass='note-nobib'">
<xsl:choose>
<!--FIX:addadditionalconditionalfor@ibid,configureformattinginCSL-->
<xsl:when test="bib:ibid(.) and count(db:biblioref)=1">
<bib:a class="citation" href="#{db:biblioref/@linkend}">
<xsl:text>ibid.</xsl:text>
</bib:a>
</xsl:when>
<xsl:when test="$citeclass='author-year' or $citeclass='note-nobib'">
<xsl:apply-templates select="." mode="sort_citation_author-year" />
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="db:biblioref" mode="otherwise" />
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="db:biblioref" mode="otherwise" />
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="$style-citation/cs:suffix" />
</bib:span>
</xsl:variable>
<!--
createformattedoutputbyrunningappropriateoutputmodeonthetemporary
treeintheintermediate-citationvariable
-->
<xsl:choose>
<xsl:when test="$output-format='latex'">
<xsl:apply-templates select="$intermediate-citation" mode="output-latex" />
</xsl:when>
<xsl:when test="$output-format='xhtml'">
<xsl:apply-templates select="$intermediate-citation" mode="output-xhtml" />
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="db:biblioref" mode="otherwise">
<xsl:apply-templates select="$style-citation">
<xsl:with-param name="cite-ref" select="." as="node()" tunnel="yes" />
</xsl:apply-templates>
<xsl:if test="position() != last()">
<xsl:value-of select="$style-citation/@delimiter" />
</xsl:if>
</xsl:template>
</xsl:stylesheet>






































v

Apache Software Foundation

Apache Software Foundation

Copyright & License | Privacy | Website Feedback | Contact Us | Donate | Thanks

Apache, the Apache feather logo, and OpenOffice are trademarks of The Apache Software Foundation. OpenOffice.org and the seagull logo are registered trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.