|  | @@ -16,6 +16,10 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |       ******************************************************************** -->
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +<!-- Use internal variable for olink xlink role for consistency -->
 | 
	
		
			
				|  |  | +<xsl:variable 
 | 
	
		
			
				|  |  | +      name="xolink.role">http://docbook.org/xlink/role/olink</xsl:variable>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  <!-- ==================================================================== -->
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <xsl:template match="anchor">
 | 
	
	
		
			
				|  | @@ -966,15 +970,42 @@
 | 
	
		
			
				|  |  |  </xsl:template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <xsl:template match="olink" name="olink">
 | 
	
		
			
				|  |  | +  <!-- olink content may be passed in from xlink olink -->
 | 
	
		
			
				|  |  | +  <xsl:param name="content" select="NOTANELEMENT"/>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    <xsl:call-template name="anchor"/>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    <xsl:variable name="localinfo" select="@localinfo"/>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    <xsl:choose>
 | 
	
		
			
				|  |  |      <!-- olinks resolved by stylesheet and target database -->
 | 
	
		
			
				|  |  | -    <xsl:when test="@targetdoc or @targetptr" >
 | 
	
		
			
				|  |  | -      <xsl:variable name="targetdoc.att" select="@targetdoc"/>
 | 
	
		
			
				|  |  | -      <xsl:variable name="targetptr.att" select="@targetptr"/>
 | 
	
		
			
				|  |  | +    <xsl:when test="@targetdoc or @targetptr or
 | 
	
		
			
				|  |  | +                    (@xlink:role=$xolink.role and
 | 
	
		
			
				|  |  | +                     contains(@xlink:href, '#') )" >
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <xsl:variable name="targetdoc.att">
 | 
	
		
			
				|  |  | +        <xsl:choose>
 | 
	
		
			
				|  |  | +          <xsl:when test="@targetdoc != ''">
 | 
	
		
			
				|  |  | +            <xsl:value-of select="@targetdoc"/>
 | 
	
		
			
				|  |  | +          </xsl:when>
 | 
	
		
			
				|  |  | +          <xsl:when test="@xlink:role=$xolink.role and
 | 
	
		
			
				|  |  | +                       contains(@xlink:href, '#')" >
 | 
	
		
			
				|  |  | +            <xsl:value-of select="substring-before(@xlink:href, '#')"/>
 | 
	
		
			
				|  |  | +          </xsl:when>
 | 
	
		
			
				|  |  | +        </xsl:choose>
 | 
	
		
			
				|  |  | +      </xsl:variable>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <xsl:variable name="targetptr.att">
 | 
	
		
			
				|  |  | +        <xsl:choose>
 | 
	
		
			
				|  |  | +          <xsl:when test="@targetptr != ''">
 | 
	
		
			
				|  |  | +            <xsl:value-of select="@targetptr"/>
 | 
	
		
			
				|  |  | +          </xsl:when>
 | 
	
		
			
				|  |  | +          <xsl:when test="@xlink:role=$xolink.role and
 | 
	
		
			
				|  |  | +                       contains(@xlink:href, '#')" >
 | 
	
		
			
				|  |  | +            <xsl:value-of select="substring-after(@xlink:href, '#')"/>
 | 
	
		
			
				|  |  | +          </xsl:when>
 | 
	
		
			
				|  |  | +        </xsl:choose>
 | 
	
		
			
				|  |  | +      </xsl:variable>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        <xsl:variable name="olink.lang">
 | 
	
		
			
				|  |  |          <xsl:call-template name="l10n.language">
 | 
	
	
		
			
				|  | @@ -1038,11 +1069,18 @@
 | 
	
		
			
				|  |  |        </xsl:variable>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        <xsl:variable name="hottext">
 | 
	
		
			
				|  |  | -        <xsl:call-template name="olink.hottext">
 | 
	
		
			
				|  |  | -          <xsl:with-param name="olink.key" select="$olink.key"/>
 | 
	
		
			
				|  |  | -          <xsl:with-param name="olink.lang" select="$olink.lang"/>
 | 
	
		
			
				|  |  | -          <xsl:with-param name="target.database" select="$target.database"/>
 | 
	
		
			
				|  |  | -        </xsl:call-template>
 | 
	
		
			
				|  |  | +        <xsl:choose>
 | 
	
		
			
				|  |  | +          <xsl:when test="$content">
 | 
	
		
			
				|  |  | +            <xsl:copy-of select="$content"/>
 | 
	
		
			
				|  |  | +          </xsl:when>
 | 
	
		
			
				|  |  | +          <xsl:otherwise>
 | 
	
		
			
				|  |  | +            <xsl:call-template name="olink.hottext">
 | 
	
		
			
				|  |  | +              <xsl:with-param name="olink.key" select="$olink.key"/>
 | 
	
		
			
				|  |  | +              <xsl:with-param name="olink.lang" select="$olink.lang"/>
 | 
	
		
			
				|  |  | +              <xsl:with-param name="target.database" select="$target.database"/>
 | 
	
		
			
				|  |  | +            </xsl:call-template>
 | 
	
		
			
				|  |  | +          </xsl:otherwise>
 | 
	
		
			
				|  |  | +        </xsl:choose>
 | 
	
		
			
				|  |  |        </xsl:variable>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        <xsl:variable name="olink.docname.citation">
 | 
	
	
		
			
				|  | @@ -1174,7 +1212,7 @@
 | 
	
		
			
				|  |  |    <xsl:param name="localinfo"/>
 | 
	
		
			
				|  |  |    <xsl:param name="return" select="href"/>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  <xsl:message terminate="yes">Fatal error: what is this supposed to do?</xsl:message>
 | 
	
		
			
				|  |  | +  <xsl:message terminate="yes">Fatal error: olink.outline template: what is this supposed to do?</xsl:message>
 | 
	
		
			
				|  |  |  </xsl:template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <!-- ==================================================================== -->
 |