<xsl:variable name="currentdoc.key" >
<xsl:for-each select="$target.database" >
<xsl:value-of select="key('targetdoc-key',
- $current.docid)/@targetdoc" />
+ $current.docid)[1]/@targetdoc" />
</xsl:for-each>
</xsl:variable>
<xsl:choose>
<xsl:for-each select="$target.database" >
<xsl:call-template name="targetpath" >
<xsl:with-param name="dirnode"
- select="key('targetdoc-key', $current.docid)/parent::dir"/>
+ select="key('targetdoc-key', $current.docid)[1]/parent::dir"/>
<xsl:with-param name="targetdoc" select="$targetdoc"/>
</xsl:call-template>
</xsl:for-each >
<!-- In either case, add baseuri from its document entry-->
<xsl:variable name="docbaseuri">
<xsl:for-each select="$target.database" >
- <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+ <xsl:value-of select="key('targetdoc-key', $targetdoc)[1]/@baseuri" />
</xsl:for-each>
</xsl:variable>
<xsl:if test="$docbaseuri != ''" >
<!-- Just use any baseuri from its document entry -->
<xsl:variable name="docbaseuri">
<xsl:for-each select="$target.database" >
- <xsl:value-of select="key('targetdoc-key', $targetdoc)/@baseuri" />
+ <xsl:value-of select="key('targetdoc-key', $targetdoc)[1]/@baseuri" />
</xsl:for-each>
</xsl:variable>
<xsl:if test="$docbaseuri != ''" >
</xsl:choose>
</xsl:variable>
- <!-- Form the href information -->
- <xsl:if test="not(contains($baseuri, ':'))">
- <!-- if not an absolute uri, add upward path from olink chunk -->
- <xsl:value-of select="$upward.from.path"/>
- </xsl:if>
+ <!-- Is this olink to be active? -->
+ <xsl:variable name="active.olink">
+ <xsl:choose>
+ <xsl:when test="$activate.external.olinks = 0">
+ <xsl:choose>
+ <xsl:when test="$current.docid = ''">1</xsl:when>
+ <xsl:when test="$targetdoc = ''">1</xsl:when>
+ <xsl:when test="$targetdoc = $current.docid">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
- <xsl:if test="$baseuri != ''">
- <xsl:value-of select="$baseuri"/>
- <xsl:if test="substring($target.href,1,1) != '#'">
- <!--xsl:text>/</xsl:text-->
+ <xsl:if test="$active.olink != 0">
+ <!-- Form the href information -->
+ <xsl:if test="not(contains($baseuri, ':'))">
+ <!-- if not an absolute uri, add upward path from olink chunk -->
+ <xsl:value-of select="$upward.from.path"/>
+ </xsl:if>
+
+ <xsl:if test="$baseuri != ''">
+ <xsl:value-of select="$baseuri"/>
+ <xsl:if test="substring($target.href,1,1) != '#'">
+ <!--xsl:text>/</xsl:text-->
+ </xsl:if>
+ </xsl:if>
+ <!-- optionally turn off frag for PDF references -->
+ <xsl:if test="not($insert.olink.pdf.frag = 0 and
+ translate(substring($baseuri, string-length($baseuri) - 3),
+ 'PDF', 'pdf') = '.pdf'
+ and starts-with($target.href, '#') )">
+ <xsl:value-of select="$target.href"/>
</xsl:if>
- </xsl:if>
- <!-- optionally turn off frag for PDF references -->
- <xsl:if test="not($insert.olink.pdf.frag = 0 and
- translate(substring($baseuri, string-length($baseuri) - 3),
- 'PDF', 'pdf') = '.pdf'
- and starts-with($target.href, '#') )">
- <xsl:value-of select="$target.href"/>
</xsl:if>
</xsl:if>
</xsl:template>