[xsl] complex positioning problem

Subject: [xsl] complex positioning problem
From: Bruce D'Arcus <bdarcus@xxxxxxxxxxxxx>
Date: Fri, 29 Oct 2004 08:53:30 -0400
I've got another design question that I find difficult to label with a neat subject line.

I'm continuing working on my bibliographic/citation stylesheets, and now need to tackle two new classes, with similar issues.

The most difficult one is note (footnote/endnote) style, whereby rendering of citations is determined by their relative position within the text. For example, we have:

1) First/subsequent.

On the first occurrence of a citation reference, we have one rendering. On all subsequent, we have another (shorter).

2) Ibid/Idem, op.cit.

When a parameter is switched on, then if one has the same single citation repeated immediately subsequent, then it gets rendered as "Ibid", if the same group of citations repeat, it's "Idem".

My current code processes bibliography and citations in separate modes, and there's not really any interaction between them (which is actually a problem in some ways because the bib records get rendered regardless of whether or not they're cited in the text). But here that won't work; rendering of both citations and bib list needs to get driven by the citations.

The other class with a related problem is numbered style, whereby citations get numbered based on their occurrence in the text (if repeated, though, there's no new number), and then the bibliography gets sorted by that number. So, you get [1] and [2-4] and [1, 5]
in text.


So how do I approach this problem? Again, using 2.0, where I am using temporary trees.

Bruce
=== input ===

<?xml version="1.0" encoding="utf-8"?>
<article xmlns="http://docbook.org/docbook-ng";>
  <info>
    <title>Test</title>
  </info>
  <section>
    <info>
      <title>Introduction</title>
    </info>
    <para>Some citations: <citation><biblioref linkend="one"/><biblioref
    linkend="two"/></citation></para>
  </section>
  <bibliography>
    <modsCollection xmlns="http://www.loc.gov/mods/v3";>
      <mods ID="one">
	<name type="personal">
	  <namePart type="given">John</namePart>
	  <namePart type="family">Doe</namePart>
	  <role>
	    <roleTerm type="text">author</roleTerm>
	  </role>
	</name>
	<titleInfo>
	  <title>Some Title</title>
	</titleInfo>
	<originInfo>
	  <dateIssued>1999</dateIssued>
	</originInfo>
      </mods>
      <mods ID="two">
	<name type="personal">
	  <namePart type="given">John</namePart>
	  <namePart type="family">Doe</namePart>
	  <role>
	    <roleTerm type="text">author</roleTerm>
	  </role>
	</name>
	<titleInfo>
	  <title>Another Title</title>
	</titleInfo>
	<originInfo>
	  <dateIssued>1999</dateIssued>
	</originInfo>
      </mods>
    </modsCollection>
  </bibliography>
</article>

Current Thread