Blame fo/xref.xsl

Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
                xmlns:d="http://docbook.org/ns/docbook"
Packit 6d14d2
		xmlns:fo="http://www.w3.org/1999/XSL/Format"
Packit 6d14d2
                xmlns:exsl="http://exslt.org/common"
Packit 6d14d2
                xmlns:xlink='http://www.w3.org/1999/xlink'
Packit 6d14d2
                exclude-result-prefixes="exsl xlink d"
Packit 6d14d2
                version='1.0'>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
     This file is part of the XSL DocBook Stylesheet distribution.
Packit 6d14d2
     See ../README or http://cdn.docbook.org/release/xsl/current/ for
Packit 6d14d2
     copyright and other information.
Packit 6d14d2
Packit 6d14d2
     ******************************************************************** -->
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
      name="xolink.role">http://docbook.org/xlink/role/olink</xsl:variable>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:anchor">
Packit 6d14d2
  <xsl:variable name="id">
Packit 6d14d2
    <xsl:call-template name="object.id"/>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="wrapper.name">
Packit 6d14d2
    <xsl:call-template name="inline.or.block"/>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  <xsl:element name="{$wrapper.name}">
Packit 6d14d2
    <xsl:attribute name="id">
Packit 6d14d2
      <xsl:value-of select="$id"/>
Packit 6d14d2
    </xsl:attribute>
Packit 6d14d2
  </xsl:element>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:xref" name="xref">
Packit 6d14d2
  <xsl:param name="xhref" select="@xlink:href"/>
Packit 6d14d2
  
Packit 6d14d2
  <xsl:param name="xlink.idref">
Packit 6d14d2
    
Packit 6d14d2
                  and (not(contains($xhref,'('))
Packit 6d14d2
                  or starts-with($xhref, '#xpointer(id('))">
Packit 6d14d2
      <xsl:call-template name="xpointer.idref">
Packit 6d14d2
        <xsl:with-param name="xpointer" select="$xhref"/>
Packit 6d14d2
      </xsl:call-template>
Packit 6d14d2
   </xsl:if>
Packit 6d14d2
  </xsl:param>
Packit 6d14d2
  <xsl:param name="xlink.targets" select="key('id',$xlink.idref)"/>
Packit 6d14d2
  <xsl:param name="linkend.targets" select="key('id',@linkend)"/>
Packit 6d14d2
  <xsl:param name="target" select="($xlink.targets | $linkend.targets)[1]"/>
Packit 6d14d2
  <xsl:param name="refelem" select="local-name($target)"/>
Packit 6d14d2
  <xsl:param name="referrer" select="."/>
Packit 6d14d2
  <xsl:param name="xrefstyle">
Packit 6d14d2
    <xsl:apply-templates select="." mode="xrefstyle">
Packit 6d14d2
      <xsl:with-param name="target" select="$target"/>
Packit 6d14d2
      <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    </xsl:apply-templates>
Packit 6d14d2
  </xsl:param>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="content">
Packit 6d14d2
    <fo:inline xsl:use-attribute-sets="xref.properties">
Packit 6d14d2
      <xsl:choose>
Packit 6d14d2
        <xsl:when test="@endterm">
Packit 6d14d2
          <xsl:variable name="etargets" select="key('id',@endterm)"/>
Packit 6d14d2
          <xsl:variable name="etarget" select="$etargets[1]"/>
Packit 6d14d2
          <xsl:choose>
Packit 6d14d2
            <xsl:when test="count($etarget) = 0">
Packit 6d14d2
              <xsl:message>
Packit 6d14d2
                <xsl:value-of select="count($etargets)"/>
Packit 6d14d2
                <xsl:text>Endterm points to nonexistent ID: </xsl:text>
Packit 6d14d2
                <xsl:value-of select="@endterm"/>
Packit 6d14d2
              </xsl:message>
Packit 6d14d2
              <xsl:text>???</xsl:text>
Packit 6d14d2
            </xsl:when>
Packit 6d14d2
            <xsl:otherwise>
Packit 6d14d2
              <xsl:apply-templates select="$etarget" mode="endterm"/>
Packit 6d14d2
            </xsl:otherwise>
Packit 6d14d2
          </xsl:choose>
Packit 6d14d2
        </xsl:when>
Packit 6d14d2
  
Packit 6d14d2
        <xsl:when test="$target/@xreflabel">
Packit 6d14d2
          <xsl:call-template name="xref.xreflabel">
Packit 6d14d2
            <xsl:with-param name="target" select="$target"/>
Packit 6d14d2
          </xsl:call-template>
Packit 6d14d2
        </xsl:when>
Packit 6d14d2
  
Packit 6d14d2
        <xsl:when test="$target">
Packit 6d14d2
          <xsl:if test="not(parent::d:citation)">
Packit 6d14d2
            <xsl:apply-templates select="$target" mode="xref-to-prefix">
Packit 6d14d2
              <xsl:with-param name="referrer" select="."/>
Packit 6d14d2
              <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
            </xsl:apply-templates>
Packit 6d14d2
          </xsl:if>
Packit 6d14d2
  
Packit 6d14d2
          <xsl:apply-templates select="$target" mode="xref-to">
Packit 6d14d2
            <xsl:with-param name="referrer" select="."/>
Packit 6d14d2
            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
          </xsl:apply-templates>
Packit 6d14d2
  
Packit 6d14d2
          <xsl:if test="not(parent::d:citation)">
Packit 6d14d2
            <xsl:apply-templates select="$target" mode="xref-to-suffix">
Packit 6d14d2
              <xsl:with-param name="referrer" select="."/>
Packit 6d14d2
              <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
            </xsl:apply-templates>
Packit 6d14d2
          </xsl:if>
Packit 6d14d2
        </xsl:when>
Packit 6d14d2
        <xsl:otherwise>
Packit 6d14d2
          <xsl:message>
Packit 6d14d2
            <xsl:text>ERROR: xref linking to </xsl:text>
Packit 6d14d2
            <xsl:value-of select="@linkend|@xlink:href"/>
Packit 6d14d2
            <xsl:text> has no generated link text.</xsl:text>
Packit 6d14d2
          </xsl:message>
Packit 6d14d2
          <xsl:text>???</xsl:text>
Packit 6d14d2
        </xsl:otherwise>
Packit 6d14d2
      </xsl:choose>
Packit 6d14d2
    </fo:inline>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
  <xsl:call-template name="simple.xlink">
Packit 6d14d2
    <xsl:with-param name="content" select="$content"/>
Packit 6d14d2
  </xsl:call-template>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="not($target)">
Packit 6d14d2
      
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    
Packit 6d14d2
                  and contains($xrefstyle, 'nopage')">
Packit 6d14d2
      
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:when test="starts-with(normalize-space($xrefstyle), 'template:')">
Packit 6d14d2
      
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    
Packit 6d14d2
    
Packit 6d14d2
                  and (contains($xrefstyle, 'page')
Packit 6d14d2
                       or contains($xrefstyle, 'Page')))
Packit 6d14d2
                  and ( $insert.xref.page.number = 'yes' 
Packit 6d14d2
                     or $insert.xref.page.number = '1')
