The RefDB-lite stylesheets are, in essence, activated on matching
<citation role="REFDB"><biblioref endterm="SomeRef2003-X"/> </citation>
elements. For RefDB-lite there are no separate intermediate, short-citation expansion and
collation processing phases, analogous to those required with the
runbib or refdbib
commands, documented in the RefDB manual
(Hoenicka, 2005c).
Note also that in contrast to RefDB usage, we use the biblioref
DocBook element rather than xref
and we
use the corresponding endterm
attribute rather
than linkend
of the latter.
The utility of the role="REFDB"
attribute is also
debateable. The underlying philosophy was to permit coexistence with
standard DocBook citation and cross-referencing mechanisms, but as it stands,
that may not work and it seems unlikely to be reliable because RefDB-lite doctors
the target bibliography substantially (and yet ...?).
The biblioref
element was introduced c.a. DocBook 4.3 and is
a more appropriate container for bibliographic reference info. Moreover, the
linkend
attribute of xref
is intended to be an IDREF (reference) to a specific unique reference ID,
but for RefDB-lite those ID's may only exist in the transformed document, so that a
stand-alone source XML document including unresolvable xref
s
may technically be invalid.
![]() |
Note |
---|---|
According to
DocBook 5.0,
begin (token) e.g. start page number end (token) e.g. end page number endterm (IDREF) units (token) e.g. page xrefstyle e.g. extra formatting style info
of which you will note that |
You should note also that the -X
endterm extensions are
stripped and, in the simple case, SomeRef2003
would refer to
a <biblioentry id="Smith00"/>
entry in the transformed document's
<bibliography/>
.
Taking the above into consideration, citations are therefore
made in RefDB "full" notation, where
the ultimate citation format is governed by the trailing "-N" extension on the
endterm. In keeping with the "full" notation, for a document that knowingly
makes use of the RefDB server interface to resolve missing references, it
is possible to prepend the database identification string to the front of the
RefDB citekey identifier, for example:
endterm="MyOtherRefDB-Smith00-X"
. That would only be
necessary if you are resolving references from multiple RefDB databases
and need to distinguish between them. The default database, if needed, should be
identified in the XSLT customisation parameter
refdb.server.default.database
The following citation formatting rules are intended to apply:
endterm="Smith00-X" -> (Smith, Jones & Murphy, 2000) INTEXTDEF first endterm="Smith00-S" -> (Smith et al., 2000) INTEXTDEF subsequent endterm="Smith00-W" -> Smith, Jones & Murphy (2000) combined AUTHORONLY/YEARONLY first endterm="Smith00-U" -> Smith et al., (2000) combined AUTHORONLY/YEARONLY subsequent endterm="Smith00-A" -> Smith, Jones & Murphy AUTHORONLY first endterm="Smith00-Q" -> Smith et al. AUTHORONLY subsequent endterm="Smith00-Y" -> (2000) YEARONLY
i.e. -X -W -A for initial citations and -S -U -Q for subsequent citations
In fact -S, -U
and -Q
aren't needed at all because
with the source document at hand we can just count the number
of previous citations using the same key and can adjust the
style accordingly (when xsl:number works properly!). On the other hand, when RefDB itself
provides active support for biblioref
elements, then compatibility
could require them, for rigorous citation formatting.
But in fact that is not the final word on citation formatting, because the specific citation renderings are specified in every RefDB CITESTYLE (Hoenicka, 2005b) file, e.g.:
<CITSTYLE> <INTEXTDEF><REFNUMBER/></INTEXTDEF> <YEARONLY><REFNUMBER/></YEARONLY> <AUTHORONLY> ... </AUTHORONLY> </CITSTYLE>
With those specifications, the citations above could present as:
endterm="Smith00-X" -> [1] endterm="Smith00-S" -> [1] endterm="Smith00-W" -> Smith, Jones & Murphy (2000) (should that be [1]?) endterm="Smith00-U" -> Smith et al., (2000) (should that be [1]?) endterm="Smith00-A" -> Smith, Jones & Murphy endterm="Smith00-Q" -> Smith et al. endterm="Smith00-Y" -> [1]
and the corresponding bibliography would be ordered by citation sequence, and accordingly indexed.
I would also like to believe that a style configuration file resembling the following:
<CITSTYLE> <INTEXTDEF><CITEKEY/></INTEXTDEF> <YEARONLY><CITEKEY/></YEARONLY> ... </CITSTYLE>
might permit citations of the form:
endterm="Smith00-X" -> [Smith00] endterm="Smith00-S" -> [Smith00] endterm="Smith00-W" -> Smith, Jones & Murphy (2000) endterm="Smith00-U" -> Smith et al., (2000) endterm="Smith00-A" -> Smith, Jones & Murphy endterm="Smith00-Q" -> Smith et al. endterm="Smith00-Y" -> [Smith00]
with the corresponding bibliography ordered alphabetically and indexed in terms of citation keywords. This would provide consistency with the standard DocBook bibliographic style as documented in DocBook: The Definitive Guide (Walsh, Muellner and Stayton, 1999). As yet it is not supported.
![]() |
Note |
---|---|
There is no facility for page-note i.e. bottom of page style bibliographies in DocBook and consequently none in RefDB-lite. |
Personally I would like to see new, possibly configurable citation formats such as:
endterm="Walsh99-T" -> DocBook: The Definitive Guide (hyperlinked to bib) endterm="Smith00-F2" -> Some extended title/volume CITESTYLE specified free format
This would simplify writing extended citations for things like "DocBook: The Definitive Guide (Walsh, Muellner and Stayton, 1999)" by abbreviating
<citetitle>DocBook: The Definitive Guide</citetitle> <citation role="REFDB"><biblioref endterm="Walsh99-X"/></citation>.
to just:
<citation role="REFDB"><biblioref endterm="Walsh99-TW"/></citation>.
That would be very useful for citing software programs too. But is it practical and likely to be compatible with some future RefDB? Dunno.