Blob Blame History Raw
<?xml version='1.0'?>
<!-- vim: sw=2 sta et
-->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
                xmlns:l="http://docbook2x.sourceforge.net/xsl/localization"
                exclude-result-prefixes="doc l"
                version='1.0'
                xml:lang="en">

<!-- ********************************************************************
     $Id: check-idref.xsl,v 1.2 2004/08/06 14:50:01 stevecheng Exp $
     ********************************************************************

     (C) 2000-2004 Steve Cheng <stevecheng@users.sourceforge.net>

     This file is part of the docbook2X XSLT stylesheets for
     converting DocBook to Texinfo.

     See ../../COPYING for the copyright status of this software.

     ******************************************************************** -->

<xsl:template name="check-idref">
  <xsl:param name="target" />
  <xsl:param name="content" />
  <xsl:param name="bad-content" />

  <xsl:choose>
    <xsl:when test="not($target)">
      <!-- No such ID -->
      <xsl:call-template name="user-message">
        <xsl:with-param name="arg-1" select="@linkend" />
        <xsl:with-param name="key">reference to non-existent ID</xsl:with-param>
        <xsl:with-param name="content">reference to non-existent ID "<l:a1 />"</xsl:with-param>
      </xsl:call-template>

      <xsl:copy-of select="$bad-content" />
    </xsl:when>

    <xsl:otherwise>
      <xsl:copy-of select="$content" />
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ============================================================ -->

<!-- Not the most obvious place to put this template, 
     but I didn't want to bother making a separate file for it. -->

<xsl:template name="print-id">
  <xsl:param name="node" select="." />

  <xsl:choose>
    <xsl:when test="$node/@id != ''">
      <xsl:value-of select="$node/@id" />
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="generate-id($node)" />
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

      
</xsl:stylesheet>