Packit 6d14d2
                  or (local-name($target) = 'para'
Packit 6d14d2
                     and $xrefstyle = ''
Packit 6d14d2
                     and $insert.xref.page.number.para = 'yes')">
Packit 6d14d2
      <xsl:apply-templates select="$target" mode="page.citation">
Packit 6d14d2
        <xsl:with-param name="id" select="$target/@id|$target/@xml:id"/>
Packit 6d14d2
        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
      </xsl:apply-templates>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:biblioref" name="biblioref">
Packit 6d14d2
  <xsl:variable name="targets" select="key('id',@linkend)"/>
Packit 6d14d2
  <xsl:variable name="target" select="$targets[1]"/>
Packit 6d14d2
  <xsl:variable name="referrer" select="."/>
Packit 6d14d2
  <xsl:variable name="refelem" select="local-name($target)"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="xrefstyle">
Packit 6d14d2
    <xsl:apply-templates select="." mode="xrefstyle">
Packit 6d14d2
      <xsl:with-param name="target" select="$target"/>
Packit 6d14d2
      <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    </xsl:apply-templates>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  <xsl:call-template name="check.id.unique">
Packit 6d14d2
    <xsl:with-param name="linkend" select="@linkend"/>
Packit 6d14d2
  </xsl:call-template>
Packit 6d14d2
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="$refelem=''">
Packit 6d14d2
      <xsl:message>
Packit 6d14d2
        <xsl:text>XRef to nonexistent id: </xsl:text>
Packit 6d14d2
        <xsl:value-of select="@linkend"/>
Packit 6d14d2
      </xsl:message>
Packit 6d14d2
      <xsl:text>???</xsl:text>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
Packit 6d14d2
    <xsl:when test="@endterm">
Packit 6d14d2
      
Packit 6d14d2
                     xsl:use-attribute-sets="xref.properties">
Packit 6d14d2
        <xsl:variable name="etargets" select="key('id',@endterm)"/>
Packit 6d14d2
        <xsl:variable name="etarget" select="$etargets[1]"/>
Packit 6d14d2
        <xsl:choose>
Packit 6d14d2
          <xsl:when test="count($etarget) = 0">
Packit 6d14d2
            <xsl:message>
Packit 6d14d2
              <xsl:value-of select="count($etargets)"/>
Packit 6d14d2
              <xsl:text>Endterm points to nonexistent ID: </xsl:text>
Packit 6d14d2
              <xsl:value-of select="@endterm"/>
Packit 6d14d2
            </xsl:message>
Packit 6d14d2
            <xsl:text>???</xsl:text>
Packit 6d14d2
          </xsl:when>
Packit 6d14d2
          <xsl:otherwise>
Packit 6d14d2
            <xsl:apply-templates select="$etarget" mode="endterm"/>
Packit 6d14d2
          </xsl:otherwise>
Packit 6d14d2
        </xsl:choose>
Packit 6d14d2
      </fo:basic-link>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
Packit 6d14d2
    <xsl:when test="$target/@xreflabel">
Packit 6d14d2
      
Packit 6d14d2
                     xsl:use-attribute-sets="xref.properties">
Packit 6d14d2
        <xsl:call-template name="xref.xreflabel">
Packit 6d14d2
          <xsl:with-param name="target" select="$target"/>
Packit 6d14d2
        </xsl:call-template>
Packit 6d14d2
      </fo:basic-link>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:if test="not(parent::d:citation)">
Packit 6d14d2
        <xsl:apply-templates select="$target" mode="xref-to-prefix">
Packit 6d14d2
          <xsl:with-param name="referrer" select="."/>
Packit 6d14d2
          <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
        </xsl:apply-templates>
Packit 6d14d2
      </xsl:if>
Packit 6d14d2
Packit 6d14d2
      
Packit 6d14d2
                     xsl:use-attribute-sets="xref.properties">
Packit 6d14d2
        <xsl:apply-templates select="$target" mode="xref-to">
Packit 6d14d2
          <xsl:with-param name="referrer" select="."/>
Packit 6d14d2
          <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
        </xsl:apply-templates>
Packit 6d14d2
      </fo:basic-link>
Packit 6d14d2
Packit 6d14d2
      <xsl:if test="not(parent::d:citation)">
Packit 6d14d2
        <xsl:apply-templates select="$target" mode="xref-to-suffix">
Packit 6d14d2
          <xsl:with-param name="referrer" select="."/>
Packit 6d14d2
          <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
        </xsl:apply-templates>
Packit 6d14d2
      </xsl:if>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="endterm">
Packit 6d14d2
  
Packit 6d14d2
  <xsl:variable name="endterm">
Packit 6d14d2
    <xsl:apply-templates select="child::node()"/>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="$exsl.node.set.available != 0">
Packit 6d14d2
      <xsl:apply-templates select="exsl:node-set($endterm)" mode="remove-ids"/>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:copy-of select="$endterm"/>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="remove-ids">
Packit 6d14d2
  <xsl:copy>
Packit 6d14d2
    <xsl:for-each select="@*">
Packit 6d14d2
      <xsl:choose>
Packit 6d14d2
        <xsl:when test="local-name(.) != 'id'">
Packit 6d14d2
          <xsl:copy/>
Packit 6d14d2
        </xsl:when>
Packit 6d14d2
        <xsl:otherwise>
Packit 6d14d2
          <xsl:message>removing <xsl:value-of select="name(.)"/></xsl:message>
Packit 6d14d2
        </xsl:otherwise>
Packit 6d14d2
      </xsl:choose>
Packit 6d14d2
    </xsl:for-each>
Packit 6d14d2
    <xsl:apply-templates mode="remove-ids"/>
Packit 6d14d2
  </xsl:copy>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="xref-to-prefix">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
<xsl:template match="*" mode="xref-to-suffix">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:if test="$verbose != 0">
Packit 6d14d2
    <xsl:message>
Packit 6d14d2
      <xsl:text>Don't know what gentext to create for xref to: "</xsl:text>
Packit 6d14d2
      <xsl:value-of select="name(.)"/>
Packit 6d14d2
      <xsl:text>"</xsl:text>
Packit 6d14d2
    </xsl:message>
Packit 6d14d2
    <xsl:text>???</xsl:text>
Packit 6d14d2
  </xsl:if>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:title" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    
Packit 6d14d2
    <xsl:when test="contains(local-name(parent::*), 'info')">
Packit 6d14d2
      <xsl:apply-templates select="parent::*[2]" mode="xref-to">
Packit 6d14d2
        <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
        <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
      </xsl:apply-templates>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:apply-templates select="parent::*" mode="xref-to">
Packit 6d14d2
        <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
        <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
      </xsl:apply-templates>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
                     |d:biblioset|d:blockquote|d:calloutlist|d:caution|d:colophon
Packit 6d14d2
                     |d:constraintdef|d:formalpara|d:glossdiv|d:important|d:indexdiv
Packit 6d14d2
                     |d:itemizedlist|d:legalnotice|d:lot|d:msg|d:msgexplan|d:msgmain
Packit 6d14d2
                     |d:msgrel|d:msgset|d:msgsub|d:note|d:orderedlist|d:partintro
