You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The document contains a bibliography. Entries are referenced with citation. Transforming it to HTML with the recent release 2.2.0 shows that citationelements became a links to the biblioentry, which is correct. But I would expect the value of bibliomixed/abbrev as link content., Instead i find a label that is obviously generated by the stylesheets: "R_bi1_bibliomixed1" instead of "EU-TDD".
I am pretty sure that this is caused by the following template which is located at line 147 in xref.xsl:
<xsl:template match="db:bibliomixed|db:biblioentry" mode="m:crossref-label">
<xsl:choose>
<xsl:when test="node()[1]/self::db:abbrev
or (node()[1]/text()
and normalize-space(node()[1]) = ''
and node()[2]/self::db:abbrev)">
<xsl:apply-templates select="db:abbrev[1]"/>
</xsl:when>
<xsl:when test="@xml:id">
<xsl:value-of select="@xml:id"/>
</xsl:when>
<xsl:otherwise>
<xsl:next-match/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
The first branch checks, if for a given biblioentry or bibliomixed element one of the following conditions holds:
the first node is an db:abbrev element, or
the first node is a text node which, when normalized, is equal to the empty string, and the second node is an db:abbrev element
This check fails with the bibliomixed elements from the attached document, but i don't understand the reason. Debugging with <xsl:message /> indicates that:
the string-length(normalize-space(node[1]))) for the normalized text-content of the first node (which is indeed a text-node) is zero; but
comparing the normalized text-content to the empty string results in false().
This is what confuses me: the string-length is 0, but it is not equal to the empty string?
However, i think that the first check can be simplified to *[1]/self::db:abbrev (is the first element-node an db:abbrev element?).
I will make a pull request with this expression. Test ran successfully at my system.
Greetings, Frank
The text was updated successfully, but these errors were encountered:
I found an issue with the attached source document. Maybe i know how to fix it, but i don't understand the reason for the issue.
xnachweis.zip
The document contains a bibliography. Entries are referenced with
citation
. Transforming it to HTML with the recent release 2.2.0 shows thatcitation
elements becamea
links to the biblioentry, which is correct. But I would expect the value ofbibliomixed/abbrev
as link content., Instead i find a label that is obviously generated by the stylesheets: "R_bi1_bibliomixed1" instead of "EU-TDD".I am pretty sure that this is caused by the following template which is located at line 147 in
xref.xsl
:The first branch checks, if for a given
biblioentry
orbibliomixed
element one of the following conditions holds:db:abbrev
element, ordb:abbrev
elementThis check fails with the
bibliomixed
elements from the attached document, but i don't understand the reason. Debugging with<xsl:message />
indicates that:string-length(normalize-space(node[1])))
for the normalized text-content of the first node (which is indeed a text-node) is zero; butfalse()
.This is what confuses me: the string-length is 0, but it is not equal to the empty string?
However, i think that the first check can be simplified to
*[1]/self::db:abbrev
(is the first element-node andb:abbrev
element?).I will make a pull request with this expression. Test ran successfully at my system.
Greetings, Frank
The text was updated successfully, but these errors were encountered: