[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: complex positioning problem
Subject: Re: complex positioning problem
From: Bruce D'Arcus <bdarcus@xxxxxxxxxxxxx>
Date: Fri, 29 Oct 2004 20:02:15 -0400
|
On Oct 29, 2004, at 1:32 PM, Wendell Piez wrote:
At 01:26 PM 10/29/2004, you wrote:
I'd try doing this by first processing the entire document expanding
my citations into an (ad-hoc, locally-namespaced) markup format that
provides each citation or footnote reference with whatever
information it needs apart from the first/subsequent rule (that is,
as if they were thence to be rendered all alike irrespective of
their positions in the final list), and then in a second pass
introduce the Ibid/Idem, op.cit., etc. based on their positions
relative to one another. The rest of the second pass could be an
identity transform otherwise, assuming there's nothing else it is
useful for it to do.
I guess my question is how to handle that last pass; the "based on
their positions relative to one another" bit.
Well in that pass, their relative positions are determinable in
reference to "document order". So, for example, they could be
collected in a variable in which position() could be checked, or even
axes used to look at the immediate preceding one, etc.
FYI, one of my concerns is performance, since the bib references
(db:biblioref) can be in all manner of places (various section level
paragraphs, within footnotes, blockquotes, etc.).
Of course, XSLT 2.0 / XPath 2.0 also lets you construct sequences,
which could provide an even more direct way to do this, though perhaps
not quite as clean.
I append your code and a bit of spec from earlier in case anyone has
time today to try it (using either or any approach), noting that this
sample should be extended to exhibit the requirement:
<?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>
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".
Cheers,
Wendell
Cheers,
Wendell
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|