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.
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 ...
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>
This is closely related to the previous customisation.
Search for all biblioref
s and replaces with xref
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
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.
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 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!
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>
Write yourself a complete XSL Transformation stylesheet. It can't be that hard to do? Can it?
Actually, there may be problems of ambiguity.
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.
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?