<?xml version="1.0"?>

<reference xml:id="template"><?dbhtml dir="template"?><?dbhtml filename="index.html"?>
  
  
  <info>
    <title>Titlepage Template Stylesheet Reference</title>
    <releaseinfo role="meta">
      $Id$
    </releaseinfo>
  </info>
  <partintro xml:id="intro_partintro">
    <title>Introduction</title>
    
<para>This is technical reference documentation for the
      “titlepage” 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="templates">
<refnamediv>
<refname>t:templates</refname>
<refpurpose>Construct a stylesheet for the templates provided</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="t:templates"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>The <literal>t:templates</literal> element is the root of a
set of templates. This template creates an appropriate
<literal>xsl:stylesheet</literal> for the templates.</para>



<para>If the <literal>t:templates</literal> element has a
<literal>base-stylesheet</literal> attribute, an
<literal>xsl:import</literal> statement is constructed for it.</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star">
<refnamediv>
<refname>xsl:*</refname>
<refpurpose>Copy xsl: elements straight through</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="xsl:*"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>This template simply copies the xsl: elements
straight through into the result tree.</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage">
<refnamediv>
<refname>t:titlepage</refname>
<refpurpose>Create the templates necessary to construct a title page</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="t:titlepage"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>The <literal>t:titlepage</literal> element creates a set of
templates for processing the titlepage for an element. The
<quote>root</quote> of this template set is the template named
<quote><literal>wrapper.titlepage</literal></quote>. That is the
template that should be called to generate the title page.
</para>



<para>The <literal>t:titlepage</literal> element has three attributes:


<variablelist>
<varlistentry><term>element</term>
<listitem>
<para>The name of the source document element for which
these templates apply. In other words, to make a title page for the
<tag>article</tag> element, set the
<tag class="attribute">element</tag> attribute to
<quote><literal>article</literal></quote>. This attribute is required.
</para>
</listitem>
</varlistentry>
<varlistentry><term>wrapper</term>
<listitem>
<para>The entire title page can be wrapped with an element.
This attribute identifies that element.
</para>
</listitem>
</varlistentry>
<varlistentry><term>class</term>
<listitem>
<para>If the <tag class="attribute">class</tag> attribute
is set, a <tag class="attribute">class</tag> attribute with this
value will be added to the wrapper element that surrounds the entire
title page.
</para>
</listitem>
</varlistentry>
</variablelist>

</para>



<para>Any other attributes are copied through literally to the
wrapper element.</para>



<para>The content of a <literal>t:titlepage</literal> is one or
more <literal>t:titlepage-content</literal>,
<literal>t:titlepage-separator</literal>, and
<literal>t:titlepage-before</literal> elements.</para>



<para>Each of these elements may be provided for the <quote>recto</quote>
and <quote>verso</quote> sides of the title page.</para>


</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_copy.literal.atts">
<refnamediv>
<refname>@* (in copy.literal.atts mode)</refname>
<refpurpose>Copy t:titlepage attributes</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="@*" mode="copy.literal.atts"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>This template copies all of the <quote>other</quote> attributes
from a <literal>t:titlepage</literal> element onto the specified
wrapper.</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-content">
<refnamediv>
<refname>t:titlepage-content</refname>
<refpurpose>Create templates for the content of one side of a title page</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="t:titlepage-content"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>The title page content, that is, the elements from the source
document that are rendered on the title page, can be controlled independently
for the recto and verso sides of the title page.</para>



<para>The <literal>t:titlepage-content</literal> element has two attributes:


<variablelist>
<varlistentry><term>side</term>
<listitem>
<para>Identifies the side of the page to which this title
page content applies. The
<tag class="attribute">side</tag> attribute is required and
must be set to either 
<quote><literal>recto</literal></quote> or
<quote><literal>verso</literal></quote>. In addition, you must specify
exactly one <literal>t:titlepage-content</literal> for each side
within each <literal>t:titlepage</literal>.</para>

</listitem>
</varlistentry>
<varlistentry><term>order</term>
<listitem>
<para>Indicates how the order of the elements presented on
the title page is determined. If the
<tag class="attribute">order</tag> is
<quote><literal>document</literal></quote>, the elements are presented
in document order. Otherwise (if the
<tag class="attribute">order</tag> is
<quote><literal>stylesheet</literal></quote>), the elements are presented
in the order that they appear in the template (and consequently in
the stylesheet).</para>

</listitem>
</varlistentry>
</variablelist>

</para>



<para>The content of a <literal>t:titlepage-content</literal> element is
a list of element names. These names should be unqualified.  They identify
the elements in the source document that should appear on the title page.
</para>



<para>Each element may have a single attribute:
<tag class="attribute">predicate</tag>. The value of this
attribute is used as a predicate for the expression that matches
the element on which it occurs.</para>



<para>In other words, to put only the first three authors on the
recto-side of a title
page, you could specify:

<screen>
  &lt;t:titlepage-contents side="recto"&gt;
    &lt;!-- other titlepage elements --&gt;
    &lt;author predicate="[count(previous-sibling::author)&lt;2]"/&gt;
    &lt;!-- other titlepage elements --&gt;
  &lt;/t:titlepage-contents&gt;
