Subject: RE: regexs, grouping (?) and XSLT2?
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Sun, 8 Aug 2004 23:45:14 +0100
|
> With respect to the other issue, below is an example doc; might be
> easier to understand.
>
> So, the para output would be something like:
>
> <p>Some citations: (Doe, 1999a, 1999b; Doe and Jones, 1999)</p>
I think you're trying to solve several problems at the same time here. It
fails my 10-minute rule: I never spend more than ten minutes answering a
question on this list. Essentially both the para output and the list of
citations are grouping problems that can be tackled using
xsl:for-each-group, probably using group-adjacent. You may need to write a
function that calculates the grouping key. The suffix "a", "b" etc can be
obtained using xsl:number. It may be simplest to start by generating a copy
of the bibliography in which the list of authors (Doe and Jones) and the
year/serial (1999b) appear as additional computed child elements or
attributes, and then working with this copy.
Michael Kay
> And in the bib list:
>
> Doe (1999a)
> ----. (1999b)
> Doe and Jones (1999)
>
> ============
>
> <?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"/><biblioref linkend="three"/></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>
> <mods ID="three">
> <name type="personal">
> <namePart type="given">John</namePart>
> <namePart type="family">Doe</namePart>
> <role>
> <roleTerm type="text">author</roleTerm>
> </role>
> </name>
> <name type="personal">
> <namePart type="given">Jane</namePart>
> <namePart type="family">Jones</namePart>
> <role>
> <roleTerm type="text">author</roleTerm>
> </role>
> </name>
> <titleInfo>
> <title>Some Title</title>
> </titleInfo>
> <originInfo>
> <dateIssued>1999</dateIssued>
> </originInfo>
> </mods>
> </modsCollection>
> </bibliography>
> </article>
|