<?xml version="1.0"?>
<?xml-stylesheet href="/pool/xslt_ht.xslt" type="application/xml"?>
<xsl:stylesheet
  xmlns = "http://www.w3.org/1999/xhtml"
  xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
  xmlns:d = "http://herbaer.de/xmlns/20051201/doc"
  xmlns:sl = "http://herbaer.de/xmlns/20100205/imgselect"
  xmlns:xl = "http://www.w3.org/1999/xlink"
  version = "1.0"
  exclude-result-prefixes = "d sl xl"
>
<!--
  XHTML-Darstellung einer Bild-Auswahl
  2010, 2011 Herbert Schiemann <h.schiemann@herbaer.de>
  Borkener Str. 167, 46284 Dorsten, Germany
  GPL Version 2 oder neuer
  Jede Gewährleistung ist ausgeschlossen.
-->
<!-- Präfix für interne Verweise: imgselect_ht. -->
<d:info xmlns="http://herbaer.de/xmlns/20051201/doc">
  <title>imgselect_ht.xslt</title>
  <subtitle>XHTML-Darstellung einer Bild-Auswahl</subtitle>
  <date>2011-04-08</date>
  <author>
    <personname>
      <firstname>Herbert</firstname>
      <surname>Schiemann</surname>
    </personname>
    <email>h.schiemann@herbaer.de</email>
  </author>
</d:info>

<para xmlns="http://herbaer.de/xmlns/20051201/doc">
Präfix des Pfades der Vorschaubilder,
verwendet in der Vorlage
<link linkend="imgselect_ht.match_sl_image.mode_lst_preview"><tag class="element"
>image</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_preview"><tag class="attvalue"
>lst_preview</tag></link>.
Wenn genau eine Quell-Datei
(<tag class="element">imgselect/meta/srcfile</tag>) angegeben ist,
und dieser Parameterwert nicht mit <literal>'/'</literal> beginnt,
wird der Verzeichnispfad der Quelldatei
(<varname><link linkend="imgselect_ht.variable_g_imgbase">g_imgbase</link></varname>)
vorangestellt.
</para>
<xsl:param name="p_preview_prf" select="'thumbs/'"/>

<para xmlns="http://herbaer.de/xmlns/20051201/doc">
Suffix des Pfades der Vorschaubilder,
verwendet in der Vorlage
<link linkend="imgselect_ht.match_sl_image.mode_lst_preview"><tag class="element"
>image</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_preview"><tag class="attvalue"
>lst_preview</tag></link>
</para>
<xsl:param name="p_preview_sfx" select="'.jpg'"/>

<para xmlns="http://herbaer.de/xmlns/20051201/doc">
Präfix des Pfades der Normal-Bilder,
verwendet in den Vorlagen für das Element <tag class="element">image</tag>,
Modus
<link linkend="imgselect_ht.match_sl_image.mode_lst_preview"><tag class="attvalue"
>lst_preview</tag></link>
und
<link linkend="imgselect_ht.match_sl_image.mode_lst_imgids"><tag class="attvalue"
>lst_imgids</tag></link>.
Wenn genau eine Quell-Datei
(<tag class="element">imgselect/meta/srcfile</tag>) angegeben ist,
und dieser Parameterwert nicht mit <literal>'/'</literal> beginnt,
wird der Verzeichnispfad der Quelldatei
(<varname><link linkend="imgselect_ht.variable_g_imgbase">g_imgbase</link></varname>)
vorangestellt.
</para>
<xsl:param name="p_images_prf" select="'images/'"/>

<para xmlns="http://herbaer.de/xmlns/20051201/doc">
Suffix des Pfades der Normal-Bilder,
verwendet in den Vorlagen für das Element <tag class="element">image</tag>,
Modus
<link linkend="imgselect_ht.match_sl_image.mode_lst_preview"><tag class="attvalue"
>lst_preview</tag></link>
und
<link linkend="imgselect_ht.match_sl_image.mode_lst_imgids"><tag class="attvalue"
>lst_imgids</tag></link>
</para>
<xsl:param name="p_images_sfx" select="'.jpg'"/>