Packit 6d14d2
                     |d:productionset|d:qandadiv|d:refsynopsisdiv|d:screenshot|d:segmentedlist
Packit 6d14d2
                     |d:set|d:setindex|d:sidebar|d:tip|d:toc|d:variablelist|d:warning"
Packit 6d14d2
              mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:author|d:editor|d:othercredit|d:personname" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:call-template name="person.name"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:authorgroup" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:call-template name="person.name.list"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:figure|d:example|d:table|d:equation" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:procedure" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:task" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:cmdsynopsis" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="(.//d:command)[1]" mode="xref"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:funcsynopsis" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="(.//d:function)[1]" mode="xref"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:dedication|d:acknowledgements|d:preface|d:chapter|d:appendix" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:bibliography" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:biblioentry|d:bibliomixed" mode="xref-to-prefix">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:text>[</xsl:text>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:biblioentry|d:bibliomixed" mode="xref-to-suffix">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:text>]</xsl:text>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:biblioentry|d:bibliomixed" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="string(.) = ''">
Packit 6d14d2
      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
Packit 6d14d2
      <xsl:variable name="id" select="(@id|@xml:id)[1]"/>
Packit 6d14d2
      
Packit 6d14d2
                                         *[@id=$id or @xml:id=$id][1]"/>
Packit 6d14d2
      <xsl:choose>
Packit 6d14d2
        <xsl:when test="$entry">
Packit 6d14d2
          <xsl:choose>
Packit 6d14d2
            <xsl:when test="$bibliography.numbered != 0">
Packit 6d14d2
              
Packit 6d14d2
                          level="any" format="1"/>
Packit 6d14d2
            </xsl:when>
Packit 6d14d2
            <xsl:when test="local-name($entry/*[1]) = 'abbrev'">
Packit 6d14d2
              <xsl:apply-templates select="$entry/*[1]"/>
Packit 6d14d2
            </xsl:when>
Packit 6d14d2
            <xsl:otherwise>
Packit 6d14d2
              <xsl:value-of select="(@id|@xml:id)[1]"/>
Packit 6d14d2
            </xsl:otherwise>
Packit 6d14d2
          </xsl:choose>
Packit 6d14d2
        </xsl:when>
Packit 6d14d2
        <xsl:otherwise>
Packit 6d14d2
          <xsl:message>
Packit 6d14d2
            <xsl:text>No bibliography entry: </xsl:text>
Packit 6d14d2
            <xsl:value-of select="$id"/>
Packit 6d14d2
            <xsl:text> found in </xsl:text>
Packit 6d14d2
            <xsl:value-of select="$bibliography.collection"/>
Packit 6d14d2
          </xsl:message>
Packit 6d14d2
          <xsl:value-of select="(@id|@xml:id)[1]"/>
Packit 6d14d2
        </xsl:otherwise>
Packit 6d14d2
      </xsl:choose>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:choose>
Packit 6d14d2
        <xsl:when test="$bibliography.numbered != 0">
Packit 6d14d2
          
Packit 6d14d2
                      level="any" format="1"/>
Packit 6d14d2
        </xsl:when>
Packit 6d14d2
        <xsl:when test="local-name(*[1]) = 'abbrev'">
Packit 6d14d2
          <xsl:apply-templates select="*[1]"/>
Packit 6d14d2
        </xsl:when>
Packit 6d14d2
        <xsl:otherwise>
Packit 6d14d2
          <xsl:value-of select="(@id|@xml:id)[1]"/>
Packit 6d14d2
        </xsl:otherwise>
Packit 6d14d2
      </xsl:choose>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:glossary" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:glossentry" mode="xref-to">
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="$glossentry.show.acronym = 'primary'">
Packit 6d14d2
      <xsl:choose>
Packit 6d14d2
        <xsl:when test="d:acronym|d:abbrev">
Packit 6d14d2
          <xsl:apply-templates select="(d:acronym|d:abbrev)[1]"/>
Packit 6d14d2
        </xsl:when>
Packit 6d14d2
        <xsl:otherwise>
Packit 6d14d2
          <xsl:apply-templates select="d:glossterm[1]" mode="xref-to"/>
Packit 6d14d2
        </xsl:otherwise>
Packit 6d14d2
      </xsl:choose>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:apply-templates select="d:glossterm[1]" mode="xref-to"/>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:glossterm|d:firstterm" mode="xref-to">
Packit 6d14d2
  <xsl:apply-templates mode="no.anchor.mode"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:index" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:listitem" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
                     |d:sect1|d:sect2|d:sect3|d:sect4|d:sect5
Packit 6d14d2
                     |d:refsect1|d:refsect2|d:refsect3|d:refsection" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
  
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:topic" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:bridgehead" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
  
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:qandaset" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:qandadiv" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:qandaentry" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="d:question[1]" mode="xref-to">
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:question|d:answer" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="string-length(d:label) != 0">
Packit 6d14d2
      <xsl:apply-templates select="." mode="label.markup"/>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
        <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
        <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
        <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
      </xsl:apply-templates>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:part|d:reference" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:refentry" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="d:refmeta/d:refentrytitle">
Packit 6d14d2
      <xsl:apply-templates select="d:refmeta/d:refentrytitle"/>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:apply-templates select="d:refnamediv/d:refname[1]"/>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
  <xsl:apply-templates select="d:refmeta/d:manvolnum"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:refnamediv" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="d:refname[1]" mode="xref-to">
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:refname" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates mode="xref-to">
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:step" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:call-template name="gentext">
Packit 6d14d2
    <xsl:with-param name="key" select="'Step'"/>
Packit 6d14d2
  </xsl:call-template>
Packit 6d14d2
  <xsl:text> </xsl:text>
Packit 6d14d2
  <xsl:apply-templates select="." mode="number"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:varlistentry" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="d:term[1]" mode="xref-to">
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:varlistentry/d:term" mode="xref-to">
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
  
Packit 6d14d2
  
Packit 6d14d2
       in link text -->
Packit 6d14d2
  <xsl:apply-templates mode="no.anchor.mode"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:co" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="callout-bug"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:area|d:areaset" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:call-template name="callout-bug">
Packit 6d14d2
    <xsl:with-param name="conum">
Packit 6d14d2
      <xsl:apply-templates select="." mode="conumber"/>
Packit 6d14d2
    </xsl:with-param>
Packit 6d14d2
  </xsl:call-template>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:book" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose" select="1"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
    <xsl:with-param name="purpose" select="'xref'"/>
Packit 6d14d2
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
    <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
  </xsl:apply-templates>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
     uses the xrefstyle attribute if specified, or if not it falls back
Packit 6d14d2
     to the container element's link text -->
Packit 6d14d2
<xsl:template match="d:para|d:phrase|d:simpara|d:anchor|d:quote" mode="xref-to">
Packit 6d14d2
  <xsl:param name="referrer"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="verbose"/>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
                                       |ancestor::d:section
Packit 6d14d2
                                       |ancestor::d:sect1
Packit 6d14d2
                                       |ancestor::d:sect2
Packit 6d14d2
                                       |ancestor::d:sect3
Packit 6d14d2
                                       |ancestor::d:sect4
Packit 6d14d2
                                       |ancestor::d:sect5
Packit 6d14d2
                                       |ancestor::d:topic
Packit 6d14d2
                                       |ancestor::d:refsection
Packit 6d14d2
                                       |ancestor::d:refsect1
Packit 6d14d2
                                       |ancestor::d:refsect2
Packit 6d14d2
                                       |ancestor::d:refsect3
Packit 6d14d2
                                       |ancestor::d:chapter
Packit 6d14d2
                                       |ancestor::d:appendix
Packit 6d14d2
                                       |ancestor::d:preface
Packit 6d14d2
                                       |ancestor::d:partintro
Packit 6d14d2
                                       |ancestor::d:dedication
Packit 6d14d2
                                       |ancestor::d:acknowledgements
Packit 6d14d2
                                       |ancestor::d:colophon
Packit 6d14d2
                                       |ancestor::d:bibliography
Packit 6d14d2
                                       |ancestor::d:index
Packit 6d14d2
                                       |ancestor::d:glossary
Packit 6d14d2
                                       |ancestor::d:glossentry
Packit 6d14d2
                                       |ancestor::d:listitem
Packit 6d14d2
                                       |ancestor::d:varlistentry)[last()]"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="$xrefstyle != ''">
