| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641 | 
							- <?xml version="1.0"?>
 
- <reference xml:id="base">
 
-   <info>
 
-     <title>Common » Base Template Reference</title>
 
-     <releaseinfo role="meta">
 
-       $Id: common.xsl 9347 2012-05-11 03:49:49Z bobstayton $
 
-     </releaseinfo>
 
-   </info>
 
-   
 
-   <partintro xml:id="partintro">
 
-     <title>Introduction</title>
 
-     
 
- <para>This is technical reference documentation for the “base”
 
-       set of common templates in the DocBook XSL Stylesheets.</para>
 
-     
 
- <para>This is not intended to be user documentation. It is
 
-       provided for developers writing customization layers for the
 
-       stylesheets.</para>
 
-   </partintro>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.is.component">
 
- <refnamediv>
 
- <refname>is.component</refname>
 
- <refpurpose>Tests if a given node is a component-level element</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="is.component">
 
- <xsl:param name="node" select="."/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>This template returns '1' if the specified node is a component
 
- (Chapter, Appendix, etc.), and '0' otherwise.</para>
 
- </refsect1><refsect1><title>Parameters</title>
 
- <variablelist>
 
- <varlistentry><term>node</term>
 
- <listitem>
 
- <para>The node which is to be tested.</para>
 
- </listitem>
 
- </varlistentry>
 
- </variablelist>
 
- </refsect1><refsect1><title>Returns</title>
 
- <para>This template returns '1' if the specified node is a component
 
- (Chapter, Appendix, etc.), and '0' otherwise.</para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.is.section">
 
- <refnamediv>
 
- <refname>is.section</refname>
 
- <refpurpose>Tests if a given node is a section-level element</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="is.section">
 
- <xsl:param name="node" select="."/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>This template returns '1' if the specified node is a section
 
