Thanks, I'll fix the example.
----- Original Message -----
Sent: Wednesday, April 02, 2008 5:49
AM
Subject: Re: [docbook-apps] Duplicate IDs
mess up FO TOC
Hello Bob,
I think I discovered a little bug in the XML
snippet you made. On the test dealing with @xml:id you made a concat with @id
instead of @xml:id
<xsl:when test="$object/@xml:id and $preceding.xid !=
0"> <xsl:value-of select="concat($object/@xml:id,
$preceding.xid)"/>
</xsl:when>
Regards, Mimil
On Wed, Jan 17, 2007 at 7:17 PM, Bob Stayton < bobs@sagehill.net> wrote:
Here
is a solution that will appear in the forthcoming Fourth Edition of my book
(no release date yet).
The object.id template is used to generate the output id
attribute as well as the link for any element. As long as it produces
consistent output for the same element, your links should work.
In
this customization, it counts the number of preceding elements with the same
id. If the count is greater than zero, then it appends the count to
the id value. It works with both @id and @xml:id for db5
documents.
<xsl:template name="object.id"> <xsl:param name="object"
select="."/>
<xsl:variable name="id"
select="@id"/> <xsl:variable name="xid"
select="@xml:id"/>
<xsl:variable name="preceding.id"
select="count(preceding::*[@id =
$id])"/>
<xsl:variable name="preceding.xid"
select="count(preceding::*[@xml:id =
$xid])"/>
<xsl:choose> <xsl:when
test="$object/@id and $preceding.id != 0"> <xsl:value-of
select="concat($object/@id, $preceding.id)"/> </xsl:when>
<xsl:when test="$object/@id"> <xsl:value-of
select="$object/@id"/> </xsl:when> <xsl:when
test="$object/@xml:id and $preceding.xid != 0">
<xsl:value-of select="concat($object/@id, $preceding.xid)"/>
</xsl:when> <xsl:when
test="$object/@xml:id"> <xsl:value-of
select="$object/@xml:id"/> </xsl:when>
<xsl:otherwise> <xsl:value-of
select="generate-id($object)"/>
</xsl:otherwise> </xsl:choose> </xsl:template>
Bob
Stayton Sagehill Enterprises DocBook Consulting bobs@sagehill.net
----- Original Message -----
From: "Claus Rasmussen" <claus@webclaus.com> To: <docbook-apps@lists.oasis-open.org> Sent: Wednesday,
January 17, 2007 7:02 AM Subject: [docbook-apps] Duplicate IDs mess up FO
TOC
|