Packit 6d14d2
      <xsl:apply-templates select="." mode="object.xref.markup">
Packit 6d14d2
        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
        <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
        <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
      </xsl:apply-templates>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:if test="$verbose != 0">
Packit 6d14d2
        <xsl:message>
Packit 6d14d2
          <xsl:text>WARNING: xref to <</xsl:text>
Packit 6d14d2
          <xsl:value-of select="local-name()"/>
Packit 6d14d2
          <xsl:text> id="</xsl:text>
Packit 6d14d2
          <xsl:value-of select="@id|@xml:id"/>
Packit 6d14d2
          <xsl:text>"> has no generated text. Trying its ancestor elements.</xsl:text>
Packit 6d14d2
        </xsl:message>
Packit 6d14d2
      </xsl:if>
Packit 6d14d2
      <xsl:apply-templates select="$context" mode="xref-to">
Packit 6d14d2
        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
        <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
        <xsl:with-param name="verbose" select="$verbose"/>
Packit 6d14d2
      </xsl:apply-templates>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:indexterm" mode="xref-to">
Packit 6d14d2
  <xsl:value-of select="d:primary"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:primary|d:secondary|d:tertiary" mode="xref-to">
Packit 6d14d2
  <xsl:value-of select="."/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:link" name="link">
Packit 6d14d2
  <xsl:param name="referrer" select="."/>
Packit 6d14d2
  <xsl:param name="linkend" select="@linkend"/>
Packit 6d14d2
  <xsl:param name="targets" select="key('id',$linkend)"/>
Packit 6d14d2
  <xsl:param name="target" select="$targets[1]"/>
Packit 6d14d2
  <xsl:param name="xrefstyle">
Packit 6d14d2
    <xsl:apply-templates select="." mode="xrefstyle">
Packit 6d14d2
      <xsl:with-param name="target" select="$target"/>
Packit 6d14d2
      <xsl:with-param name="referrer" select="$referrer"/>
Packit 6d14d2
    </xsl:apply-templates>
Packit 6d14d2
  </xsl:param>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="content">
Packit 6d14d2
    <xsl:choose>
Packit 6d14d2
      <xsl:when test="count(child::node()) > 0">
Packit 6d14d2
        
Packit 6d14d2
        <xsl:apply-templates/>
Packit 6d14d2
      </xsl:when>
Packit 6d14d2
      
Packit 6d14d2
      <xsl:when test="@endterm">
Packit 6d14d2
        <xsl:variable name="etargets" select="key('id',@endterm)"/>
Packit 6d14d2
        <xsl:variable name="etarget" select="$etargets[1]"/>
Packit 6d14d2
        <xsl:choose>
Packit 6d14d2
          <xsl:when test="count($etarget) = 0">
Packit 6d14d2
            <xsl:message>
Packit 6d14d2
              <xsl:value-of select="count($etargets)"/>
Packit 6d14d2
              <xsl:text>Endterm points to nonexistent ID: </xsl:text>
Packit 6d14d2
              <xsl:value-of select="@endterm"/>
Packit 6d14d2
            </xsl:message>
Packit 6d14d2
            <xsl:text>???</xsl:text>
Packit 6d14d2
          </xsl:when>
Packit 6d14d2
          <xsl:otherwise>
Packit 6d14d2
              <xsl:apply-templates select="$etarget" mode="endterm"/>
Packit 6d14d2
          </xsl:otherwise>
Packit 6d14d2
        </xsl:choose>
Packit 6d14d2
      </xsl:when>
Packit 6d14d2
      
Packit 6d14d2
      <xsl:when test="@xlink:href">
Packit 6d14d2
	  <fo:inline hyphenate="false">
Packit 6d14d2
	    <xsl:call-template name="hyphenate-url">
Packit 6d14d2
	      <xsl:with-param name="url" select="@xlink:href"/>
Packit 6d14d2
	    </xsl:call-template>
Packit 6d14d2
	  </fo:inline>
Packit 6d14d2
      </xsl:when>
Packit 6d14d2
      <xsl:otherwise>
Packit 6d14d2
        <xsl:message>
Packit 6d14d2
          <xsl:text>Link element has no content and no Endterm. </xsl:text>
Packit 6d14d2
          <xsl:text>Nothing to show in the link to </xsl:text>
Packit 6d14d2
          <xsl:value-of select="$target"/>
Packit 6d14d2
        </xsl:message>
Packit 6d14d2
        <xsl:text>???</xsl:text>
Packit 6d14d2
      </xsl:otherwise>
Packit 6d14d2
    </xsl:choose>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="styled.content">
Packit 6d14d2
    <xsl:choose>
Packit 6d14d2
      <xsl:when test="@xlink:role = $xolink.role">
Packit 6d14d2
        
Packit 6d14d2
        <xsl:copy-of select="$content"/>
Packit 6d14d2
      </xsl:when>
Packit 6d14d2
      <xsl:otherwise>
Packit 6d14d2
        <fo:inline xsl:use-attribute-sets="xref.properties">
Packit 6d14d2
          <xsl:copy-of select="$content"/>
Packit 6d14d2
        </fo:inline>
Packit 6d14d2
      </xsl:otherwise>
Packit 6d14d2
    </xsl:choose>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  <xsl:call-template name="simple.xlink">
Packit 6d14d2
    <xsl:with-param name="node" select="."/>
Packit 6d14d2
    <xsl:with-param name="linkend" select="$linkend"/>
Packit 6d14d2
    <xsl:with-param name="content" select="$styled.content"/>
Packit 6d14d2
  </xsl:call-template>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    
Packit 6d14d2
    <xsl:when test="not($linkend)">
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    
Packit 6d14d2
    
Packit 6d14d2
                  and contains($xrefstyle, 'nopage')">
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    
Packit 6d14d2
                  and $insert.link.page.number = 'maybe'  
Packit 6d14d2
                  and (contains($xrefstyle, 'page')
Packit 6d14d2
                       or contains($xrefstyle, 'Page')))