- (Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
 
- </refsect1><refsect1><title>Parameters</title>
 
- <variablelist>
 
- <varlistentry><term>node</term>
 
- <listitem>
 
- <para>The node which is to be tested.</para>
 
- </listitem>
 
- </varlistentry>
 
- </variablelist>
 
- </refsect1><refsect1><title>Returns</title>
 
- <para>This template returns '1' if the specified node is a section
 
- (Section, Sect1, Sect2, etc.), and '0' otherwise.</para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.section.level">
 
- <refnamediv>
 
- <refname>section.level</refname>
 
- <refpurpose>Returns the hierarchical level of a section</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="section.level">
 
- <xsl:param name="node" select="."/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>This template calculates the hierarchical level of a section.
 
- The element <tag>sect1</tag> is at level 1, <tag>sect2</tag> is
 
- at level 2, etc.</para>
 
- <para>Recursive sections are calculated down to the fifth level.</para>
 
- </refsect1><refsect1><title>Parameters</title>
 
- <variablelist>
 
- <varlistentry><term>node</term>
 
- <listitem>
 
- <para>The section node for which the level should be calculated.
 
- Defaults to the context node.</para>
 
- </listitem>
 
- </varlistentry>
 
- </variablelist>
 
- </refsect1><refsect1><title>Returns</title>
 
- <para>The section level, <quote>1</quote>, <quote>2</quote>, etc.
 
- </para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.qanda.section.level">
 
- <refnamediv>
 
- <refname>qanda.section.level</refname>
 
- <refpurpose>Returns the hierarchical level of a QandASet</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="qanda.section.level"/></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>This template calculates the hierarchical level of a QandASet.
 
- </para>
 
- </refsect1><refsect1><title>Returns</title>
 
- <para>The level, <quote>1</quote>, <quote>2</quote>, etc.
 
- </para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.select.mediaobject">
 
- <refnamediv>
 
- <refname>select.mediaobject</refname>
 
- <refpurpose>Selects and processes an appropriate media object from a list</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="select.mediaobject">
 
- <xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>This template takes a list of media objects (usually the
 
- children of a mediaobject or inlinemediaobject) and processes
 
- the "right" object.</para>
 
- <para>This template relies on a template named 
 
- "select.mediaobject.index" to determine which object
 
- in the list is appropriate.</para>
 
- <para>If no acceptable object is located, nothing happens.</para>
 
- </refsect1><refsect1><title>Parameters</title>
 
- <variablelist>
 
- <varlistentry><term>olist</term>
 
- <listitem>
 
- <para>The node list of potential objects to examine.</para>
 
- </listitem>
 
- </varlistentry>
 
- </variablelist>
 
- </refsect1><refsect1><title>Returns</title>
 
- <para>Calls <xsl:apply-templates> on the selected object.</para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.select.mediaobject.index">
 
- <refnamediv>
 
- <refname>select.mediaobject.index</refname>
 
- <refpurpose>Selects the position of the appropriate media object from a list</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="select.mediaobject.index">
 
- <xsl:param name="olist" select="imageobject|imageobjectco                      |videoobject|audioobject|textobject"/>
 
- <xsl:param name="count">1</xsl:param>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>This template takes a list of media objects (usually the
 
- children of a mediaobject or inlinemediaobject) and determines
 
- the "right" object. It returns the position of that object
 
- to be used by the calling template.</para>
 
- <para>If the parameter <parameter>use.role.for.mediaobject</parameter>
 
- is nonzero, then it first checks for an object with
 
- a role attribute of the appropriate value.  It takes the first
 
- of those.  Otherwise, it takes the first acceptable object
 
- through a recursive pass through the list.</para>
 
- <para>This template relies on a template named "is.acceptable.mediaobject"
 
- to determine if a given object is an acceptable graphic. The semantics
 
- of media objects is that the first acceptable graphic should be used.
 
- </para>
 
- <para>If no acceptable object is located, no index is returned.</para>
 
- </refsect1><refsect1><title>Parameters</title>
 
- <variablelist>
 
- <varlistentry><term>olist</term>
 
- <listitem>
 
- <para>The node list of potential objects to examine.</para>
 
- </listitem>
 
- </varlistentry>
 
- <varlistentry><term>count</term>
 
- <listitem>
 
- <para>The position in the list currently being considered by the 
 
- recursive process.</para>
 
- </listitem>
 
- </varlistentry>
 
- </variablelist>
 
- </refsect1><refsect1><title>Returns</title>
 
- <para>Returns the position in the original list of the selected object.</para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.is.acceptable.mediaobject">
 
- <refnamediv>
 
- <refname>is.acceptable.mediaobject</refname>
 
- <refpurpose>Returns '1' if the specified media object is recognized</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="is.acceptable.mediaobject">
 
- <xsl:param name="object"/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>This template examines a media object and returns '1' if the
 
- object is recognized as a graphic.</para>
 
- </refsect1><refsect1><title>Parameters</title>
 
- <variablelist>
 
- <varlistentry><term>object</term>
 
- <listitem>
 
- <para>The media object to consider.</para>
 
- </listitem>
 
- </varlistentry>
 
- </variablelist>
 
- </refsect1><refsect1><title>Returns</title>
 
- <para>0 or 1</para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.check.id.unique">
 
- <refnamediv>
 
- <refname>check.id.unique</refname>
 
- <refpurpose>Warn users about references to non-unique IDs</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="check.id.unique">
 
- <xsl:param name="linkend"/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>If passed an ID in <varname>linkend</varname>,
 
- <function>check.id.unique</function> prints
 
- a warning message to the user if either the ID does not exist or
 
- the ID is not unique.</para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.check.idref.targets">
 
- <refnamediv>
 
- <refname>check.idref.targets</refname>
 
- <refpurpose>Warn users about incorrectly typed references</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="check.idref.targets">
 
- <xsl:param name="linkend"/>
 
- <xsl:param name="element-list"/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>If passed an ID in <varname>linkend</varname>,
 
- <function>check.idref.targets</function> makes sure that the element
 
- pointed to by the link is one of the elements listed in
 
- <varname>element-list</varname> and warns the user otherwise.</para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.copyright.years">
 
- <refnamediv>
 
- <refname>copyright.years</refname>
 
- <refpurpose>Print a set of years with collapsed ranges</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="copyright.years">
 
- <xsl:param name="years"/>
 
- <xsl:param name="print.ranges" select="1"/>
 
- <xsl:param name="single.year.ranges" select="0"/>
 
- <xsl:param name="firstyear" select="0"/>
 
- <xsl:param name="nextyear" select="0"/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>This template prints a list of year elements with consecutive
 
- years printed as a range. In other words:</para>
 
- <screen><year>1992</year>
 
- <year>1993</year>
 
- <year>1994</year></screen>
 
- <para>is printed <quote>1992-1994</quote>, whereas:</para>
 
- <screen><year>1992</year>
 
- <year>1994</year></screen>
 
- <para>is printed <quote>1992, 1994</quote>.</para>
 
- <para>This template assumes that all the year elements contain only
 
- decimal year numbers, that the elements are sorted in increasing
 
- numerical order, that there are no duplicates, and that all the years
 
- are expressed in full <quote>century+year</quote>
 
- (<quote>1999</quote> not <quote>99</quote>) notation.</para>
 
- </refsect1><refsect1><title>Parameters</title>
 
- <variablelist>
 
- <varlistentry><term>years</term>
 
- <listitem>
 
- <para>The initial set of year elements.</para>
 
- </listitem>
 
- </varlistentry>
 
- <varlistentry><term>print.ranges</term>
 
- <listitem>
 
- <para>If non-zero, multi-year ranges are collapsed. If zero, all years
 
- are printed discretely.</para>
 
- </listitem>
 
- </varlistentry>
 
- <varlistentry><term>single.year.ranges</term>
 
- <listitem>
 
- <para>If non-zero, two consecutive years will be printed as a range,
 
- otherwise, they will be printed discretely. In other words, a single
 
- year range is <quote>1991-1992</quote> but discretely it's
 
- <quote>1991, 1992</quote>.</para>
 
- </listitem>
 
- </varlistentry>
 
- </variablelist>
 
- </refsect1><refsect1><title>Returns</title>
 
- <para>This template returns the formatted list of years.</para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.find.path.params">
 
- <refnamediv>
 
- <refname>find.path.params</refname>
 
- <refpurpose>Search in a table for the "best" match for the node</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="find.path.params">
 
- <xsl:param name="node" select="."/>
 
- <xsl:param name="table" select="''"/>
 
- <xsl:param name="location">
 
-     <xsl:call-template name="xpath.location">
 
-       <xsl:with-param name="node" select="$node"/>
 
-     </xsl:call-template>
 
-   </xsl:param>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>This template searches in a table for the value that most-closely
 
- (in the typical best-match sense of XSLT) matches the current (element)
 
- node location.</para>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.string.upper">
 
- <refnamediv>
 
- <refname>string.upper</refname>
 
- <refpurpose>Converts a string to all uppercase letters</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="string.upper">
 
- <xsl:param name="string" select="''"/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>Given a string, this template does a language-aware conversion
 
- of that string to all uppercase letters, based on the values of the
 
- <literal>lowercase.alpha</literal> and
 
- <literal>uppercase.alpha</literal> gentext keys for the current
 
- locale. It affects only those characters found in the values of
 
- <literal>lowercase.alpha</literal> and
 
- <literal>uppercase.alpha</literal>. All other characters are left
 
- unchanged.</para>
 
- </refsect1><refsect1><title>Parameters</title>
 
- <variablelist>
 
- <varlistentry><term>string</term>
 
- <listitem>
 
- <para>The string to convert to uppercase.</para>
 
- </listitem>
 
- </varlistentry>
 
- </variablelist>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.string.lower">
 
- <refnamediv>
 
- <refname>string.lower</refname>
 
- <refpurpose>Converts a string to all lowercase letters</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="string.lower">
 
- <xsl:param name="string" select="''"/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
- <para>Given a string, this template does a language-aware conversion
 
- of that string to all lowercase letters, based on the values of the
 
- <literal>uppercase.alpha</literal> and
 
- <literal>lowercase.alpha</literal> gentext keys for the current
 
- locale. It affects only those characters found in the values of
 
- <literal>uppercase.alpha</literal> and
 
- <literal>lowercase.alpha</literal>. All other characters are left
 
- unchanged.</para>
 
- </refsect1><refsect1><title>Parameters</title>
 
- <variablelist>
 
- <varlistentry><term>string</term>
 
- <listitem>
 
- <para>The string to convert to lowercase.</para>
 
- </listitem>
 
- </varlistentry>
 
- </variablelist>
 
- </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.select.choice.separator">
 
- <refnamediv>
 
- <refname>select.choice.separator</refname>
 
- <refpurpose>Returns localized choice separator</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="select.choice.separator"/></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
-     
 
- <para>This template enables auto-generation of an appropriate
 
-     localized "choice" separator (for example, "and" or "or") before
 
-     the final item in an inline list (though it could also be useful
 
-     for generating choice separators for non-inline lists).</para>
 
-     
 
- <para>It currently works by evaluating a processing instruction
 
-     (PI) of the form <?dbchoice choice="foo"?> :
 
-     
 
- <itemizedlist>
 
-       <listitem>
 
-         <simpara>if the value of the <tag>choice</tag>
 
-         pseudo-attribute is "and" or "or", returns a localized "and"
 
-         or "or"</simpara>
 
-       </listitem>
 
-       <listitem>
 
-         <simpara>otherwise returns the literal value of the
 
-         <tag>choice</tag> pseudo-attribute</simpara>
 
-       </listitem>
 
-     </itemizedlist>
 
-     The latter is provided only as a temporary workaround because the
 
-     locale files do not currently have translations for the word
 
-     <wordasword>or</wordasword>. So if you want to generate a a
 
-     logical "or" separator in French (for example), you currently need
 
-     to do this:
 
-     <literallayout><?dbchoice choice="ou"?></literallayout>
 
-     </para>
 
-     <warning>
 
-       
 
- <para>The <tag>dbchoice</tag> processing instruction is
 
-       an unfortunate hack; support for it may disappear in the future
 
-       (particularly if and when a more appropriate means for marking
 
-       up "choice" lists becomes available in DocBook).</para>
 
-     </warning>
 
-   </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.evaluate.info.profile">
 
- <refnamediv>
 
- <refname>evaluate.info.profile</refname>
 
- <refpurpose>Evaluates an info profile</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="evaluate.info.profile">
 
- <xsl:param name="profile"/>
 
- <xsl:param name="info"/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
-     
 
- <para>This template evaluates an "info profile" matching the XPath
 
-     expression given by the <parameter>profile</parameter>
 
-     parameter. It relies on the XSLT <function>evaluate()</function>
 
-     extension function.</para>
 
-     
 
- <para>The value of the <parameter>profile</parameter> parameter
 
-     can include the literal string <literal>$info</literal>. If found
 
-     in the value of the <parameter>profile</parameter> parameter, the
 
-     literal string <literal>$info</literal> string is replaced with
 
-     the value of the <parameter>info</parameter> parameter, which
 
-     should be a set of <replaceable>*info</replaceable> nodes; the
 
-     expression is then evaluated using the XSLT
 
-     <function>evaluate()</function> extension function.</para>
 
-   </refsect1><refsect1><title>Parameters</title>
 
-     
 
- <variablelist>
 
-        <varlistentry>
 
-         <term>profile</term>
 
-         <listitem>
 
-           
 
- <para>A string representing an XPath expression </para>
 
-         </listitem>
 
-       </varlistentry>
 
-        <varlistentry>
 
-         <term>info</term>
 
-         <listitem>
 
-           
 
- <para>A set of *info nodes</para>
 
-         </listitem>
 
-       </varlistentry>
 
-     </variablelist>
 
-   </refsect1><refsect1><title>Returns</title>
 
-     
 
- <para>Returns a node (the result of evaluating the
 
-     <parameter>profile</parameter> parameter)</para>
 
-   </refsect1></refentry>
 
- <refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.graphic.format.content-type">
 
- <refnamediv>
 
- <refname>graphic.format.content-type</refname>
 
- <refpurpose>Returns mimetype for media format</refpurpose>
 
- </refnamediv>
 
- <refsynopsisdiv>
 
- <synopsis><xsl:template name="graphic.format.content-type">
 
- <xsl:param name="format"/>
 
-   ...
 
- </xsl:template></synopsis>
 
- </refsynopsisdiv>
 
- <refsect1><title>Description</title>
 
-     
 
- <para>This takes as input a 'format' param and returns
 
-     a mimetype string.  It uses an xsl:choose after first
 
-     converting the input to all uppercase.</para>
 
-   </refsect1></refentry>
 
- </reference>
 
 
  |