</screen>
</para>



<para>Usually, the elements so named are empty. But it is possible to
make one level of selection within them. Suppose that you want to
process <literal>authorgroup</literal> elements on the title page, but
you want to select only proper authors, editors, or corporate authors,
not collaborators or other credited authors.</para>



<para>In that case, you can put a <literal>t:or</literal> group inside
the <literal>authorgroup</literal> element:

<screen>
  &lt;t:titlepage-contents side="recto"&gt;
    &lt;!-- other titlepage elements --&gt;
    &lt;authorgroup&gt;
      &lt;t:or&gt;
        &lt;author/&gt;
        &lt;editor/&gt;
        &lt;corpauthor/&gt;
      &lt;/t:or&gt;
    &lt;/authorgroup&gt;
    &lt;!-- other titlepage elements --&gt;
  &lt;/t:titlepage-contents&gt;
</screen>
</para>



<para>This will have the effect of automatically generating a template
for processing <literal>authorgroup</literal>s in the title page mode,
selecting only the specified children. If you need more complex processing,
you'll have to construct the templates by hand.</para>


</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-separator">
<refnamediv>
<refname>t:titlepage-separator</refname>
<refpurpose>Create templates for the separator</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="t:titlepage-separator"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>The title page is separated from the content which follows it by
the markup specified in the <literal>t:titlepage-separator</literal>
element.</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="titlepage-before">
<refnamediv>
<refname>t:titlepage-before</refname>
<refpurpose>Create templates for what precedes a title page</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="t:titlepage-before"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>Each side of the title page is preceded by the markup specified
in the <literal>t:titlepage-before</literal> element for that
side.</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_copy">
<refnamediv>
<refname>* (in copy mode)</refname>
<refpurpose>Copy elements</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="*" mode="copy"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>This template simply copies the elements that it applies to
straight through into the result tree.</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_copy">
<refnamediv>
<refname>@* (in copy mode)</refname>
<refpurpose>Copy attributes</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="@*" mode="copy"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>This template simply copies the attributes that it applies to
straight through into the result tree.</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="attr_star_in_document.order">
<refnamediv>
<refname>* (in document.order mode)</refname>
<refpurpose>Create rules to process titlepage elements in document order</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="*" mode="document.order"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>This template is called to process all of the children of the
<literal>t:titlepage-content</literal> element. It creates the hairy
select expression necessary to process each of those elements in
the title page.</para>



<para>Note that this template automatically handles the case where
some DocBook elements, like title and subtitle, can occur both inside
the *info elements where metadata is usually stored and outside.
</para>



<para>It also automatically calculates the name for the *info container
and handles elements that have historically had containers with different
names.</para>


</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_document.order">
<refnamediv>
<refname>* (in document.order mode)</refname>
<refpurpose>Create rules to process titlepage elements in stylesheet order</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="*" mode="document.order"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>This template is called to process all of the children of the
<literal>t:titlepage-content</literal> element. It creates the set
of <literal>xsl:apply-templates</literal> elements necessary
process each of those elements in the title page.</para>



<para>Note that this template automatically handles the case where
some DocBook elements, like title and subtitle, can occur both inside
the *info elements where metadata is usually stored and outside.
</para>



<para>It also automatically calculates the name for the *info container
and handles elements that have historically had containers with different
names.</para>


</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_titlepage.specialrules">
<refnamediv>
<refname>* (in titlepage.specialrules mode)</refname>
<refpurpose>Create templates for special rules</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="*" mode="titlepage.specialrules"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>This template is called to process all of the descendants of the
<literal>t:titlepage-content</literal> element that require special
processing. At present, that's just <literal>t:or</literal> elements.
</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="star_in_titlepage.subrules">
<refnamediv>
<refname>* (in titlepage.subrules mode)</refname>
<refpurpose>Create template for individual special rules</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="*" mode="titlepage.subrules"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>This template is called to process the children of special
template elements.
</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="or">
<refnamediv>
<refname>t:or</refname>
<refpurpose>Process the t:or special rule</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="t:or"/&gt;&lt;xsl:template match="t:or" mode="titlepage.subrules"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>This template processes t:or.</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="or_in_titlepage.subrules">
<refnamediv>
<refname>t:or (in titlepage.subrules mode)</refname>
<refpurpose>Process the t:or special rule in
titlepage.subrules mode</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template match="t:or" mode="titlepage.subrules"/&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>The titlepage.subrules mode doesn't apply to t:or, so just
reprocess this node in the normal mode.</para>

</refsect1></refentry>

<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="template.element-or-list">
<refnamediv>
<refname>element-or-list</refname>
<refpurpose>Construct the "or-list" used in the select attribute for
special rules.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>&lt;xsl:template name="element-or-list"&gt;
&lt;xsl:param name="elements" select="*"/&gt;
&lt;xsl:param name="element.count" select="count($elements)"/&gt;
&lt;xsl:param name="count" select="1"/&gt;
&lt;xsl:param name="orlist"/&gt;
  ...
&lt;/xsl:template&gt;</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>

<para>Walk through each of the children of t:or, producing the
text of the select attribute.</para>

</refsect1></refentry>
</reference>