Packit 6d14d2
                  or ( $insert.link.page.number = 'yes' 
Packit 6d14d2
                     or $insert.link.page.number = '1')">
Packit 6d14d2
      <xsl:apply-templates select="$target" mode="page.citation">
Packit 6d14d2
        <xsl:with-param name="id" select="$linkend"/>
Packit 6d14d2
        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
      </xsl:apply-templates>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:ulink" name="ulink">
Packit 6d14d2
  <xsl:param name="url" select="@url"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name ="ulink.url">
Packit 6d14d2
    <xsl:call-template name="fo-external-image">
Packit 6d14d2
      <xsl:with-param name="filename" select="$url"/>
Packit 6d14d2
    </xsl:call-template>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
                 external-destination="{$ulink.url}">
Packit 6d14d2
    <xsl:choose>
Packit 6d14d2
      <xsl:when test="count(child::node())=0 or (string(.) = $url)">
Packit 6d14d2
	<fo:inline hyphenate="false">
Packit 6d14d2
	  <xsl:call-template name="hyphenate-url">
Packit 6d14d2
	    <xsl:with-param name="url" select="$url"/>
Packit 6d14d2
	  </xsl:call-template>
Packit 6d14d2
	</fo:inline>
Packit 6d14d2
      </xsl:when>
Packit 6d14d2
      <xsl:otherwise>
Packit 6d14d2
        <xsl:apply-templates/>
Packit 6d14d2
      </xsl:otherwise>
Packit 6d14d2
    </xsl:choose>
Packit 6d14d2
  </fo:basic-link>
Packit 6d14d2
  
Packit 6d14d2
  
Packit 6d14d2
  
Packit 6d14d2
  <xsl:call-template name="hyperlink.url.display">
Packit 6d14d2
    <xsl:with-param name="url" select="$url"/>
Packit 6d14d2
    <xsl:with-param name="ulink.url" select="$ulink.url"/>
Packit 6d14d2
  </xsl:call-template>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template name="hyperlink.url.display">
Packit 6d14d2
  
Packit 6d14d2
  
Packit 6d14d2
  
Packit 6d14d2
  
Packit 6d14d2
  <xsl:param name="url"/>
Packit 6d14d2
  <xsl:param name="ulink.url">
Packit 6d14d2
    
Packit 6d14d2
    <xsl:call-template name="fo-external-image">
Packit 6d14d2
      <xsl:with-param name="filename" select="$url"/>
Packit 6d14d2
    </xsl:call-template>
Packit 6d14d2
  </xsl:param>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
                and string(.) != $url
Packit 6d14d2
                and $ulink.show != 0">
Packit 6d14d2
    
Packit 6d14d2
    
Packit 6d14d2
    
Packit 6d14d2
    <xsl:choose>
Packit 6d14d2
      <xsl:when test="$ulink.footnotes != 0 and not(ancestor::d:footnote) and not(ancestor::*[@floatstyle='before'])">
Packit 6d14d2
        
Packit 6d14d2
        
Packit 6d14d2
        <fo:footnote>
Packit 6d14d2
          <xsl:call-template name="ulink.footnote.number"/>
Packit 6d14d2
          <fo:footnote-body xsl:use-attribute-sets="footnote.properties">
Packit 6d14d2
            <fo:block>
Packit 6d14d2
              <xsl:call-template name="ulink.footnote.number"/>
Packit 6d14d2
              <xsl:text> </xsl:text>
Packit 6d14d2
              <fo:basic-link external-destination="{$ulink.url}">
Packit 6d14d2
                <xsl:value-of select="$url"/>
Packit 6d14d2
              </fo:basic-link>
Packit 6d14d2
            </fo:block>
Packit 6d14d2
          </fo:footnote-body>
Packit 6d14d2
        </fo:footnote>
Packit 6d14d2
      </xsl:when>
Packit 6d14d2
      <xsl:otherwise>
Packit 6d14d2
        
Packit 6d14d2
        
Packit 6d14d2
        <fo:inline hyphenate="false">
Packit 6d14d2
          
Packit 6d14d2
          <xsl:text> [</xsl:text>
Packit 6d14d2
          <fo:basic-link external-destination="{$ulink.url}">
Packit 6d14d2
            <xsl:call-template name="hyphenate-url">
Packit 6d14d2
              <xsl:with-param name="url" select="$url"/>
Packit 6d14d2
            </xsl:call-template>
Packit 6d14d2
          </fo:basic-link>
Packit 6d14d2
          <xsl:text>]</xsl:text>
Packit 6d14d2
        </fo:inline>
Packit 6d14d2
      </xsl:otherwise>
Packit 6d14d2
    </xsl:choose>
Packit 6d14d2
  </xsl:if>
Packit 6d14d2
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template name="ulink.footnote.number">
Packit 6d14d2
  <fo:inline xsl:use-attribute-sets="footnote.mark.properties">
Packit 6d14d2
    <xsl:choose>
Packit 6d14d2
      <xsl:when test="$fop.extensions != 0">
Packit 6d14d2
        <xsl:attribute name="vertical-align">super</xsl:attribute>
Packit 6d14d2
      </xsl:when>
Packit 6d14d2
      <xsl:otherwise>
Packit 6d14d2
        <xsl:attribute name="baseline-shift">super</xsl:attribute>
Packit 6d14d2
      </xsl:otherwise>
Packit 6d14d2
    </xsl:choose>
Packit 6d14d2
    <xsl:variable name="fnum">
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
      
Packit 6d14d2
                  from="d:chapter|d:appendix|d:preface|d:article|d:refentry|d:bibliography[not(parent::d:article)]"
Packit 6d14d2
                  count="d:footnote[not(@label)][not(ancestor::d:tgroup)]
Packit 6d14d2
                  |d:ulink[node()][@url != .][not(ancestor::d:footnote)]
Packit 6d14d2
                  |*[node()][@xlink:href][not(@xlink:href = .)][not(starts-with(@xlink:href,'#'))]
Packit 6d14d2
                    [not(contains(@xlink:href,'#') and @xlink:role = $xolink.role)]
Packit 6d14d2
                    [not(@xlink:type) or @xlink:type='simple']
Packit 6d14d2
                    [not(ancestor::d:footnote)]"
Packit 6d14d2
                  format="1"/>
Packit 6d14d2
    </xsl:variable>
Packit 6d14d2
    <xsl:choose>
Packit 6d14d2
      <xsl:when test="string-length($footnote.number.symbols) >= $fnum">
Packit 6d14d2
        <xsl:value-of select="substring($footnote.number.symbols, $fnum, 1)"/>
Packit 6d14d2
      </xsl:when>
Packit 6d14d2
      <xsl:otherwise>
Packit 6d14d2
        <xsl:number value="$fnum" format="{$footnote.number.format}"/>
Packit 6d14d2
      </xsl:otherwise>
Packit 6d14d2
    </xsl:choose>
Packit 6d14d2
  </fo:inline>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template name="hyphenate-url">
Packit 6d14d2
  <xsl:param name="url" select="''"/>
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="$ulink.hyphenate = ''">
Packit 6d14d2
      <xsl:value-of select="$url"/>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:when test="string-length($url) > 1">
