Chapter 6. Possible Customisations

Being an all XSLT solution, the options and possibilities for customisation are endless. To that extent, many of the actual formatting templates were written expressly to provide opportunities and hooks to capture the processing at different stages and to cater for different reference types in different fashions. These options exist over and above the style options provided by the CITESTYLE (Hoenicka, 2005b) file:

In addition, there are many possibilities to configure the gross behaviour and common processing features.

Remote raw DocBook Bibliography Database

The XSLT parameter refdb.bibliography.collection.relative defines a node-set with respect to which the DocBook XSL (Stayton, 2005) auxilliary bibliographic database file parameter, bibliography.collection is located. The default definition of refdb.bibliography.collection.relative loads the bibliography.collection database with respect to your DocBook source document, which seems the logical choice. It could however, be made with respect to the RefDB-lite stylesheet directory.

Conceivably the template that makes use of the refdb.bibliography.collection.relative parameter (that would be refdb.raw.biblist in file collate.xsl) could be overridden to access that bibliography database via HTTP. According to my understanding of Kay (2003), the XSLT document() function only ever loads a given unique URL once, regardless of the modification status of that URL. So basically, it would not be inefficient to make multiple access calls to such a database file ...

Simplify the citation format

One possibility is to customise citation matching to obviate the role="REFDB" requirements on citation. You would need the following template added to your customisation file.


<xsl:template match="citation">
  <xsl:choose>
    <!-- xsl:when test="@role='REFDB' and child::biblioref" -->
    <xsl:when test="child::biblioref" >
      <xsl:call-template name="refdb-render-citation"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-imports /> <!-- normal DocBook XSL citations -->
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

You might also need this:


<xsl:template match="citation" mode="refdb-lite.collate.mode">
   <!-- ... -->
</xsl:template>

Match on biblioref and/or xref

This is closely related to the previous customisation. Search for all bibliorefs and replaces with xref

Uncited References

Another possibility is to permit uncited references to be included in the bibliography:

<xsl:param name="refdb.use.uncited.references" select="1"/>

to your customisation file, or set it on the command line as an argument e.g. for xsltproc:

     --param  refdb.use.uncited.references  1

Apply Conditional Processing Beyond the CITESTYLE Limit

Do some references need special treatment? Need a sort key based on series title/volume/date instead of by author/date? Get in there and customize your own refdb.add.raw.bibentry template.

Special Treatment for USERDEFn and MISCn

How are these things used in practise? Can we standardise some uses? For instance, the Acta.Cryst.xml style uses, (I believe) USERDEF1 as a container for the abbreviated series title (that being A, B, C, D or E. Was that a good choice? Is it treated correctly?

You really want specialised citation formats?

You want to cite by title? or include a computer program title as part or all of a citation link? This would be a very useful customisation!

Convert a RISX database file to DocBook raw

Dump your RefDB database as RISX and apply the RefDB-lite? RISX-to-DocBook-raw XSL Transformation stylesheet as a once-off conversion.

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<xsl:import href="refdb-lite/xsl/docbook/risx/risx2dbk.xsl"/>
<xsl:template match="/">
  <xsl:call-template name="RISX-to-DocBook-raw">
    <xsl:with-param name="risx" select="."/>
  </xsl:call-template>
</xsl:template>
</xsl:stylesheet>

Want to convert DocBook raw back to RISX?

Write yourself a complete XSL Transformation stylesheet. It can't be that hard to do? Can it?

Actually, there may be problems of ambiguity.

Choose the citation style based on a processing instruction?

You want to change citation styles midstream? Initially, that sounds a bit inconsistent and esoteric. Yet it could happen, particularly in, say, different parts of a book, or different books of a set, or to faithfully amalgamate published articles from journals, with differing styles, into a thesis.

It would require a significant reorganisation, rather than a trivial XSLT customisation. But it is not inconceivable.

What else?

Do you need to resolve DOI adresses or MODS via SRU? http://netapps.muohio.edu/blogs/darcusb/darcusb/archives/2006/02/26/opa-proxy-script I have no idea what that involves!

Do we have to handle citebiblioid as well?