| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689 | <?xml version="1.0"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"                xmlns:exsl="http://exslt.org/common"                xmlns:cf="http://docbook.sourceforge.net/xmlns/chunkfast/1.0"                xmlns:ng="http://docbook.org/docbook-ng"                xmlns:db="http://docbook.org/ns/docbook"                exclude-result-prefixes="exsl cf ng db"                version="1.0"><!-- ********************************************************************     $Id: chunk-code.xsl 9328 2012-05-03 16:28:23Z bobstayton $     ********************************************************************     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.     ******************************************************************** --><!-- ==================================================================== --><xsl:template match="*" mode="chunk-filename">  <!-- returns the filename of a chunk -->  <xsl:variable name="ischunk">    <xsl:call-template name="chunk"/>  </xsl:variable>  <xsl:variable name="fn">    <xsl:apply-templates select="." mode="recursive-chunk-filename"/>  </xsl:variable>  <!--  <xsl:message>    <xsl:value-of select="$ischunk"/>    <xsl:text> (</xsl:text>    <xsl:value-of select="local-name(.)"/>    <xsl:text>) </xsl:text>    <xsl:value-of select="$fn"/>    <xsl:text>, </xsl:text>    <xsl:call-template name="dbhtml-dir"/>  </xsl:message>  -->  <!-- 2003-11-25 by ndw:       The following test used to read test="$ischunk != 0 and $fn != ''"       I've removed the ischunk part of the test so that href.to.uri and       href.from.uri will be fully qualified even if the source or target       isn't a chunk. I *think* that if $fn != '' then it's appropriate       to put the directory on the front, even if the element isn't a       chunk. I could be wrong. -->  <xsl:if test="$fn != ''">    <xsl:call-template name="dbhtml-dir"/>  </xsl:if>  <xsl:value-of select="$chunked.filename.prefix"/>  <xsl:value-of select="$fn"/>  <!-- You can't add the html.ext here because dbhtml filename= may already -->  <!-- have added it. It really does have to be handled in the recursive template --></xsl:template><xsl:template match="*" mode="recursive-chunk-filename">  <xsl:param name="recursive" select="false()"/>  <!-- returns the filename of a chunk -->  <xsl:variable name="ischunk">    <xsl:call-template name="chunk"/>  </xsl:variable>  <xsl:variable name="dbhtml-filename">    <xsl:call-template name="pi.dbhtml_filename"/>  </xsl:variable>  <xsl:variable name="filename">    <xsl:choose>      <xsl:when test="$dbhtml-filename != ''">        <xsl:value-of select="$dbhtml-filename"/>      </xsl:when>      <!-- if this is the root element, use the root.filename -->      <xsl:when test="not(parent::*) and $root.filename != ''">        <xsl:value-of select="$root.filename"/>        <xsl:value-of select="$html.ext"/>      </xsl:when>      <!-- Special case -->      <xsl:when test="self::legalnotice and not($generate.legalnotice.link = 0)">        <xsl:choose>          <xsl:when test="(@id or @xml:id) and not($use.id.as.filename = 0)">            <!-- * if this legalnotice has an ID, then go ahead and use -->            <!-- * just the value of that ID as the basename for the file -->            <!-- * (that is, without prepending an "ln-" too it) -->            <xsl:value-of select="(@id|@xml:id)[1]"/>            <xsl:value-of select="$html.ext"/>          </xsl:when>          <xsl:otherwise>            <!-- * otherwise, if this legalnotice does not have an ID, -->            <!-- * then we generate an ID... -->            <xsl:variable name="id">              <xsl:call-template name="object.id"/>            </xsl:variable>            <!-- * ...and then we take that generated ID, prepend an -->            <!-- * "ln-" to it, and use that as the basename for the file -->            <xsl:value-of select="concat('ln-',$id,$html.ext)"/>          </xsl:otherwise>        </xsl:choose>      </xsl:when>      <!-- if there's no dbhtml filename, and if we're to use IDs as -->      <!-- filenames, then use the ID to generate the filename. -->      <xsl:when test="(@id or @xml:id) and $use.id.as.filename != 0">        <xsl:value-of select="(@id|@xml:id)[1]"/>        <xsl:value-of select="$html.ext"/>      </xsl:when>      <xsl:otherwise></xsl:otherwise>    </xsl:choose>  </xsl:variable>  <xsl:choose>    <xsl:when test="$ischunk='0'">      <!-- if called on something that isn't a chunk, walk up... -->      <xsl:choose>        <xsl:when test="count(parent::*)>0">          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">            <xsl:with-param name="recursive" select="$recursive"/>          </xsl:apply-templates>        </xsl:when>        <!-- unless there is no up, in which case return "" -->        <xsl:otherwise></xsl:otherwise>      </xsl:choose>    </xsl:when>    <xsl:when test="not($recursive) and $filename != ''">      <!-- if this chunk has an explicit name, use it -->      <xsl:value-of select="$filename"/>    </xsl:when>    <xsl:when test="self::set">      <xsl:value-of select="$root.filename"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::book">      <xsl:text>bk</xsl:text>      <xsl:number level="any" format="01"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::article">      <xsl:if test="/set">        <!-- in a set, make sure we inherit the right book info... -->        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">          <xsl:with-param name="recursive" select="true()"/>        </xsl:apply-templates>      </xsl:if>      <xsl:text>ar</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::preface">      <xsl:if test="/set">        <!-- in a set, make sure we inherit the right book info... -->        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">          <xsl:with-param name="recursive" select="true()"/>        </xsl:apply-templates>      </xsl:if>      <xsl:text>pr</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::chapter">      <xsl:if test="/set">        <!-- in a set, make sure we inherit the right book info... -->        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">          <xsl:with-param name="recursive" select="true()"/>        </xsl:apply-templates>      </xsl:if>      <xsl:text>ch</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::appendix">      <xsl:if test="/set">        <!-- in a set, make sure we inherit the right book info... -->        <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">          <xsl:with-param name="recursive" select="true()"/>        </xsl:apply-templates>      </xsl:if>      <xsl:text>ap</xsl:text>      <xsl:number level="any" format="a" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::part">      <xsl:choose>        <xsl:when test="/set">          <!-- in a set, make sure we inherit the right book info... -->          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">            <xsl:with-param name="recursive" select="true()"/>          </xsl:apply-templates>        </xsl:when>        <xsl:otherwise>        </xsl:otherwise>      </xsl:choose>      <xsl:text>pt</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::reference">      <xsl:choose>        <xsl:when test="/set">          <!-- in a set, make sure we inherit the right book info... -->          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">            <xsl:with-param name="recursive" select="true()"/>          </xsl:apply-templates>        </xsl:when>        <xsl:otherwise>        </xsl:otherwise>      </xsl:choose>      <xsl:text>rn</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::refentry">      <xsl:choose>        <xsl:when test="parent::reference">          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">            <xsl:with-param name="recursive" select="true()"/>          </xsl:apply-templates>        </xsl:when>        <xsl:otherwise>          <xsl:if test="/set">            <!-- in a set, make sure we inherit the right book info... -->            <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">              <xsl:with-param name="recursive" select="true()"/>            </xsl:apply-templates>          </xsl:if>        </xsl:otherwise>      </xsl:choose>      <xsl:text>re</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::colophon">      <xsl:choose>        <xsl:when test="/set">          <!-- in a set, make sure we inherit the right book info... -->          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">            <xsl:with-param name="recursive" select="true()"/>          </xsl:apply-templates>        </xsl:when>        <xsl:otherwise>        </xsl:otherwise>      </xsl:choose>      <xsl:text>co</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::sect1                    or self::sect2                    or self::sect3                    or self::sect4                    or self::sect5                    or self::section">      <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">        <xsl:with-param name="recursive" select="true()"/>      </xsl:apply-templates>      <xsl:text>s</xsl:text>      <xsl:number format="01"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::bibliography">      <xsl:choose>        <xsl:when test="/set">          <!-- in a set, make sure we inherit the right book info... -->          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">            <xsl:with-param name="recursive" select="true()"/>          </xsl:apply-templates>        </xsl:when>        <xsl:otherwise>        </xsl:otherwise>      </xsl:choose>      <xsl:text>bi</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::glossary">      <xsl:choose>        <xsl:when test="/set">          <!-- in a set, make sure we inherit the right book info... -->          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">            <xsl:with-param name="recursive" select="true()"/>          </xsl:apply-templates>        </xsl:when>        <xsl:otherwise>        </xsl:otherwise>      </xsl:choose>      <xsl:text>go</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::index">      <xsl:choose>        <xsl:when test="/set">          <!-- in a set, make sure we inherit the right book info... -->          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">            <xsl:with-param name="recursive" select="true()"/>          </xsl:apply-templates>        </xsl:when>        <xsl:otherwise>        </xsl:otherwise>      </xsl:choose>      <xsl:text>ix</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::setindex">      <xsl:text>si</xsl:text>      <xsl:number level="any" format="01" from="set"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:when test="self::topic">      <xsl:choose>        <xsl:when test="/set">          <!-- in a set, make sure we inherit the right book info... -->          <xsl:apply-templates mode="recursive-chunk-filename" select="parent::*">            <xsl:with-param name="recursive" select="true()"/>          </xsl:apply-templates>        </xsl:when>        <xsl:otherwise>        </xsl:otherwise>      </xsl:choose>      <xsl:text>to</xsl:text>      <xsl:number level="any" format="01" from="book"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:when>    <xsl:otherwise>      <xsl:text>chunk-filename-error-</xsl:text>      <xsl:value-of select="name(.)"/>      <xsl:number level="any" format="01" from="set"/>      <xsl:if test="not($recursive)">        <xsl:value-of select="$html.ext"/>      </xsl:if>    </xsl:otherwise>  </xsl:choose></xsl:template><!-- ==================================================================== --><xsl:template match="processing-instruction('dbhtml')">  <!-- nop --></xsl:template><!-- ==================================================================== --><xsl:template match="*" mode="find.chunks">  <xsl:variable name="chunk">    <xsl:call-template name="chunk"/>  </xsl:variable>  <xsl:choose>    <xsl:when test="$chunk != 0">      <cf:div id="{generate-id()}">        <xsl:apply-templates select="." mode="class.attribute"/>        <xsl:apply-templates select="*" mode="find.chunks"/>      </cf:div>    </xsl:when>    <xsl:otherwise>      <xsl:apply-templates select="*" mode="find.chunks"/>    </xsl:otherwise>  </xsl:choose></xsl:template><!-- Leave legalnotice chunk out of the list for Next and Prev --><xsl:template match="legalnotice" mode="find.chunks"/><xsl:template match="/">  <!-- * Get a title for current doc so that we let the user -->  <!-- * know what document we are processing at this point. -->  <xsl:variable name="doc.title">    <xsl:call-template name="get.doc.title"/>  </xsl:variable>  <xsl:choose>    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,         toss the namespace and continue.  Use the docbook5 namespaced	 stylesheets for DocBook5 if you don't want to use this feature.-->    <xsl:when test="$exsl.node.set.available != 0                     and (*/self::ng:* or */self::db:*)">      <xsl:call-template name="log.message">        <xsl:with-param name="level">Note</xsl:with-param>        <xsl:with-param name="source" select="$doc.title"/>        <xsl:with-param name="context-desc">          <xsl:text>namesp. cut</xsl:text>        </xsl:with-param>        <xsl:with-param name="message">          <xsl:text>processing stripped document</xsl:text>        </xsl:with-param>      </xsl:call-template>      <xsl:apply-templates select="exsl:node-set($no.namespace)"/>    </xsl:when>    <!-- Can't process unless namespace removed -->    <xsl:when test="*/self::ng:* or */self::db:*">      <xsl:message terminate="yes">        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>        <xsl:text> cannot proceed.</xsl:text>      </xsl:message>    </xsl:when>    <xsl:otherwise>      <xsl:choose>        <xsl:when test="$rootid != ''">          <xsl:choose>            <xsl:when test="count(key('id',$rootid)) = 0">              <xsl:message terminate="yes">                <xsl:text>ID '</xsl:text>                <xsl:value-of select="$rootid"/>                <xsl:text>' not found in document.</xsl:text>              </xsl:message>            </xsl:when>            <xsl:otherwise>              <xsl:if test="$collect.xref.targets = 'yes' or                            $collect.xref.targets = 'only'">                <xsl:apply-templates select="key('id', $rootid)"                                     mode="collect.targets"/>              </xsl:if>              <xsl:if test="$collect.xref.targets != 'only'">                <xsl:apply-templates select="key('id',$rootid)"                                     mode="process.root"/>                <xsl:if test="$tex.math.in.alt != ''">                  <xsl:apply-templates select="key('id',$rootid)"                                       mode="collect.tex.math"/>                </xsl:if>                <xsl:if test="$generate.manifest != 0">                  <xsl:call-template name="generate.manifest">                    <xsl:with-param name="node" select="key('id',$rootid)"/>                  </xsl:call-template>                </xsl:if>              </xsl:if>            </xsl:otherwise>          </xsl:choose>        </xsl:when>        <xsl:otherwise>          <xsl:if test="$collect.xref.targets = 'yes' or                        $collect.xref.targets = 'only'">            <xsl:apply-templates select="/" mode="collect.targets"/>          </xsl:if>          <xsl:if test="$collect.xref.targets != 'only'">            <xsl:apply-templates select="/" mode="process.root"/>            <xsl:if test="$tex.math.in.alt != ''">              <xsl:apply-templates select="/" mode="collect.tex.math"/>            </xsl:if>            <xsl:if test="$generate.manifest != 0">              <xsl:call-template name="generate.manifest">                <xsl:with-param name="node" select="/"/>              </xsl:call-template>            </xsl:if>          </xsl:if>        </xsl:otherwise>      </xsl:choose>    </xsl:otherwise>  </xsl:choose></xsl:template><xsl:template match="*" mode="process.root">  <xsl:apply-templates select="."/>  <xsl:call-template name="generate.css.files"/></xsl:template><!-- ====================================================================== --><xsl:template match="set|book|part|preface|chapter|appendix                     |article                     |topic                     |reference|refentry                     |book/glossary|article/glossary|part/glossary                     |book/bibliography|article/bibliography|part/bibliography                     |colophon">  <xsl:choose>    <xsl:when test="$onechunk != 0 and parent::*">      <xsl:apply-imports/>    </xsl:when>    <xsl:otherwise>      <xsl:call-template name="process-chunk-element"/>    </xsl:otherwise>  </xsl:choose></xsl:template><xsl:template match="sect1|sect2|sect3|sect4|sect5|section">  <xsl:variable name="ischunk">    <xsl:call-template name="chunk"/>  </xsl:variable>  <xsl:choose>    <xsl:when test="not(parent::*)">      <xsl:call-template name="process-chunk-element"/>    </xsl:when>    <xsl:when test="$ischunk = 0">      <xsl:apply-imports/>    </xsl:when>    <xsl:otherwise>      <xsl:call-template name="process-chunk-element"/>    </xsl:otherwise>  </xsl:choose></xsl:template><xsl:template match="setindex                     |book/index                     |article/index                     |part/index">  <!-- some implementations use completely empty index tags to indicate -->  <!-- where an automatically generated index should be inserted. so -->  <!-- if the index is completely empty, skip it. -->  <xsl:if test="count(*)>0 or $generate.index != '0'">    <xsl:call-template name="process-chunk-element"/>  </xsl:if></xsl:template><!-- Resolve xml:base attributes --><xsl:template match="@fileref">  <!-- need a check for absolute urls -->  <xsl:choose>    <xsl:when test="contains(., ':')">      <!-- it has a uri scheme so it is an absolute uri -->      <xsl:value-of select="."/>    </xsl:when>    <xsl:when test="$keep.relative.image.uris != 0">      <!-- leave it alone -->      <xsl:value-of select="."/>    </xsl:when>    <xsl:otherwise>      <!-- its a relative uri -->      <xsl:call-template name="relative-uri">        <xsl:with-param name="destdir">          <xsl:call-template name="dbhtml-dir">            <xsl:with-param name="context" select=".."/>          </xsl:call-template>        </xsl:with-param>      </xsl:call-template>    </xsl:otherwise>  </xsl:choose></xsl:template><!-- ==================================================================== --><xsl:template match="set|book|part|preface|chapter|appendix                     |article                     |topic                     |reference|refentry                     |sect1|sect2|sect3|sect4|sect5                     |section                     |book/glossary|article/glossary|part/glossary                     |book/bibliography|article/bibliography|part/bibliography                     |colophon"              mode="enumerate-files">  <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>  <xsl:if test="$ischunk='1'">    <xsl:call-template name="make-relative-filename">      <xsl:with-param name="base.dir">        <xsl:if test="$manifest.in.base.dir = 0">          <xsl:value-of select="$chunk.base.dir"/>        </xsl:if>      </xsl:with-param>      <xsl:with-param name="base.name">        <xsl:apply-templates mode="chunk-filename" select="."/>      </xsl:with-param>    </xsl:call-template>    <xsl:text>
</xsl:text>  </xsl:if>  <xsl:apply-templates select="*" mode="enumerate-files"/></xsl:template><xsl:template match="book/index|article/index|part/index"              mode="enumerate-files">  <xsl:if test="$htmlhelp.output != 1">    <xsl:variable name="ischunk"><xsl:call-template name="chunk"/></xsl:variable>    <xsl:if test="$ischunk='1'">      <xsl:call-template name="make-relative-filename">        <xsl:with-param name="base.dir">          <xsl:if test="$manifest.in.base.dir = 0">            <xsl:value-of select="$chunk.base.dir"/>          </xsl:if>        </xsl:with-param>        <xsl:with-param name="base.name">          <xsl:apply-templates mode="chunk-filename" select="."/>        </xsl:with-param>      </xsl:call-template>      <xsl:text>
</xsl:text>    </xsl:if>    <xsl:apply-templates select="*" mode="enumerate-files"/>  </xsl:if></xsl:template><xsl:template match="legalnotice" mode="enumerate-files">  <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>  <xsl:if test="$generate.legalnotice.link != 0">    <xsl:call-template name="make-relative-filename">      <xsl:with-param name="base.dir">        <xsl:if test="$manifest.in.base.dir = 0">          <xsl:value-of select="$chunk.base.dir"/>        </xsl:if>      </xsl:with-param>      <xsl:with-param name="base.name">        <xsl:apply-templates mode="chunk-filename" select="."/>      </xsl:with-param>    </xsl:call-template>    <xsl:text>
</xsl:text>  </xsl:if></xsl:template><xsl:template match="mediaobject[imageobject] | inlinemediaobject[imageobject]" mode="enumerate-files">  <xsl:variable name="longdesc.uri">    <xsl:call-template name="longdesc.uri">      <xsl:with-param name="mediaobject"                      select="."/>    </xsl:call-template>  </xsl:variable>  <xsl:variable name="mediaobject" select="."/>  <xsl:if test="$html.longdesc != 0 and $mediaobject/textobject[not(phrase)]">    <xsl:call-template name="longdesc.uri">      <xsl:with-param name="mediaobject" select="$mediaobject"/>    </xsl:call-template>    <xsl:text>
</xsl:text>  </xsl:if></xsl:template><xsl:template match="text()" mode="enumerate-files"></xsl:template></xsl:stylesheet>
 |