Packit 6d14d2
      <xsl:variable name="char" select="substring($url, 1, 1)"/>
Packit 6d14d2
      <xsl:value-of select="$char"/>
Packit 6d14d2
      <xsl:if test="contains($ulink.hyphenate.chars, $char)">
Packit 6d14d2
        
Packit 6d14d2
        <xsl:if test="not($char = '/' and substring($url,2,1) = '/')">
Packit 6d14d2
          <xsl:copy-of select="$ulink.hyphenate"/>
Packit 6d14d2
        </xsl:if>
Packit 6d14d2
      </xsl:if>
Packit 6d14d2
      
Packit 6d14d2
      <xsl:call-template name="hyphenate-url">
Packit 6d14d2
        <xsl:with-param name="url" select="substring($url, 2)"/>
Packit 6d14d2
      </xsl:call-template>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:value-of select="$url"/>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:olink" name="olink">
Packit 6d14d2
  
Packit 6d14d2
  <xsl:param name="content" select="NOTANELEMENT"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    
Packit 6d14d2
    
Packit 6d14d2
                    (@xlink:role=$xolink.role and
Packit 6d14d2
                     contains(@xlink:href, '#') )" >
Packit 6d14d2
Packit 6d14d2
      <xsl:variable name="targetdoc.att">
Packit 6d14d2
        <xsl:choose>
Packit 6d14d2
          <xsl:when test="@targetdoc != ''">
Packit 6d14d2
            <xsl:value-of select="@targetdoc"/>
Packit 6d14d2
          </xsl:when>
Packit 6d14d2
          
Packit 6d14d2
                       contains(@xlink:href, '#')" >
Packit 6d14d2
            <xsl:value-of select="substring-before(@xlink:href, '#')"/>
Packit 6d14d2
          </xsl:when>
Packit 6d14d2
        </xsl:choose>
Packit 6d14d2
      </xsl:variable>
Packit 6d14d2
Packit 6d14d2
      <xsl:variable name="targetptr.att">
Packit 6d14d2
        <xsl:choose>
Packit 6d14d2
          <xsl:when test="@targetptr != ''">
Packit 6d14d2
            <xsl:value-of select="@targetptr"/>
Packit 6d14d2
          </xsl:when>
Packit 6d14d2
          
Packit 6d14d2
                       contains(@xlink:href, '#')" >
Packit 6d14d2
            <xsl:value-of select="substring-after(@xlink:href, '#')"/>
Packit 6d14d2
          </xsl:when>
Packit 6d14d2
        </xsl:choose>
Packit 6d14d2
      </xsl:variable>
Packit 6d14d2
Packit 6d14d2
      <xsl:variable name="olink.lang">
Packit 6d14d2
        <xsl:call-template name="l10n.language">
Packit 6d14d2
          <xsl:with-param name="xref-context" select="true()"/>
Packit 6d14d2
        </xsl:call-template>
Packit 6d14d2
      </xsl:variable>
Packit 6d14d2
    
Packit 6d14d2
      <xsl:variable name="target.database.filename">
Packit 6d14d2
        <xsl:call-template name="select.target.database">
Packit 6d14d2
          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
Packit 6d14d2
          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
Packit 6d14d2
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit 6d14d2
        </xsl:call-template>
Packit 6d14d2
      </xsl:variable>
Packit 6d14d2
    
Packit 6d14d2
      
Packit 6d14d2
          select="document($target.database.filename, /)"/>
Packit 6d14d2
    
Packit 6d14d2
      <xsl:if test="$olink.debug != 0">
Packit 6d14d2
        <xsl:message>
Packit 6d14d2
          <xsl:text>Olink debug: root element of target.database is '</xsl:text>
Packit 6d14d2
          <xsl:value-of select="local-name($target.database/*[1])"/>
Packit 6d14d2
          <xsl:text>'.</xsl:text>
Packit 6d14d2
        </xsl:message>
Packit 6d14d2
      </xsl:if>
Packit 6d14d2
    
Packit 6d14d2
      <xsl:variable name="olink.key">
Packit 6d14d2
        <xsl:call-template name="select.olink.key">
Packit 6d14d2
          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
Packit 6d14d2
          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
Packit 6d14d2
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit 6d14d2
          <xsl:with-param name="target.database" select="$target.database"/>
Packit 6d14d2
        </xsl:call-template>
Packit 6d14d2
      </xsl:variable>
Packit 6d14d2
    
Packit 6d14d2
      <xsl:if test="string-length($olink.key) = 0">
Packit 6d14d2
        <xsl:call-template name="olink.unresolved">
Packit 6d14d2
          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
Packit 6d14d2
          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
Packit 6d14d2
        </xsl:call-template>
Packit 6d14d2
      </xsl:if>
Packit 6d14d2
Packit 6d14d2
      <xsl:variable name="href">
Packit 6d14d2
        <xsl:call-template name="make.olink.href">
Packit 6d14d2
          <xsl:with-param name="olink.key" select="$olink.key"/>
Packit 6d14d2
          <xsl:with-param name="target.database" select="$target.database"/>
Packit 6d14d2
        </xsl:call-template>
Packit 6d14d2
      </xsl:variable>
Packit 6d14d2
Packit 6d14d2
      
Packit 6d14d2
      <xsl:variable name="linkend">
Packit 6d14d2
        <xsl:call-template name="olink.as.linkend">
Packit 6d14d2
          <xsl:with-param name="olink.key" select="$olink.key"/>
Packit 6d14d2
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit 6d14d2
          <xsl:with-param name="target.database" select="$target.database"/>
Packit 6d14d2
        </xsl:call-template>
Packit 6d14d2
      </xsl:variable>
Packit 6d14d2
Packit 6d14d2
      <xsl:variable name="hottext">
Packit 6d14d2
        <xsl:choose>
Packit 6d14d2
          <xsl:when test="string-length($content) != 0">
Packit 6d14d2
            <xsl:copy-of select="$content"/>
Packit 6d14d2
          </xsl:when>
Packit 6d14d2
          <xsl:otherwise>
Packit 6d14d2
            <xsl:call-template name="olink.hottext">
Packit 6d14d2
              <xsl:with-param name="olink.key" select="$olink.key"/>
Packit 6d14d2
              <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit 6d14d2
              <xsl:with-param name="target.database" select="$target.database"/>
Packit 6d14d2
            </xsl:call-template>
Packit 6d14d2
          </xsl:otherwise>
Packit 6d14d2
        </xsl:choose>
Packit 6d14d2
      </xsl:variable>
Packit 6d14d2
Packit 6d14d2
      <xsl:variable name="olink.docname.citation">
Packit 6d14d2
        <xsl:call-template name="olink.document.citation">
Packit 6d14d2
          <xsl:with-param name="olink.key" select="$olink.key"/>
Packit 6d14d2
          <xsl:with-param name="target.database" select="$target.database"/>
Packit 6d14d2
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit 6d14d2
        </xsl:call-template>
Packit 6d14d2
      </xsl:variable>
Packit 6d14d2
Packit 6d14d2
      <xsl:variable name="olink.page.citation">
Packit 6d14d2
        <xsl:call-template name="olink.page.citation">