<para xmlns="http://herbaer.de/xmlns/20051201/doc">
Anzahl der imgids in einer Zeile,
verwendet in der Vorlage
<link linkend="imgselect_ht.match_sl_image.mode_lst_imgids"><tag class="element"
>image</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_imgids"><tag class="attvalue"
>lst_imgids</tag></link>
</para>
<xsl:param name="p_imgids_per_line" select="8"/>

<para xmlns="http://herbaer.de/xmlns/20051201/doc">
Anzahl der Bilder in einer Tabellenzeile,
verwendet in der Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_imgtable"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.imgtable"><tag class="attvalue">imgtable</tag></link>
</para>
<xsl:param name="p_images_per_tabrow" select="4"/>

<d:section xmlns="http://herbaer.de/xmlns/20051201/doc" role="stylesheet">
<title>id-Werte</title>
<para>
Das erstellte XHTML-Dokument verwendet die folgenden
<tag class="attribute">id</tag> - Werte:
</para>
<variablelist>

<varlistentry>
<term><tag class="attvalue">div_meta</tag></term>
<listitem>
<para>
Abschnitt mit "Meta"-Daten
(Vorlage
<link linkend="imgselect_ht.match_sl_meta"><tag class="element">meta</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">div_images</tag></term>
<listitem>
<para>
Abschnitt zu den ausgewählten Bildern
(Vorlage
<link linkend="imgselect_ht.match_sl_images"><tag class="element">images</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">div_preview</tag></term>
<listitem>
<para>
Unterabschnitt (<tag class="element">div</tag>-Element)
mit Vorschaubildern zu den ausgewählten Bildern einschließlich der Überschrift
(Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_lst_preview"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_preview"><tag class="attvalue"
>lst_preview</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">p_preview</tag></term>
<listitem>
<para>
Block (<tag class="element">p</tag>-Element)
mit Vorschaubildern zu den ausgewählten Bildern
(Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_lst_preview"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_preview"><tag class="attvalue"
>lst_preview</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">div_imgtable</tag></term>
<listitem>
<para>
Abschnitt mit der Tabelle der ausgewählten Kennungen und Vorschaubilder
einschließlich der Überschrift
(Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_imgtable"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.imgtable"><tag class="attvalue">imgtable</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">table_imgs</tag></term>
<listitem>
<para>
Tabelle mit den ausgewählten Kennungen und Vorschaubildern
(Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_imgtable"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.imgtable"><tag class="attvalue">imgtable</tag></link>)
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><tag class="attvalue">div_rejtable</tag></term>
<listitem>
<para>
Abschnitt mit der Tabelle der verworfenen Kennungen und Vorschaubilder
einschließlich der Überschrift
(Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_imgtable"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.imgtable"><tag class="attvalue">imgtable</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">table_ref</tag></term>
<listitem>
<para>
Tabelle mit den verworfenen Kennungen und Vorschaubildern
(Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_imgtable"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.imgtable"><tag class="attvalue">imgtable</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">div_imgids</tag></term>
<listitem>
<para>
Unterabschnitt (<tag class="element">div</tag>-Element)
mit den Kennungen der ausgewählten Bilder einschließlich der Überschrift
(Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_lst_imgids"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_imgids"><tag class="attvalue"
>lst_imgids</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">p_imgids</tag></term>
<listitem>
<para>
Block (<tag class="element">pre</tag>-Element)
mit den Kennungen der ausgewählten Bilder
(Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_lst_imgids"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_imgids"><tag class="attvalue"
>lst_imgids</tag></link>)
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><tag class="attvalue">div_rejids</tag></term>
<listitem>
<para>
Unterabschnitt (<tag class="element">div</tag>-Element)
mit den Kennungen der verworfenen Bilder einschließlich der Überschrift
(Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_lst_imgids"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_imgids"><tag class="attvalue"
>lst_imgids</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">p_rejids</tag></term>
<listitem>
<para>
Block (<tag class="element">pre</tag>-Element)
mit den Kennungen der verworfenen Bilder
(Vorlage
<link linkend="imgselect_ht.match_sl_images.mode_lst_imgids"><tag class="element"
>images</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_imgids"><tag class="attvalue"
>lst_imgids</tag></link>)
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><tag class="attvalue">div_selections</tag></term>
<listitem>
<para>
Abschnitt mit Daten zur Auswahl (Tabelle und Überschrift)
(Vorlage
<link linkend="imgselect_ht.match_sl_selections"><tag class="element"
>selections</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">p_numfiles</tag></term>
<listitem>
<para>
Abschnitt (<tag class="element">p</tag>-Element) mit der Angabe
der Anzahl der Quell-Dateien ("Bildergeschichten")
(Vorlage
<link linkend="imgselect_ht.match_sl_numfiles"><tag class="element">numfiles</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><tag class="attvalue">p_mode</tag></term>
<listitem>
<para>
Abschnitt (<tag class="element">p</tag>-Element) mit der Angabe
des Auswahlmodus
(Vorlage
<link linkend="imgselect_ht.match_sl_mode"><tag class="element">mode</tag></link>)
</para>
</listitem>
</varlistentry>
</variablelist>
</d:section>

<d:section xmlns="http://herbaer.de/xmlns/20051201/doc" role="stylesheet">
<title>class-Werte</title>
<para>
Das erzeugte XHTML-Dokument verwendet die folgenden Worte in
<tag class="attribute">class</tag>-Attributen:
</para>
<variablelist>
<varlistentry>
<term>img2img</term>
<listitem>
<para>
<tag class="element">a</tag>-Element,
Verweis vom Vorschau-Bild auf das Bild in normaler Größe
(Vorlage
<link linkend="imgselect_ht.match_sl_image.mode_lst_preview"><tag class="element"
>image</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_preview"><tag class="attvalue"
>lst_preview</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>imgid</term>
<listitem>
<para>
<tag class="element">td</tag>-Element,
das eine Bildkennung enthält
(benannte Vorlage
<link linkend="imgselect_ht.name_imgtable_cells"><tag class="attvalue"
>imgtable_cells</tag></link>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>img</term>
<listitem>
<para>
<tag class="element">td</tag>-Element,
das ein Vorschaubild enthält
(benannte Vorlage
<link linkend="imgselect_ht.name_imgtable_cells"><tag class="attvalue"
>imgtable_cells</tag></link>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>id2img</term>
<listitem>
<para>
<tag class="element">a</tag>-Element,
Verweis von einer Bild-Kennung auf das Bild in normaler Größe
(Vorlage
<link linkend="imgselect_ht.match_sl_image.mode_lst_preview"><tag class="element"
>image</tag></link>, Modus
<link linkend="imgselect_ht.modus.lst_imgids"><tag class="attvalue"
>lst_imgids</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>krit</term>
<listitem>
<para>
Tabellen-Zelle der Spalte "Kriterium"
(Vorlage
<link linkend="imgselect_ht.match_sl_selections"><tag class="element"
>selections</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>prob</term>
<listitem>
<para>
Tabellen-Zelle der Spalte "Wahrscheinlichkeit"
(Vorlage
<link linkend="imgselect_ht.match_sl_selections"><tag class="element"
>selections</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>match</term>
<listitem>
<para>
Tabellen-Zelle der Spalte "Treffer"
(Vorlage
<link linkend="imgselect_ht.match_sl_selections"><tag class="element"
>selections</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>sel</term>
<listitem>
<para>
Tabellen-Zelle der Spalte "Ausgewählt"
(Vorlage
<link linkend="imgselect_ht.match_sl_selections"><tag class="element"
>selections</tag></link>)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>label</term>
<listitem>
<para>
<tag class="element">span</tag>-Element,
Beschreibung zum folgenden Wert, Vorlagen
<link linkend="imgselect_ht.match_sl_time"><tag class="element">time</tag></link>,
<link linkend="imgselect_ht.match_sl_numfiles"><tag class="element">numfiles</tag></link>
und
<link linkend="imgselect_ht.match_sl_mode"><tag class="element">mode</tag></link>
</para>
</listitem>
</varlistentry>
</variablelist>
</d:section>

<d:para>Hilfsvorlagen für Zeichenketten</d:para>
<xsl:include href="/pool/txt.xslt"/>

<d:para>
Zusätzliches Präfix für Bild-Verweise
</d:para>
<xsl:variable name="g_imgbase">
  <xsl:choose>
    <xsl:when test="count (/sl:imgselect/sl:meta/sl:srcfile) = 1">
      <xsl:call-template name="txt.tolastchar">
        <xsl:with-param name="txt" select="/sl:imgselect/sl:meta/sl:srcfile"/>
        <xsl:with-param name="delim" select="'/'"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise/>
  </xsl:choose>
</xsl:variable>

<d:para>
Wenn der Parameter p_preview_prf nicht mit '/' beginnt
wird g_imgbase vorangestellt.
</d:para>
<xsl:variable name="g_preview_prf">
  <xsl:choose>
    <xsl:when test="starts-with ($p_preview_prf, '/')">
      <xsl:value-of select="$p_preview_prf"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="concat ($g_imgbase, $p_preview_prf)"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

<d:para>
Wenn der Parameter p_images_prf nicht mit '/' beginnt
wird g_imgbase vorangestellt.
</d:para>
<xsl:variable name="g_images_prf">
  <xsl:choose>
    <xsl:when test="starts-with ($p_images_prf, '/')">
      <xsl:value-of select="$p_images_prf"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="concat ($g_imgbase, $p_images_prf)"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

<d:para>HTML-Rahmen</d:para>
<xsl:template match="/">
  <xsl:variable
    name = "title"
    select =
    "normalize-space (concat ('Bildauswahl ', sl:imgselect/sl:meta/sl:filename))"
  />
  <html>
    <head>
      <title><xsl:value-of select="$title"/></title>
      <style type="text/css">
thead {font-weight: bold;}
td[class~="prob"]  {padding-left: 1em; text-align: right;}
td[class~="match"] {padding-left: 1em; text-align: right;}
td[class~="sel"]   {padding-left: 1em; text-align: right;}
td[class~="imgid"] {padding-left: 2em; text-align: right;}
      </style>
    </head>
    <body>
      <h1><xsl:value-of select="$title"/></h1>
      <xsl:apply-templates/>
    </body>
  </html>
</xsl:template>

<d:para>Das Wurzelelement</d:para>
<xsl:template match="sl:imgselect">
  <xsl:apply-templates/>
</xsl:template>

<d:para>Meta-Daten</d:para>
<xsl:template match="sl:meta">
  <div id="div_meta">
    <xsl:apply-templates select="sl:time"/>
    <xsl:variable name="numsrc" select="count (sl:srcfile)"/>
    <xsl:if test="$numsrc &gt; 0">
      <p id="p_srcfile">
        <xsl:choose>
          <xsl:when test="$numsrc = 1">
            <span class="legend">Quelldatei: "</span>
          </xsl:when>
          <xsl:otherwise>
            <span class="legend">Quelldateien: "</span>
          </xsl:otherwise>
        </xsl:choose>
        <xsl:apply-templates select="sl:srcfile"/>
      </p>
    </xsl:if>
  </div>
</xsl:template>

<d:para>Dateinamen übergehen</d:para>
<xsl:template match="sl:filename"/>

<d:para>Namen der Quelldateien</d:para>
<xsl:template match="sl:srcfile">
  <xsl:if test="position() &gt; 1">
    <xsl:text>, </xsl:text>
  </xsl:if>
  <a href="{.}"><xsl:apply-templates/></a>
</xsl:template>

<d:para>Zeitstempel</d:para>
<xsl:template match="sl:time">
  <p>
    <span class="label">Erstellt:</span>
    <xsl:text> </xsl:text>
    <xsl:call-template name="fmt.datetime"/>
  </p>
</xsl:template>

<d:para>Bild-Liste als Vorschaubilder und Liste der Kennungen</d:para>
<xsl:template match="sl:images">
  <div id="div_images">
    <xsl:apply-templates select="." mode="lst_preview"/>
    <xsl:apply-templates select="." mode="imgtable"/>
    <xsl:apply-templates select="." mode="lst_imgids"/>
  </div>
</xsl:template>

<d:para>Vorschaubilder</d:para>
<xsl:template match="sl:images" mode="lst_preview">
  <div id="div_preview">
    <h3>Ausgewählte Bilder</h3>
    <p id="p_preview">
      <xsl:apply-templates select="sl:image[. &gt; 0]" mode="lst_preview">
        <xsl:sort select="@src"/>
      </xsl:apply-templates>
    </p>
  </div>
  <xsl:if test="sl:image[. = 0]">
    <div id="div_rejected">
      <h3>Verworfene Bilder</h3>
      <p id="p_rejected">
        <xsl:apply-templates select="sl:image[. = 0]" mode="lst_preview">
          <xsl:sort select="@src"/>
        </xsl:apply-templates>
      </p>
    </div>
  </xsl:if>
</xsl:template>

<d:para>Ein Vorschaubild</d:para>
<xsl:template match="sl:image" mode="lst_preview">
  <xsl:if test="position () &gt; 0">
    <xsl:text> </xsl:text>
  </xsl:if>
  <a href="{$g_images_prf}{@src}{$p_images_sfx}" class="img2img">
    <img src="{$g_preview_prf}{@src}{$p_preview_sfx}" alt="Bild"/>
  </a>
</xsl:template>

<d:para>Vorschaubilder in der Tabelle</d:para>
<xsl:template match="sl:images" mode="imgtable">
  <div id="div_imgtable">
    <h3>Ausgewählte Bilder und ihre Kennungen</h3>
    <table id="table_imgs">
      <tbody>
        <xsl:call-template name="imgtable_row">
          <xsl:with-param name="idlist">
            <xsl:for-each select="sl:image[. &gt; 0]">
              <xsl:sort select="@src"/>
              <xsl:value-of select="concat(@src, '/')"/>
              <xsl:if test="position() mod $p_images_per_tabrow = 0">:</xsl:if>
            </xsl:for-each>
            <xsl:text>:</xsl:text>
          </xsl:with-param>
        </xsl:call-template>
      </tbody>
    </table>
  </div>
  <xsl:if test="sl:image[. = 0]">
    <div id="div_rejtable">
      <h3>Verworfene Bilder und ihre Kennungen</h3>
      <table id="table_rej">
        <tbody>
          <xsl:call-template name="imgtable_row">
            <xsl:with-param name="idlist">
              <xsl:for-each select="sl:image[. = 0]">
                <xsl:sort select="@src"/>
                <xsl:value-of select="concat(@src, '/')"/>
                <xsl:if test="position() mod $p_images_per_tabrow = 0">:</xsl:if>
              </xsl:for-each>
              <xsl:text>:</xsl:text>
            </xsl:with-param>
          </xsl:call-template>
        </tbody>
      </table>
    </div>
  </xsl:if>
</xsl:template>

<d:para>Eine Tabellenzeile mit Bildkennungen und Vorschaubildern</d:para>
<xsl:template name="imgtable_row">
  <xsl:param name="idlist"/>
  <xsl:variable name="row" select="substring-before($idlist, ':')"/>
  <xsl:if test="string-length ($row) &gt; 0">
    <tr>
      <xsl:call-template name="imgtable_cells">
        <xsl:with-param name="idlist" select="$row"/>
      </xsl:call-template>
    </tr>
    <xsl:variable name="tail" select="substring-after ($idlist, ':')"/>
    <xsl:if test="string-length ($tail) &gt; 0">
      <xsl:call-template name="imgtable_row">
        <xsl:with-param name="idlist" select="$tail"/>
      </xsl:call-template>
    </xsl:if>
  </xsl:if>
</xsl:template>

<d:para>Zwei Tabellenzellen zu einem Bild</d:para>
<xsl:template name="imgtable_cells">
  <xsl:param name="idlist"/>
  <xsl:variable name="src" select="substring-before ($idlist, '/')"/>
  <td class="imgid">
    <a href="{$g_images_prf}{$src}{$p_images_sfx}">
      <xsl:value-of select="$src"/>
    </a>
  </td>
  <td class="img">
    <a href="{$g_images_prf}{$src}{$p_images_sfx}">
      <img src="{$g_preview_prf}{$src}{$p_preview_sfx}" alt="Bild"/>
    </a>
  </td>
  <xsl:variable name="tail" select="substring-after ($idlist, '/')"/>
  <xsl:if test="string-length ($tail) &gt; 0">
    <xsl:call-template name="imgtable_cells">
      <xsl:with-param name="idlist" select="$tail"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>

<d:para>Kennungen der ausgewählten Bilder</d:para>
<xsl:template match="sl:images" mode="lst_imgids">
  <div id="div_imgids">
    <h3>Kennungen der ausgewählten Bilder</h3>
    <pre id="p_imgids">
      <xsl:apply-templates select="sl:image[. &gt; 0]" mode="lst_imgids">
        <xsl:sort select="@src"/>
      </xsl:apply-templates>
    </pre>
  </div>
  <xsl:if test="sl:image[. = 0]">
    <div id="div_rejids">
      <h3>Kennungen der verworfenen Bilder</h3>
      <pre id="p_rejids">
        <xsl:apply-templates select="sl:image[. = 0]" mode="lst_imgids">
          <xsl:sort select="@src"/>
        </xsl:apply-templates>
      </pre>
    </div>
  </xsl:if>
</xsl:template>

<d:para>Kennung eines Bildes</d:para>
<xsl:template match="sl:image" mode="lst_imgids">
  <xsl:choose>
    <xsl:when test="$p_imgids_per_line &gt; 0 and position() mod $p_imgids_per_line = 1">
      <xsl:value-of select="'&#13;&#10; '"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:text> </xsl:text>
    </xsl:otherwise>
  </xsl:choose>
  <a href="{$g_images_prf}{@src}{$p_images_sfx}" class="id2img">
    <xsl:value-of select="@src"/>
  </a>
</xsl:template>

<d:para>Auswahlkriterien</d:para>
<xsl:template match="sl:selections">
  <xsl:if test="sl:selection">
    <div id="div_selections">
      <h2>Auswahlkriterien</h2>
      <table>
        <thead>
          <tr>
            <td class="krit">Kriterium</td>
            <td class="prob">Wahrscheinlichkeit</td>
            <td class="match">Treffer</td>
            <td class="sel">Ausgewählt</td>
          </tr>
        </thead>
        <tbody>
          <xsl:apply-templates select="sl:selection"/>
        </tbody>
      </table>
    </div>
  </xsl:if>
</xsl:template>

<d:para>Ein Auswahlkriterium</d:para>
<xsl:template match="sl:selection">
  <tr>
    <td class="krit"><xsl:value-of select="sl:regex"/></td>
    <td class="prob"><xsl:value-of select="sl:probability"/></td>
    <td class="match"><xsl:value-of select="sl:matches"/></td>
    <td class="sel"><xsl:value-of select="sl:selected"/></td>
  </tr>
</xsl:template>

<d:para>Anzahl der Quell-Dateien</d:para>
<xsl:template match="sl:numfiles">
  <p id="p_numfiles">
    <span class="label">Anzahl der Quell-Dateien:</span>
    <xsl:text> </xsl:text>
    <xsl:apply-templates/>
  </p>
</xsl:template>

<d:para>Auswahl-Modus</d:para>
<xsl:template match="sl:mode">
  <p id="p_mode">
    <span class="label">Auswahlmodus:</span>
    <xsl:text> </xsl:text>
    <xsl:apply-templates/>
  </p>
</xsl:template>

<!-- Hilfsvorlagen zur Daten-Formatierung -->
<d:para>Zeitstempel</d:para>
<xsl:template name="fmt.datetime">
  <!-- Der zu formatierende Zeitstempel jjjj-mm-ttThh:mm:ss -->
  <xsl:param name="data" select="."/>
  <xsl:choose>
    <xsl:when test="string-length ($data) &lt; 10">
      <xsl:value-of select="$data"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of
        select = "
          concat ( substring ($data, 9, 2), '.',
          substring ($data, 6, 2), '.',
          substring ($data, 1, 4),
          translate (substring ($data, 11), 'T', ' ') )
        "
      />
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>
