On Wed, Nov 06, 2002 at 08:34:24AM +0100, Stephan Wiesner wrote:
> Hi list,
> When I create an index (using XML and Saxon) and I want to take a
> glossary term referenced in the text into it I encounter the following
> problem.
>
> This is my glossary term:
> <glossentry id="glossDocBook">
> <glossterm>DocBook</glossterm>
> <acronym id="glossDocBookA">DocBook</acronym>
> <glossdef>
> <para>
> DocBook is a very popular set of tags for describing books,
> articles,
> ...
> </glossdef>
> </glossentry>
>
>
> And here is the reference:
> <para><indexterm><primary><xref linkend="glossDocBook"
> endterm="glossDocBookA"/>
> </primary></indexterm><xref linkend="glossDocBook"
> endterm="glossDocBookA"/>
> is cool.
> </para>
>
> The displayed text is correct: DocBook (which is a link to the glossary
> )
> The generated index, however, contains just the pagenumber, but the Term
> is left empty.
> It works fine, when I don't use the reference link for it:
> <para><indexterm><primary>MyDocBook
> </primary></indexterm><xref linkend="glossDocBook"
> endterm="glossDocBookA"/>
> is cool.
> </para>
>
> Now the text contains "DocBook" and the index contains "MyDocBook",
> which I consider correct.
I looked at how the indexing templates work, and they
are using string functions applied to <indexterm> subelements
like <primary>. When you process an element in the context
of a string, you get just the text data from the
element. Since <xref/> is empty, it has no text data, so
the index term is processed as if it were empty.
There is no "apply-templates" step that would resolve the
xref to text.
I don't know how hard it would be to change that behavior.
--
Bob Stayton 400 Encinal Street
Publications Architect Santa Cruz, CA 95060
Technical Publications voice: (831) 427-7796
Caldera International, Inc. fax: (831) 429-1887
email: [EMAIL PROTECTED]