Packit 6d14d2
          <xsl:with-param name="olink.key" select="$olink.key"/>
Packit 6d14d2
          <xsl:with-param name="target.database" select="$target.database"/>
Packit 6d14d2
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit 6d14d2
          <xsl:with-param name="linkend" select="$linkend"/>
Packit 6d14d2
        </xsl:call-template>
Packit 6d14d2
      </xsl:variable>
Packit 6d14d2
Packit 6d14d2
      <xsl:choose>
Packit 6d14d2
        <xsl:when test="$linkend != ''">
Packit 6d14d2
          
Packit 6d14d2
                       xsl:use-attribute-sets="xref.properties">
Packit 6d14d2
            <xsl:call-template name="anchor"/>
Packit 6d14d2
            <xsl:copy-of select="$hottext"/>
Packit 6d14d2
            <xsl:copy-of select="$olink.page.citation"/>
Packit 6d14d2
          </fo:basic-link>
Packit 6d14d2
        </xsl:when>
Packit 6d14d2
        <xsl:when test="$href != ''">
Packit 6d14d2
          <xsl:choose>
Packit 6d14d2
            <xsl:when test="$fop1.extensions != 0">
Packit 6d14d2
              <xsl:variable name="href.mangled">
Packit 6d14d2
                <xsl:choose>
Packit 6d14d2
                  <xsl:when test="contains($href, '#')">
Packit 6d14d2
                    <xsl:value-of select="concat(substring-before($href,'#'), '#dest=', substring-after($href,'#'))"/>
Packit 6d14d2
                  </xsl:when>
Packit 6d14d2
                  <xsl:otherwise>
Packit 6d14d2
                    <xsl:value-of select="$href"/>
Packit 6d14d2
                  </xsl:otherwise>
Packit 6d14d2
                </xsl:choose>
Packit 6d14d2
              </xsl:variable>
Packit 6d14d2
              
Packit 6d14d2
                             xsl:use-attribute-sets="olink.properties">
Packit 6d14d2
                <xsl:copy-of select="$hottext"/>
Packit 6d14d2
              </fo:basic-link>
Packit 6d14d2
              <xsl:copy-of select="$olink.page.citation"/>
Packit 6d14d2
              <xsl:copy-of select="$olink.docname.citation"/>
Packit 6d14d2
            </xsl:when>
Packit 6d14d2
            <xsl:when test="$xep.extensions != 0">
Packit 6d14d2
              
Packit 6d14d2
                             xsl:use-attribute-sets="olink.properties">
Packit 6d14d2
                <xsl:call-template name="anchor"/>
Packit 6d14d2
                <xsl:copy-of select="$hottext"/>
Packit 6d14d2
              </fo:basic-link>
Packit 6d14d2
              <xsl:copy-of select="$olink.page.citation"/>
Packit 6d14d2
              <xsl:copy-of select="$olink.docname.citation"/>
Packit 6d14d2
            </xsl:when>
Packit 6d14d2
            <xsl:when test="$axf.extensions != 0">
Packit 6d14d2
              
Packit 6d14d2
                             xsl:use-attribute-sets="olink.properties">
Packit 6d14d2
                <xsl:copy-of select="$hottext"/>
Packit 6d14d2
              </fo:basic-link>
Packit 6d14d2
              <xsl:copy-of select="$olink.page.citation"/>
Packit 6d14d2
              <xsl:copy-of select="$olink.docname.citation"/>
Packit 6d14d2
            </xsl:when>
Packit 6d14d2
            <xsl:otherwise>
Packit 6d14d2
              
Packit 6d14d2
                             xsl:use-attribute-sets="olink.properties">
Packit 6d14d2
                <xsl:copy-of select="$hottext"/>
Packit 6d14d2
              </fo:basic-link>
Packit 6d14d2
              <xsl:copy-of select="$olink.page.citation"/>
Packit 6d14d2
              <xsl:copy-of select="$olink.docname.citation"/>
Packit 6d14d2
            </xsl:otherwise>
Packit 6d14d2
          </xsl:choose>
Packit 6d14d2
        </xsl:when>
Packit 6d14d2
        <xsl:otherwise>
Packit 6d14d2
          <xsl:copy-of select="$hottext"/>
Packit 6d14d2
          <xsl:copy-of select="$olink.page.citation"/>
Packit 6d14d2
          <xsl:copy-of select="$olink.docname.citation"/>
Packit 6d14d2
        </xsl:otherwise>
Packit 6d14d2
      </xsl:choose>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
Packit 6d14d2
    
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:apply-templates/>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="insert.olink.docname.markup">
Packit 6d14d2
  <xsl:param name="docname" select="''"/>
Packit 6d14d2
  
Packit 6d14d2
  <fo:inline font-style="italic">
Packit 6d14d2
    <xsl:value-of select="$docname"/>
Packit 6d14d2
  </fo:inline>
Packit 6d14d2
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:olink" mode="object.xref.template"/>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template name="olink.as.linkend">
Packit 6d14d2
  <xsl:param name="olink.key" select="''"/>
Packit 6d14d2
  <xsl:param name="olink.lang" select="''"/>
Packit 6d14d2
  <xsl:param name="target.database" select="NotANode"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="targetdoc">
Packit 6d14d2
    <xsl:value-of select="substring-before($olink.key, '/')"/>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="targetptr">
Packit 6d14d2
    
Packit 6d14d2
       select="substring-before(substring-after($olink.key, '/'), '/')"/>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="target.lang">
Packit 6d14d2
    <xsl:variable name="candidate">
Packit 6d14d2
      <xsl:for-each select="$target.database" >
Packit 6d14d2
        
Packit 6d14d2
                  select="key('targetptr-key', $olink.key)[1]/@lang" />
Packit 6d14d2
      </xsl:for-each>
Packit 6d14d2
    </xsl:variable>
Packit 6d14d2
    <xsl:choose>
Packit 6d14d2
      <xsl:when test="$candidate != ''">
Packit 6d14d2
        <xsl:value-of select="$candidate"/>
Packit 6d14d2
      </xsl:when>
Packit 6d14d2
      <xsl:otherwise>
Packit 6d14d2
        <xsl:value-of select="$olink.lang"/>
Packit 6d14d2
      </xsl:otherwise>
Packit 6d14d2
    </xsl:choose>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
                $olink.lang = $target.lang">
Packit 6d14d2
    <xsl:variable name="targets" select="key('id',$targetptr)"/>
Packit 6d14d2
    <xsl:variable name="target" select="$targets[1]"/>
Packit 6d14d2
    <xsl:if test="$target">
Packit 6d14d2
      <xsl:value-of select="$targetptr"/>
Packit 6d14d2
    </xsl:if>
Packit 6d14d2
  </xsl:if>
Packit 6d14d2
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template name="title.xref">
Packit 6d14d2
  <xsl:param name="target" select="."/>
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    
Packit 6d14d2
                    or local-name($target) = 'example'
Packit 6d14d2
                    or local-name($target) = 'equation'
Packit 6d14d2
                    or local-name($target) = 'table'
Packit 6d14d2
                    or local-name($target) = 'dedication'
Packit 6d14d2
                    or local-name($target) = 'acknowledgements'
Packit 6d14d2
                    or local-name($target) = 'preface'
