<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
                xmlns:dyn="http://exslt.org/dynamic"
                xmlns:saxon="http://icl.com/saxon"
                xmlns:xlink="http://www.w3.org/1999/xlink"
                exclude-result-prefixes="doc dyn saxon"
                version='1.0'>

<!-- ********************************************************************
     $Id$
     ********************************************************************

     This file is part of the XSL DocBook Stylesheet distribution.
     See ../README or http://docbook.sf.net/release/xsl/current/ for
     copyright and other information.

     ******************************************************************** -->
<doc:reference xmlns="" xml:id="charmap">
  <info>
    <title>Common » Character-Map Template Reference</title>
    <releaseinfo role="meta">
      $Id$
    </releaseinfo>
  </info>
  <!-- * yes, partintro is a valid child of a reference... -->
  <partintro xml:id="partintro">
    <title>Introduction</title>
    <para>This is technical reference documentation for the
      character-map templates in the DocBook XSL Stylesheets.</para>
    <note>
      <para>These templates are defined in a separate file from the set
        of “common” templates because some of the common templates
        reference DocBook XSL stylesheet parameters, requiring the
        entire set of parameters to be imported/included in any
        stylesheet that imports/includes the common templates.</para>
      <para>The character-map templates don’t import or include
        any DocBook XSL stylesheet parameters, so the
        character-map templates can be used without importing the
        whole set of parameters.</para>
    </note>
    <para>This is not intended to be user documentation. It is
      provided for developers writing customization layers for the
      stylesheets.</para>
  </partintro>
</doc:reference>

<!-- ===================================== -->
<doc:template name="apply-character-map" xmlns="">
  <refpurpose>Applies an XSLT character map</refpurpose>
  <refdescription id="apply-character-map-desc">
    <para>This template applies an <link
      xlink:href="http://www.w3.org/TR/xslt20/#character-maps"
      >XSLT character map</link>; that is, it causes certain
      individual characters to be substituted with strings of one
      or more characters. It is useful mainly for replacing
      multiple “special” characters or symbols in the same target
      content. It uses the value of
      <parameter>map.contents</parameter> to do substitution on
      <parameter>content</parameter>, and then returns the
      modified contents.</para>
    <note>
      <para>This template is a very slightly modified version of
        Jeni Tennison’s <function>replace_strings</function>
        template in the <link
          xlink:href="http://www.dpawson.co.uk/xsl/sect2/StringReplace.html#d9351e13"
          >multiple string replacements</link> section of Dave Pawson’s
        <link xlink:href="http://www.dpawson.co.uk/xsl/index.html"
          >XSLT FAQ</link>.</para>
      <para>The <function>apply-string-subst-map</function>
        template is essentially the same template as the
        <function>apply-character-map</function> template; the
        only difference is that in the map that
        <function>apply-string-subst-map</function> expects, <tag
          class="attribute">oldstring</tag> and <tag
          class="attribute">newstring</tag> attributes are used
        instead of <tag class="attribute">character</tag> and <tag
          class="attribute">string</tag> attributes.</para>
    </note>
  </refdescription>
  <refparameter id="apply-character-map-params">
    <variablelist>
      <varlistentry><term>content</term>
        <listitem>
          <para>The content on which to perform the character-map
            substitution.</para>
        </listitem>
      </varlistentry>
      <varlistentry><term>map.contents</term>
        <listitem>
          <para>A node set of elements, with each element having
            the following attributes:
            <itemizedlist>
              <listitem>
                <simpara><tag class="attribute">character</tag>, a
                  character to be replaced</simpara>
              </listitem>
              <listitem>
                <simpara><tag class="attribute">string</tag>, a
                  string with which to replace <tag
                    class="attribute">character</tag></simpara>
              </listitem>
            </itemizedlist>
          </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refparameter>
</doc:template>
<xsl:template name="apply-character-map">
  <xsl:param name="content"/>
  <xsl:param name="map.contents"/>
  <xsl:variable name="replaced_text">
    <xsl:call-template name="string.subst">
      <xsl:with-param name="string" select="$content" />
      <xsl:with-param name="target" 
        select="$map.contents[1]/@character" />
      <xsl:with-param name="replacement" 
        select="$map.contents[1]/@string" />
    </xsl:call-template>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="$map.contents[2]">
      <xsl:call-template name="apply-character-map">
        <xsl:with-param name="content" select="$replaced_text" />
        <xsl:with-param name="map.contents"
          select="$map.contents[position() > 1]" />
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$replaced_text" />
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ===================================== -->
<doc:template name="read-character-map" xmlns="">
  <refpurpose>Reads in all or part of an XSLT character map</refpurpose>
  <refdescription id="read-character-map-desc">
    <para>The XSLT 2.0 specification describes <link
        xlink:href="http://www.w3.org/TR/xslt20/#character-maps"
        >character maps</link> and explains how they may be used
      to allow a specific character appearing in a text or
      attribute node in a final result tree to be substituted by
      a specified string of characters during serialization. The
      <function>read-character-map</function> template provides a
      means for reading and using character maps with XSLT
      1.0-based tools.</para>
    <para>This template reads the character-map contents from
      <parameter>uri</parameter> (in full or in part, depending on
      the value of the <parameter>use.subset</parameter>
      parameter), then passes those contents to the
      <function>apply-character-map</function> template, along with
      <parameter>content</parameter>, the data on which to perform
      the character substitution.</para>
    <para>Using the character map “in part” means that it uses only
      those <tag>output-character</tag> elements that match the
      XPath expression given in the value of the
      <parameter>subset.profile</parameter> parameter. The current
      implementation of that capability here relies on the
      <function>evaluate</function> extension XSLT function.</para>
  </refdescription>
  <refparameter id="read-character-map-params">
    <variablelist>
      <varlistentry><term>use.subset</term>
        <listitem>
          <para>Specifies whether to use a subset of the character
            map instead of the whole map; boolean
            <literal>0</literal> or <literal>1</literal></para>
        </listitem>
      </varlistentry>
      <varlistentry><term>subset.profile</term>
        <listitem>
          <para>XPath expression that specifies what subset of the
            character map to use</para>
        </listitem>
      </varlistentry>
      <varlistentry><term>uri</term>
        <listitem>
          <para>URI for a character map</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refparameter>
</doc:template>
<xsl:template name="read-character-map">
  <xsl:param name="use.subset"/>
  <xsl:param name="subset.profile"/>
  <xsl:param name="uri"/>
  <xsl:choose>
    <xsl:when test="$use.subset != 0">
      <!-- *use a subset of the character map instead of the full map -->
      <xsl:choose>
        <!-- * xsltproc and Xalan both support dyn:evaluate() -->
        <xsl:when test="function-available('dyn:evaluate')">
          <xsl:copy-of select="document($uri)//*[local-name()='output-character']
            [dyn:evaluate($subset.profile)]"/>
        </xsl:when>
        <!-- * Saxon has its own evaluate() and doesn't support dyn:evaluate() -->
        <xsl:when test="function-available('saxon:evaluate')">
          <xsl:copy-of select="document($uri)//*[local-name()='output-character']
            [saxon:evaluate($subset.profile)]"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:message terminate="yes"
>
Error: To process character-map subsets, you must use an XSLT engine
that supports the evaluate() XSLT extension function. Your XSLT engine
does not support it.
          </xsl:message>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:when>
    <xsl:otherwise>
      <!-- *value of $use.subset is non-zero, so use the full map -->
      <xsl:copy-of select="document($uri)//*[local-name()='output-character']"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>