Packit 6d14d2
                    or local-name($target) = 'bibliography'
Packit 6d14d2
                    or local-name($target) = 'glossary'
Packit 6d14d2
                    or local-name($target) = 'index'
Packit 6d14d2
                    or local-name($target) = 'setindex'
Packit 6d14d2
                    or local-name($target) = 'colophon'">
Packit 6d14d2
      <xsl:call-template name="gentext.startquote"/>
Packit 6d14d2
      <xsl:apply-templates select="$target" mode="title.markup"/>
Packit 6d14d2
      <xsl:call-template name="gentext.endquote"/>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <fo:inline font-style="italic">
Packit 6d14d2
        <xsl:apply-templates select="$target" mode="title.markup"/>
Packit 6d14d2
      </fo:inline>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template name="number.xref">
Packit 6d14d2
  <xsl:param name="target" select="."/>
Packit 6d14d2
  <xsl:apply-templates select="$target" mode="label.markup"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template name="xref.xreflabel">
Packit 6d14d2
  
Packit 6d14d2
  
Packit 6d14d2
  
Packit 6d14d2
  <xsl:param name="target" select="."/>
Packit 6d14d2
  <xsl:value-of select="$target/@xreflabel"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:title" mode="xref">
Packit 6d14d2
  <xsl:apply-templates/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:command" mode="xref">
Packit 6d14d2
  <xsl:call-template name="inline.boldseq"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:function" mode="xref">
Packit 6d14d2
  <xsl:call-template name="inline.monoseq"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="page.citation">
Packit 6d14d2
  <xsl:param name="id" select="'???'"/>
Packit 6d14d2
  <xsl:param name="xrefstyle" select="''"/>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
                 xsl:use-attribute-sets="xref.properties">
Packit 6d14d2
    <fo:inline keep-together.within-line="always">
Packit 6d14d2
      <xsl:call-template name="substitute-markup">
Packit 6d14d2
        <xsl:with-param name="template">
Packit 6d14d2
          <xsl:call-template name="gentext.template">
Packit 6d14d2
            <xsl:with-param name="name" select="'page.citation'"/>
Packit 6d14d2
            <xsl:with-param name="context" select="'xref'"/>
Packit 6d14d2
            <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit 6d14d2
          </xsl:call-template>
Packit 6d14d2
        </xsl:with-param>
Packit 6d14d2
      </xsl:call-template>
Packit 6d14d2
    </fo:inline>
Packit 6d14d2
  </fo:basic-link>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="pagenumber.markup">
Packit 6d14d2
  <xsl:variable name="id">
Packit 6d14d2
    <xsl:call-template name="object.id"/>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
  <fo:page-number-citation ref-id="{$id}"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="insert.title.markup">
Packit 6d14d2
  <xsl:param name="purpose"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="title"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="$purpose = 'xref'">
Packit 6d14d2
      <xsl:copy-of select="$title"/>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:copy-of select="$title"/>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:chapter|d:appendix" mode="insert.title.markup">
Packit 6d14d2
  <xsl:param name="purpose"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="title"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="$purpose = 'xref'">
Packit 6d14d2
      <fo:inline font-style="italic">
Packit 6d14d2
        <xsl:copy-of select="$title"/>
Packit 6d14d2
      </fo:inline>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:copy-of select="$title"/>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="insert.subtitle.markup">
Packit 6d14d2
  <xsl:param name="purpose"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="subtitle"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:copy-of select="$subtitle"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="insert.label.markup">
Packit 6d14d2
  <xsl:param name="purpose"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="label"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:copy-of select="$label"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="insert.pagenumber.markup">
Packit 6d14d2
  <xsl:param name="purpose"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="pagenumber"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:copy-of select="$pagenumber"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="*" mode="insert.direction.markup">
Packit 6d14d2
  <xsl:param name="purpose"/>
Packit 6d14d2
  <xsl:param name="xrefstyle"/>
Packit 6d14d2
  <xsl:param name="direction"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:copy-of select="$direction"/>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
<xsl:template match="d:olink" mode="pagenumber.markup">
Packit 6d14d2
  
Packit 6d14d2
  <xsl:variable name="targetdoc.att" select="@targetdoc"/>
Packit 6d14d2
  <xsl:variable name="targetptr.att" select="@targetptr"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="olink.lang">
Packit 6d14d2
    <xsl:call-template name="l10n.language">
Packit 6d14d2
      <xsl:with-param name="xref-context" select="true()"/>
Packit 6d14d2
    </xsl:call-template>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="target.database.filename">
Packit 6d14d2
    <xsl:call-template name="select.target.database">
Packit 6d14d2
      <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
Packit 6d14d2
      <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
Packit 6d14d2
      <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit 6d14d2
    </xsl:call-template>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
      select="document($target.database.filename, /)"/>
Packit 6d14d2
Packit 6d14d2
  <xsl:if test="$olink.debug != 0">
Packit 6d14d2
    <xsl:message>
Packit 6d14d2
      <xsl:text>Olink debug: root element of target.database is '</xsl:text>
Packit 6d14d2
      <xsl:value-of select="local-name($target.database/*[1])"/>
Packit 6d14d2
      <xsl:text>'.</xsl:text>
Packit 6d14d2
    </xsl:message>
Packit 6d14d2
  </xsl:if>
Packit 6d14d2
Packit 6d14d2
  <xsl:variable name="olink.key">
Packit 6d14d2
    <xsl:call-template name="select.olink.key">
Packit 6d14d2
      <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
Packit 6d14d2
      <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
Packit 6d14d2
      <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit 6d14d2
      <xsl:with-param name="target.database" select="$target.database"/>
Packit 6d14d2
    </xsl:call-template>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  
Packit 6d14d2
  <xsl:variable name="linkend">
Packit 6d14d2
    <xsl:call-template name="olink.as.linkend">
Packit 6d14d2
      <xsl:with-param name="olink.key" select="$olink.key"/>
Packit 6d14d2
      <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit 6d14d2
      <xsl:with-param name="target.database" select="$target.database"/>
Packit 6d14d2
    </xsl:call-template>
Packit 6d14d2
  </xsl:variable>
Packit 6d14d2
Packit 6d14d2
  <xsl:choose>
Packit 6d14d2
    <xsl:when test="$linkend != ''">
Packit 6d14d2
      <fo:page-number-citation ref-id="{$linkend}"/>
Packit 6d14d2
    </xsl:when>
Packit 6d14d2
    <xsl:otherwise>
Packit 6d14d2
      <xsl:call-template name="olink.error">
Packit 6d14d2
        <xsl:with-param name="message">
Packit 6d14d2
          <xsl:text>no page number linkend for local olink '</xsl:text>
Packit 6d14d2
          <xsl:value-of select="$olink.key"/>
Packit 6d14d2
          <xsl:text>'</xsl:text>
Packit 6d14d2
        </xsl:with-param>
Packit 6d14d2
      </xsl:call-template>
Packit 6d14d2
    </xsl:otherwise>
Packit 6d14d2
  </xsl:choose>
Packit 6d14d2
</xsl:template>
Packit 6d14d2
Packit 6d14d2
</xsl:stylesheet>