You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ch...@apache.org on 2011/07/26 15:33:25 UTC
svn commit: r1151090 [2/3] - in /db/derby/docs/trunk/lib: dita2htmlImpl.xsl
index.html map2htmtoc.xsl
Modified: db/derby/docs/trunk/lib/dita2htmlImpl.xsl
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/lib/dita2htmlImpl.xsl?rev=1151090&r1=1151089&r2=1151090&view=diff
==============================================================================
--- db/derby/docs/trunk/lib/dita2htmlImpl.xsl (original)
+++ db/derby/docs/trunk/lib/dita2htmlImpl.xsl Tue Jul 26 13:33:24 2011
@@ -1,3921 +1,3921 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved. -->
-
-<!DOCTYPE xsl:stylesheet [
-
- <!ENTITY gt ">">
- <!ENTITY lt "<">
- <!ENTITY rbl " ">
- <!ENTITY nbsp " "> <!--   -->
- <!ENTITY quot """>
- <!ENTITY copyr "©">
-]>
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-
-
-<!-- =========== OTHER STYLESHEET INCLUDES/IMPORTS =========== -->
-
-<xsl:import href="../common/dita-utilities.xsl"/>
-<xsl:include href="get-meta.xsl"/>
-<xsl:include href="rel-links.xsl"/>
-<xsl:include href="../common/output-message.xsl"/>
-
-
-<!-- =========== OUTPUT METHOD =========== -->
-
-<!-- XHTML output with XML syntax -->
-<xsl:output method="xml"
- encoding="utf-8"
- indent="no"
- doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
- doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
-/>
-
-
-<!-- =========== DEFAULT VALUES FOR EXTERNALLY MODIFIABLE PARAMETERS =========== -->
-
-<!-- /CSS = default CSS filename parameter ('')-->
-<xsl:param name="CSS"/>
-<xsl:param name="dita-css" select="'commonltr.css'"/> <!-- left to right languages -->
-<xsl:param name="bidi-dita-css" select="'commonrtl.css'"/> <!-- bidirectional languages -->
-
-<!-- default CSS path parameter (null)-->
-<xsl:param name="CSSPATH"/>
-
-<!-- the file name containing XHTML to be placed in the HEAD area
- (file name and extension only - no path). -->
-<xsl:param name="HDF"/>
-
-<!-- the file name containing XHTML to be placed in the BODY running-heading area
- (file name and extension only - no path). -->
-<xsl:param name="HDR"/>
-
-<!-- the file name containing XHTML to be placed in the BODY running-footing area
- (file name and extension only - no path). -->
-<xsl:param name="FTR"/>
-
-<!-- default "output artwork filenames" processing parameter ('no')-->
-<xsl:param name="ARTLBL" select="'no'"/><!-- "no" and "yes" are valid values; non-'yes' is ignored -->
-
-<!-- default "hide draft & cleanup content" processing parameter ('no' = hide them)-->
-<xsl:param name="DRAFT" select="'no'"/><!-- "no" and "yes" are valid values; non-'yes' is ignored -->
-
-<!-- default "hide index entries" processing parameter ('no' = hide them)-->
-<xsl:param name="INDEXSHOW" select="'no'"/><!-- "no" and "yes" are valid values; non-'yes' is ignored -->
-
-<!-- for now, disable breadcrumbs pending link group descision -->
-<xsl:param name="BREADCRUMBS" select="'no'"/> <!-- "no" and "yes" are valid values; non-'yes' is ignored -->
-
-<!-- the year for the copyright -->
-<xsl:param name="YEAR" select="'2005'"/>
-
-<!-- default "output extension" processing parameter ('.html')-->
-<xsl:param name="OUTEXT" select="'.html'"/><!-- "htm" and "html" are valid values -->
-
-<!-- the working directory that contains the document being transformed.
- Needed as a directory prefix for the @conref "document()" function calls.
- default is '../doc/')-->
-<xsl:param name="WORKDIR" select="'./'"/>
-
-<!-- the path back to the project. Used for c.gif, delta.gif, css to allow user's to have
- these files in 1 location. -->
-<xsl:param name="PATH2PROJ"/>
-
-<!-- the file name (file name and extension only - no path) of the document being transformed.
- Needed to help with debugging.
- default is 'myfile.xml')-->
-<xsl:param name="FILENAME"/>
-
-<!-- the file name containing filter/flagging/revision information
- (file name and extension only - no path). - testfile: revflag.dita -->
-<xsl:param name="FILTERFILE"/>
-
-<!-- Debug mode - enables XSL debugging xsl-messages.
- Needed to help with debugging.
- default is 'no')-->
-<xsl:param name="DBG" select="'no'"/> <!-- "no" and "yes" are valid values; non-'yes' is ignored -->
-
-<!-- DITAEXT file extension name of dita topic file -->
-<xsl:param name="DITAEXT" select="'.dita'"/>
-
-<!-- =========== "GLOBAL" DECLARATIONS (see 35) =========== -->
-
-<!-- The document tree of filterfile returned by document($FILTERFILE,/)-->
-<xsl:variable name="FILTERDOC" select="document($FILTERFILE,/)"/>
-
-<!-- Define a newline character -->
-<xsl:variable name="newline"><xsl:text>
-</xsl:text></xsl:variable>
-
-<!-- Define the error message prefix identifier -->
-<xsl:variable name="msgprefix">IDXS</xsl:variable>
-
-<!-- Filler for A-name anchors - was -->
-<xsl:variable name="afill"></xsl:variable>
-
-<!-- these elements are never processed in a conventional presentation. can be overridden. -->
-<xsl:template match="*[contains(@class,' topic/no-topic-nesting ')]"/>
-
-
-<!-- =========== ROOT RULE (just fall through; no side effects for new delivery contexts =========== -->
-
-<xsl:template match="/">
- <xsl:apply-templates/>
-</xsl:template>
-
-
-<!-- =========== NESTED TOPIC RULES =========== -->
-
-<!-- This first template rule generates the outer-level shell for a delivery context.
- In an override stylesheet, the same call to "chapter-setup" must be issued to
- maintain the consistency of overall look'n'feel of the output HTML.
- Match on the first DITA element -or- the first root 'topic' element. -->
-<xsl:template match="/dita | /*[contains(@class,' topic/topic ')]" priority="1" name="root_element">
- <xsl:call-template name="chapter-setup"/>
-</xsl:template>
-
-<!-- child topics get a div wrapper and fall through -->
-<xsl:template match="*[contains(@class,' topic/topic ')]" name="child.topic">
- <xsl:param name="nestlevel">
- <xsl:choose>
- <!-- Limit depth for historical reasons, could allow any depth. Previously limit was 5. -->
- <xsl:when test="count(ancestor::*[contains(@class,' topic/topic ')]) > 9">9</xsl:when>
- <xsl:otherwise><xsl:value-of select="count(ancestor::*[contains(@class,' topic/topic ')])"/></xsl:otherwise>
- </xsl:choose>
- </xsl:param>
-<div class="nested{$nestlevel}">
- <xsl:call-template name="gen-topic"/>
-</div><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<xsl:template name="gen-topic">
- <xsl:choose>
- <xsl:when test="parent::dita and not(preceding-sibling::*)">
- <!-- Do not reset xml:lang if it is already set on <html> -->
- <xsl:apply-templates select="@outputclass"/>
- </xsl:when>
- <xsl:otherwise><xsl:call-template name="commonattributes"/></xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="gen-toc-id"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="start-revflag"/>
- <xsl:apply-templates/>
- <xsl:call-template name="end-revflag"/>
-</xsl:template>
-
-
-<!-- NESTED TOPIC TITLES (sensitive to nesting depth, but are still processed for contained markup) -->
-<!-- 1st level - topic/title -->
-<!-- Condensed topic title into single template without priorities; use $headinglevel to set heading.
- If desired, somebody could pass in the value to manually set the heading level -->
-<xsl:template match="*[contains(@class,' topic/topic ')]/*[contains(@class,' topic/title ')]">
- <xsl:param name="headinglevel">
- <xsl:choose>
- <xsl:when test="count(ancestor::*[contains(@class,' topic/topic ')]) > 6">6</xsl:when>
- <xsl:otherwise><xsl:value-of select="count(ancestor::*[contains(@class,' topic/topic ')])"/></xsl:otherwise>
- </xsl:choose>
- </xsl:param>
- <xsl:element name="h{$headinglevel}">
- <xsl:attribute name="class">topictitle<xsl:value-of select="$headinglevel"/></xsl:attribute>
- <xsl:call-template name="commonattributes"/>
- <xsl:apply-templates/>
- </xsl:element>
- <xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- Hide titlealts - they need to get pulled into the proper places -->
-<xsl:template match="*[contains(@class,' topic/titlealts ')]"/>
-
-
-<!-- =========== BODY/SECTION (not sensitive to nesting depth) =========== -->
-
-<xsl:template match="*[contains(@class,' topic/body ')]" name="topic.body">
-<div>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="start-revflag"/>
- <!-- here, you can generate a toc based on what's a child of body -->
- <!--xsl:call-template name="gen-sect-ptoc"/--><!-- Works; not always wanted, though; could add a param to enable it.-->
-
- <!-- Insert prev/next links. since they need to be scoped by who they're 'pooled' with, apply-templates in 'hierarchylink' mode to linkpools (or related-links itself) when they have children that have any of the following characteristics:
- - role=ancestor (used for breadcrumb)
- - role=next or role=previous (used for left-arrow and right-arrow before the breadcrumb)
- - importance=required AND no role, or role=sibling or role=friend or role=previous or role=cousin (to generate prerequisite links)
- - we can't just assume that links with importance=required are prerequisites, since a topic with eg role='next' might be required, while at the same time by definition not a prerequisite -->
-
- <!-- get the short descr para -->
- <xsl:apply-templates select="preceding-sibling::*[contains(@class,' topic/shortdesc ')]" mode="outofline"/>
-
-<!-- Insert pre-req links - after shortdesc - unless there is a prereq section about -->
- <xsl:apply-templates select="following-sibling::*[contains(@class,' topic/related-links ')]" mode="prereqs"/>
-
- <xsl:apply-templates/>
- <xsl:call-template name="end-revflag"/>
-</div><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- no fallthru for shortdesc - needs to be pulled for 1st para and for abstract metadata -->
-<xsl:template match="*[contains(@class,' topic/shortdesc ')]"/>
-<!-- called shortdesc processing - para at start of topic -->
-<xsl:template match="*[contains(@class,' topic/shortdesc ')]" mode="outofline">
-<p>
- <xsl:call-template name="commonattributes"/>
- <xsl:apply-templates/>
-</p><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- section processor - div with no generated title -->
-<xsl:template match="*[contains(@class,' topic/section ')]" name="topic.section">
-<div class="section">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="gen-toc-id"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Rev is active - add the DIV -->
- <div class="{@rev}"><xsl:apply-templates select="." mode="section-fmt" /></div>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:apply-templates select="." mode="section-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</div><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/section ')]" mode="section-fmt">
- <xsl:call-template name="start-revflag"/>
- <xsl:call-template name="sect-heading"/>
- <xsl:apply-templates select="*[not(contains(@class,' topic/title '))] | text() | comment() | processing-instruction()"/>
- <xsl:call-template name="end-revflag"/>
-</xsl:template>
-
-<!-- example processor - div with no generated title -->
-<xsl:template match="*[contains(@class,' topic/example ')]" name="topic.example">
-<div class="example">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="gen-toc-id"/>
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Rev is active - add the DIV -->
- <div class="{@rev}"><xsl:apply-templates select="." mode="example-fmt" /></div>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:apply-templates select="." mode="example-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</div><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/example ')]" mode="example-fmt">
- <xsl:call-template name="start-revflag"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="sect-heading"/>
- <xsl:apply-templates select="*[not(contains(@class,' topic/title '))] | text() | comment() | processing-instruction()"/>
- <xsl:call-template name="end-revflag"/>
-</xsl:template>
-
-
-<!-- ===================================================================== -->
-
-<!-- =========== BASIC BODY ELEMENTS =========== -->
-
-<!-- paragraphs -->
-<xsl:template match="*[contains(@class,' topic/p ')]" name="topic.p">
-
- <!-- To ensure XHTML validity, need to determine whether the DITA kids are block elements.
- If so, use div_class="p" instead of p -->
- <xsl:choose>
- <xsl:when test="descendant::*[contains(@class,' topic/pre ')] or
- descendant::*[contains(@class,' topic/screen ')] or
- descendant::*[contains(@class,' topic/ul ')] or
- descendant::*[contains(@class,' topic/sl ')] or
- descendant::*[contains(@class,' topic/ol ')] or
- descendant::*[contains(@class,' topic/lq ')] or
- descendant::*[contains(@class,' topic/dl ')] or
- descendant::*[contains(@class,' topic/note ')] or
- descendant::*[contains(@class,' topic/lines ')] or
- descendant::*[contains(@class,' topic/fig ')] or
- descendant::*[contains(@class,' topic/table ')] or
- descendant::*[contains(@class,' topic/simpletable ')]">
- <div class="p"><xsl:call-template name="commonattributes"/><xsl:call-template name="setidaname"/><xsl:call-template name="flagit"/><xsl:call-template name="revblock"/></div></xsl:when>
- <xsl:otherwise><p><xsl:call-template name="commonattributes"/><xsl:call-template name="setidaname"/><xsl:call-template name="flagit"/><xsl:call-template name="revblock"/></p></xsl:otherwise>
- </xsl:choose><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/note ')]" name="topic.note">
- <xsl:call-template name="spec-title"/>
- <xsl:choose>
- <xsl:when test="@type='note'">
- <xsl:call-template name="note"/>
- </xsl:when>
- <xsl:when test="@type='tip'">
- <div class="tip">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <span class="tiptitle">
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'Tip'"/>
- </xsl:call-template>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'ColonSymbol'"/>
- </xsl:call-template><xsl:text> </xsl:text>
- </span>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="revblock"/>
- </div>
- </xsl:when>
- <xsl:when test="@type='fastpath'">
- <div class="fastpath">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <span class="fastpathtitle">
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'Fastpath'"/>
- </xsl:call-template>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'ColonSymbol'"/>
- </xsl:call-template><xsl:text> </xsl:text>
- </span>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="revblock"/>
- </div>
- </xsl:when>
- <xsl:when test="@type='important'">
- <div class="important">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <span class="importanttitle">
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'Important'"/>
- </xsl:call-template>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'ColonSymbol'"/>
- </xsl:call-template><xsl:text> </xsl:text>
- </span>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="revblock"/>
- </div>
- </xsl:when>
- <xsl:when test="@type='remember'">
- <div class="remember">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <span class="remembertitle">
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'Remember'"/>
- </xsl:call-template>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'ColonSymbol'"/>
- </xsl:call-template><xsl:text> </xsl:text>
- </span>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="revblock"/>
- </div>
- </xsl:when>
- <xsl:when test="@type='restriction'">
- <div class="restriction">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <span class="restrictiontitle">
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'Restriction'"/>
- </xsl:call-template>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'ColonSymbol'"/>
- </xsl:call-template><xsl:text> </xsl:text>
- </span>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="revblock"/>
- </div>
- </xsl:when>
- <xsl:when test="@type='attention'">
- <div class="attention">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <span class="attentiontitle">
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'Attention'"/>
- </xsl:call-template>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'ColonSymbol'"/>
- </xsl:call-template><xsl:text> </xsl:text>
- </span>
- <xsl:call-template name="revblock"/>
- </div>
- </xsl:when>
- <xsl:when test="@type='caution'">
- <div class="cautiontitle">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'Caution'"/>
- </xsl:call-template>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'ColonSymbol'"/>
- </xsl:call-template><xsl:text> </xsl:text>
- </div>
- <div class="caution">
- <xsl:call-template name="revblock"/>
- </div>
- </xsl:when>
- <xsl:when test="@type='danger'">
- <div class="dangertitle">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'Danger'"/>
- </xsl:call-template>
- </div>
- <div class="danger">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="revblock"/>
- </div>
- </xsl:when>
- <xsl:when test="@type='other'">
- <xsl:choose>
- <xsl:when test="@othertype">
- <div class="note">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <span class="notetitle">
- <xsl:value-of select="@othertype"/>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'ColonSymbol'"/>
- </xsl:call-template><xsl:text> </xsl:text>
- </span>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="revblock"/>
- </div>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="note"/> <!-- otherwise, give them the standard note -->
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="note"/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="$newline"/>
-</xsl:template>
-
-<xsl:template name="note">
- <div class="note">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <span class="notetitle">
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'Note'"/>
- </xsl:call-template>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'ColonSymbol'"/>
- </xsl:call-template><xsl:text> </xsl:text>
- </span>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="revblock"/>
- </div>
-</xsl:template>
-
-<!-- long quote (bibliographic association).
- @reftitle contains the citation for the excerpt.
- With a link if @href is used. -->
-<xsl:template match="*[contains(@class,' topic/lq ')]" name="topic.lq">
-<blockquote>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Rev is active - add the DIV -->
- <div class="{@rev}"><xsl:apply-templates select="." mode="lq-fmt" /></div>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:apply-templates select="." mode="lq-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</blockquote><xsl:value-of select="$newline"/>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/lq ')]" mode="lq-fmt">
- <xsl:call-template name="start-revflag"/>
- <xsl:apply-templates/>
- <xsl:choose>
- <xsl:when test="@href"> <!-- Insert citation as link, use @href as-is -->
- <br/><div style="text-align:right"><a>
- <xsl:attribute name="href">
- <xsl:choose>
- <xsl:when test="contains(@href,$DITAEXT)">
- <xsl:value-of select="substring-before(@href,$DITAEXT)"/><xsl:value-of select="$OUTEXT"/><xsl:value-of select="substring-after(@href,$DITAEXT)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@href"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- <xsl:choose>
- <xsl:when test="@type='external'">
- <xsl:attribute name="target">_blank</xsl:attribute>
- </xsl:when>
- <xsl:otherwise><!--nop - no target needed for internal or biblio types (OR-should internal force DITA xref-like processing? What is intent? @type is only internal/external/bibliographic) --></xsl:otherwise>
- </xsl:choose>
- <cite><xsl:choose>
- <xsl:when test="@reftitle"><xsl:value-of select="@reftitle"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="@href"/></xsl:otherwise>
- </xsl:choose></cite></a></div>
- </xsl:when>
- <xsl:when test="@reftitle"> <!-- Insert citation text -->
- <br/><div style="text-align:right"><cite><xsl:value-of select="@reftitle"/></cite></div>
- </xsl:when>
- <xsl:otherwise><!--nop - do nothing--></xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="end-revflag"/>
-</xsl:template>
-
-
-<!-- =========== SINGLE PART LISTS =========== -->
-
-<!-- Unordered List -->
-<!-- handle all levels thru browser processing -->
-<xsl:template match="*[contains(@class,' topic/ul ')]" name="topic.ul">
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Rev is active - add the DIV -->
- <div class="{@rev}"><xsl:apply-templates select="." mode="ul-fmt" /></div>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:apply-templates select="." mode="ul-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/ul ')]" mode="ul-fmt">
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="start-revflag"/>
- <xsl:call-template name="setaname"/>
- <ul>
- <xsl:call-template name="commonattributes"/>
- <xsl:apply-templates select="@compact"/>
- <xsl:call-template name="setid"/>
- <xsl:apply-templates/>
- </ul>
- <xsl:call-template name="end-revflag"/>
- <xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- Simple List -->
-<!-- handle all levels thru browser processing -->
-<xsl:template match="*[contains(@class,' topic/sl ')]" name="topic.sl">
-<xsl:call-template name="flagit"/>
- <xsl:choose> <!-- draft rev mode, add div w/ rev attr value -->
- <xsl:when test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:variable name="revtest"> <!-- Flag the revision? 1=yes; 0=no -->
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1">
- <div class="{@rev}"><xsl:apply-templates select="." mode="sl-fmt" /></div>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="." mode="sl-fmt" />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="." mode="sl-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/sl ')]" mode="sl-fmt">
-<xsl:call-template name="start-revflag"/>
-<xsl:call-template name="setaname"/>
-<ul class="simple">
- <xsl:call-template name="commonattributes"/>
- <xsl:apply-templates select="@compact"/>
- <xsl:call-template name="setid"/>
- <xsl:apply-templates/>
-</ul>
-<xsl:call-template name="end-revflag"/>
-<xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- Ordered List - 1st level - Handle levels 1 to 9 thru OL-TYPE attribution -->
-<!-- Updated to use a single template, use count and mod to set the list type -->
-<xsl:template match="*[contains(@class,' topic/ol ')]" name="topic.ol">
-<xsl:variable name="olcount" select="count(ancestor-or-self::*[contains(@class,' topic/ol ')])"/>
-<xsl:call-template name="flagit"/>
-<xsl:call-template name="start-revflag"/>
-<xsl:call-template name="setaname"/>
-<ol>
- <xsl:call-template name="commonattributes"/>
- <xsl:apply-templates select="@compact"/>
- <xsl:choose>
- <xsl:when test="$olcount mod 3 = 1"/>
- <xsl:when test="$olcount mod 3 = 2"><xsl:attribute name="type">a</xsl:attribute></xsl:when>
- <xsl:otherwise><xsl:attribute name="type">i</xsl:attribute></xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="setid"/>
- <xsl:apply-templates/>
-</ol>
-<xsl:call-template name="end-revflag"/>
-<xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- list item -->
-<xsl:template match="*[contains(@class,' topic/li ')]" name="topic.li">
-<li>
- <!-- handle non-compact list items -->
- <xsl:if test="parent::*/@compact='no'">
- <xsl:attribute name="class">liexpand</xsl:attribute>
- </xsl:if>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="revblock"/>
-</li><xsl:value-of select="$newline"/>
-</xsl:template>
-<!-- simple list item -->
-<xsl:template match="*[contains(@class,' topic/sli ')]" name="topic.sli">
-<li>
- <!-- handle non-compact list items -->
- <xsl:if test="parent::*/@compact='no'">
- <xsl:attribute name="class">sliexpand</xsl:attribute>
- </xsl:if>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="revblock"/>
-</li><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- special case of getting the number of a list item referenced by xref -->
-<xsl:template match="*[contains(@class,' topic/li ')]" mode="xref">
- <xsl:number/>
-</xsl:template>
-
-
-<!-- list item section is like li/lq but without presentation (indent) -->
-<xsl:template match="*[contains(@class,' topic/itemgroup ')]" name="topic.itemgroup">
-<!-- insert a space before all but the first itemgroups in a LI -->
-<xsl:variable name="itemgroupcount"><xsl:number count="*[contains(@class,' topic/itemgroup ')]"/></xsl:variable>
- <xsl:if test="$itemgroupcount>'1'">
- <xsl:text> </xsl:text>
- </xsl:if>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagcheck"/>
- <xsl:call-template name="revtext"/>
-</xsl:template>
-
-<!-- =========== DEFINITION LIST =========== -->
-
-<!-- DL -->
-<xsl:template match="*[contains(@class,' topic/dl ')]" name="topic.dl">
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Rev is active - add the DIV -->
- <div class="{@rev}"><xsl:apply-templates select="." mode="dl-fmt" /></div>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:apply-templates select="." mode="dl-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/dl ')]" mode="dl-fmt">
-<xsl:call-template name="flagit"/>
-<xsl:call-template name="start-revflag"/>
-<xsl:call-template name="setaname"/>
-<dl>
- <!-- handle DL compacting - default=yes -->
- <xsl:if test="@compact='no'">
- <xsl:attribute name="class">dlexpand</xsl:attribute>
- </xsl:if>
- <xsl:call-template name="commonattributes"/>
- <xsl:apply-templates select="@compact"/>
- <xsl:call-template name="setid"/>
- <xsl:apply-templates/>
-</dl>
-<xsl:call-template name="end-revflag"/>
-<xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- DL entry -->
-<xsl:template match="*[contains(@class,' topic/dlentry ')]" name="topic.dlentry">
- <xsl:apply-templates/>
-</xsl:template>
-
-<!-- DL term -->
-<xsl:template match="*[contains(@class,' topic/dt ')]" name="topic.dt">
-<!-- insert a blank line before only the first DT in a DLENTRY; count which DT this is -->
-<xsl:variable name="dtcount"><xsl:number count="*[contains(@class,' topic/dt ')]"/></xsl:variable>
-<xsl:choose>
- <xsl:when test="$dtcount=1">
- <dt class="dlterm">
- <!-- handle non-compact list items -->
- <xsl:if test="../../@compact='no'">
- <xsl:attribute name="class">dltermexpand</xsl:attribute>
- </xsl:if>
- <xsl:apply-templates select="../@xml:lang"/> <!-- Get from DLENTRY, then override with local -->
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <!-- handle ID on a DLENTRY -->
- <xsl:if test="parent::*/@id">
- <xsl:call-template name="parent-id"/>
- </xsl:if>
- <!-- handle non-compact DLs dl/dlentry/dt-->
- <xsl:call-template name="flagit-parent"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="start-revflag-parent"/>
- <xsl:call-template name="revtext"/>
- <xsl:call-template name="end-revflag-parent"/>
- </dt>
- </xsl:when>
- <xsl:otherwise><!-- DTs 2 thru N -->
- <dt class="dlterm">
- <xsl:apply-templates select="../@xml:lang"/> <!-- Get from DLENTRY, then override with local -->
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="start-revflag-parent"/>
- <xsl:call-template name="revtext"/>
- <xsl:call-template name="end-revflag-parent"/>
- </dt>
- </xsl:otherwise>
-</xsl:choose>
-<xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- DL description -->
-<xsl:template match="*[contains(@class,' topic/dd ')]" name="topic.dd">
-<!-- insert a blank line before all but the first DD in a DLENTRY; count which DD this is -->
-<xsl:variable name="ddcount"><xsl:number count="*[contains(@class,' topic/dd ')]"/></xsl:variable>
-<xsl:choose>
- <xsl:when test="$ddcount=1">
- <dd>
- <xsl:apply-templates select="../@xml:lang"/> <!-- Get from DLENTRY, then override with local -->
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="start-revflag-parent"/>
- <xsl:call-template name="revblock"/>
- <xsl:call-template name="end-revflag-parent"/>
- </dd>
- </xsl:when>
- <xsl:otherwise><!-- para space before 2 thru N -->
- <dd class="ddexpand">
- <xsl:apply-templates select="../@xml:lang"/> <!-- Get from DLENTRY, then override with local -->
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="start-revflag-parent"/>
- <xsl:call-template name="revblock"/>
- <xsl:call-template name="end-revflag-parent"/>
- </dd>
- </xsl:otherwise>
-</xsl:choose>
-<xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- DL heading -->
-<xsl:template match="*[contains(@class, ' topic/dlhead ')]" name="topic.dlhead">
- <xsl:apply-templates/>
-</xsl:template>
-
-<!-- DL heading, term -->
-<xsl:template match="*[contains(@class,' topic/dthd ')]" name="topic.dthd">
-<dt>
- <xsl:apply-templates select="../@xml:lang"/> <!-- Get from DLHEAD, then override with local -->
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="start-revflag-parent"/>
- <strong><xsl:call-template name="revtext"/></strong>
- <xsl:call-template name="end-revflag-parent"/>
-</dt><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- DL heading, description -->
-<xsl:template match="*[contains(@class,' topic/ddhd ')]" name="topic.ddhd">
-<dd>
- <xsl:apply-templates select="../@xml:lang"/> <!-- Get from DLHEAD, then override with local -->
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="start-revflag-parent"/>
- <strong><xsl:call-template name="revblock"/></strong>
- <xsl:call-template name="end-revflag-parent"/>
-</dd><xsl:value-of select="$newline"/>
-</xsl:template>
-
-
-<!-- =========== PHRASES =========== -->
-
-<!-- phrase presentational style - have to use a low priority otherwise topic/ph always wins -->
-<!-- should not need priority, default is low enough -->
-
-<xsl:template match="*[contains(@class,' topic/ph ')]" name="topic.ph">
- <span>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagcheck"/>
- <xsl:call-template name="revtext"/></span>
-</xsl:template>
-
-<!-- keyword presentational style - have to use priority else topic/keyword always wins -->
-<!-- should not need priority, default is low enough -->
-
-<xsl:template match="*[contains(@class,' topic/keyword ')]" name="topic.keyword">
- <span class="keyword">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagcheck"/>
- <xsl:call-template name="revtext"/></span>
-</xsl:template>
-
-<!-- trademarks -->
-<!-- prepare a key for each trademark tag -->
-<xsl:key name="tm" match="*[contains(@class,' topic/tm ')]" use="."/>
-
-<!-- process the TM tag -->
-<!-- removed priority 1 : should not be needed -->
-<xsl:template match="*[contains(@class,' topic/tm ')]" name="topic.tm">
-
- <xsl:apply-templates/> <!-- output the TM content -->
-
- <xsl:variable name="Ltmclass">
- <xsl:call-template name="convert-to-lower"> <!-- ensure lowercase for comparisons -->
- <xsl:with-param name="inputval" select="@tmclass"/>
- </xsl:call-template>
- </xsl:variable>
- <!-- If this is a good class, continue... -->
- <xsl:if test="$Ltmclass='ibm' or $Ltmclass='ibmsub' or $Ltmclass='special'">
- <!-- Test for TM area's language -->
- <xsl:variable name="tmtest">
- <xsl:call-template name="tm-area"/>
- </xsl:variable>
-
- <!-- If this language should get trademark markers, continue... -->
- <xsl:if test="$tmtest='tm'">
- <xsl:variable name="tmvalue"><xsl:value-of select="@trademark"/></xsl:variable>
-
- <!-- Determine if this is in a title, and should be marked -->
- <xsl:variable name="usetitle">
- <xsl:if test="ancestor::*[contains(@class,' topic/title ')]/parent::*[contains(@class,' topic/topic ')]">
- <xsl:choose>
- <!-- Not the first one in a title -->
- <xsl:when test="generate-id(.)!=generate-id(key('tm',.)[1])">skip</xsl:when>
- <!-- First one in the topic, BUT it appears in a shortdesc or body -->
- <xsl:when test="//*[contains(@class,' topic/shortdesc ') or contains(@class,' topic/body ')]//*[contains(@class,' topic/tm ')][@trademark=$tmvalue]">skip</xsl:when>
- <xsl:otherwise>use</xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </xsl:variable>
-
- <!-- Determine if this is in a body, and should be marked -->
- <xsl:variable name="usebody">
- <xsl:choose>
- <!-- If in a title or prolog, skip -->
- <xsl:when test="ancestor::*[contains(@class,' topic/title ') or contains(@class,' topic/prolog ')]/parent::*[contains(@class,' topic/topic ')]">skip</xsl:when>
- <!-- If first in the document, use it -->
- <xsl:when test="generate-id(.)=generate-id(key('tm',.)[1])">use</xsl:when>
- <!-- If there is another before this that is in the body or shortdesc, skip -->
- <xsl:when test="preceding::*[contains(@class,' topic/tm ')][@trademark=$tmvalue][ancestor::*[contains(@class,' topic/body ') or contains(@class,' topic/shortdesc ')]]">skip</xsl:when>
- <!-- Otherwise, any before this must be in a title or ignored section -->
- <xsl:otherwise>use</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <!-- If it should be used in a title or used in the body, output your favorite TM marker based on the attributes -->
- <xsl:if test="$usetitle='use' or $usebody='use'">
- <xsl:choose> <!-- ignore @tmtype=service or anything else -->
- <xsl:when test="@tmtype='tm'">™</xsl:when>
- <xsl:when test="@tmtype='reg'"><sup>®</sup></xsl:when>
- <xsl:otherwise/>
- </xsl:choose>
- </xsl:if>
- </xsl:if>
- </xsl:if>
-</xsl:template>
-
-<!-- Test for in TM area: returns "tm" when parent's @xml:lang needs a trademark language;
- Otherwise, leave blank.
- Use the TM for US English and the AP languages (Japanese, Korean, and both Chinese).
- Ignore the TM for all other languages. -->
-<xsl:template name="tm-area">
- <xsl:variable name="parentlang">
- <xsl:call-template name="getLowerCaseLang"/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$parentlang='en-us' or $parentlang='en'">tm</xsl:when>
- <xsl:when test="$parentlang='ja-jp' or $parentlang='ja'">tm</xsl:when>
- <xsl:when test="$parentlang='ko-kr' or $parentlang='ko'">tm</xsl:when>
- <xsl:when test="$parentlang='zh-cn' or $parentlang='zh'">tm</xsl:when>
- <xsl:when test="$parentlang='zh-tw' or $parentlang='zh'">tm</xsl:when>
- <xsl:otherwise/>
- </xsl:choose>
-</xsl:template>
-
-
-<!-- phrase "semantic" classes -->
-<!-- citations -->
-<xsl:template match="*[contains(@class,' topic/cite ')]" name="topic.cite">
-<cite>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagcheck"/>
- <xsl:call-template name="revtext"/>
-</cite>
-</xsl:template>
-
-<!-- quotes - only do 1 level, no flip-flopping -->
-<xsl:template match="*[contains(@class,' topic/q ')]" name="topic.q">
-<span class="q">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'OpenQuote'"/>
- </xsl:call-template>
- <xsl:call-template name="flagcheck"/>
- <xsl:call-template name="revtext"/>
- <xsl:call-template name="getString">
- <xsl:with-param name="stringName" select="'CloseQuote'"/>
- </xsl:call-template>
-</span>
-</xsl:template>
-
-<!-- terms -->
-<xsl:template match="*[contains(@class,' topic/term ')]" name="topic.term">
-<dfn class="term">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="flagcheck"/>
- <xsl:call-template name="revtext"/>
-</dfn>
-</xsl:template>
-
-
-<!-- =========== BOOLEAN-STATE DATA TYPES =========== -->
-<!-- Use color to indicate these types for now -->
-<!-- output the tag & it's state -->
-<xsl:template match="*[contains(@class,' topic/boolean ')]" name="topic.boolean">
- <span style="color:green">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:value-of select="name()"/><xsl:text>: </xsl:text><xsl:value-of select="@state"/>
- </span>
-</xsl:template>
-
-<!-- output the tag, it's name & value -->
-<xsl:template match="*[contains(@class,' topic/state ')]" name="topic.state">
-<span style="color:red">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <xsl:value-of select="name()"/><xsl:text>: </xsl:text><xsl:value-of select="@name"/><xsl:text>=</xsl:text><xsl:value-of select="@value"/>
-</span>
-</xsl:template>
-
-
-<!-- =========== RECORD END RESPECTING DATA =========== -->
-<!-- PRE -->
-<xsl:template match="*[contains(@class,' topic/pre ')]" name="topic.pre">
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Rev is active - add the DIV -->
- <div class="{@rev}"><xsl:apply-templates select="." mode="pre-fmt" /></div>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:apply-templates select="." mode="pre-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/pre ')]" mode="pre-fmt">
-<xsl:if test="contains(@frame,'top')"><hr /></xsl:if>
-<xsl:call-template name="flagit"/>
-<xsl:call-template name="start-revflag"/>
-<xsl:call-template name="spec-title-nospace"/>
-<pre>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setscale"/>
- <xsl:call-template name="setidaname"/>
- <xsl:apply-templates/>
-</pre>
-<xsl:call-template name="end-revflag"/>
-<xsl:if test="contains(@frame,'bot')"><hr /></xsl:if><xsl:value-of select="$newline"/>
-</xsl:template>
-
-
-<!-- lines - body font -->
-<xsl:template match="*[contains(@class,' topic/lines ')]" name="topic.lines">
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Rev is active - add the DIV -->
- <div class="{@rev}"><xsl:apply-templates select="." mode="lines-fmt" /></div>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:apply-templates select="." mode="lines-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/lines ')]" mode="lines-fmt">
-<xsl:if test="contains(@frame,'top')"><hr /></xsl:if>
-<xsl:call-template name="flagit"/>
-<xsl:call-template name="start-revflag"/>
-<xsl:call-template name="spec-title-nospace"/>
- <p>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setscale"/>
- <xsl:call-template name="setidaname"/>
- <xsl:apply-templates/>
- </p>
-<xsl:call-template name="end-revflag"/>
-<xsl:if test="contains(@frame,'bot')"><hr /></xsl:if><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/lines ')]//text()">
- <xsl:variable name="linetext"><xsl:value-of select="."/></xsl:variable>
- <xsl:variable name="linetext2">
- <xsl:call-template name="sp-replace"><xsl:with-param name="sptext" select="$linetext"/></xsl:call-template>
- </xsl:variable>
- <xsl:call-template name="br-replace">
- <xsl:with-param name="brtext" select="$linetext2"/>
- </xsl:call-template>
-</xsl:template>
-
-
-<!-- =========== FIGURE =========== -->
-<xsl:template match="*[contains(@class,' topic/fig ')]" name="topic.fig">
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Rev is active - add the DIV -->
- <div class="{@rev}"><xsl:apply-templates select="." mode="fig-fmt" /></div>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:apply-templates select="." mode="fig-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/fig ')]" mode="fig-fmt">
-<xsl:call-template name="flagit"/>
-<xsl:call-template name="start-revflag"/>
- <div>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setscale"/>
- <xsl:choose>
- <xsl:when test="@frame='all'">
- <xsl:attribute name="class">figborder</xsl:attribute>
- </xsl:when>
- <xsl:when test="@frame='sides'">
- <xsl:attribute name="class">figsides</xsl:attribute>
- </xsl:when>
- <xsl:when test="@frame='top'">
- <xsl:attribute name="class">figtop</xsl:attribute>
- </xsl:when>
- <xsl:when test="@frame='bottom'">
- <xsl:attribute name="class">figbottom</xsl:attribute>
- </xsl:when>
- <xsl:when test="@frame='topbot'">
- <xsl:attribute name="class">figtopbot</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="class">fignone</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="setidaname"/>
- <xsl:call-template name="place-fig-lbl"/>
- <xsl:apply-templates select="*[not(contains(@class,' topic/title '))][not(contains(@class,' topic/desc '))] |text()|comment()|processing-instruction()"/>
- </div>
-<xsl:call-template name="end-revflag"/>
-<xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- should not need priority, default is low enough; was set to 1 -->
-<xsl:template match="*[contains(@class,' topic/figgroup ')]" name="topic.figgroup">
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Rev is active - add the DIV -->
- <div class="{@rev}"><xsl:apply-templates select="." mode="figgroup-fmt" /></div>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:apply-templates select="." mode="figgroup-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/figgroup ')]" mode="figgroup-fmt">
-<xsl:call-template name="flagit"/>
-<xsl:call-template name="start-revflag"/>
- <span>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setidaname"/>
- <!-- Allow title to fallthrough -->
- <xsl:apply-templates/>
- </span>
-<xsl:call-template name="end-revflag"/>
-</xsl:template>
-
-
-<!-- =========== IMAGE/OBJECT =========== -->
-
-<xsl:template match="*[contains(@class,' topic/image ')]" name="topic.image">
- <!-- build any pre break indicated by style -->
- <xsl:choose>
- <xsl:when test="parent::fig[contains(@frame,'top ')]">
- <!-- NOP if there is already a break implied by a parent property -->
- </xsl:when>
- <xsl:otherwise>
- <xsl:choose>
- <xsl:when test="(@placement='break')"><br/>
- <xsl:call-template name="flagit"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="flagcheck"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="start-revflag"/>
- <xsl:call-template name="setaname"/>
- <xsl:choose>
- <xsl:when test="@placement='break'"><!--Align only works for break-->
- <xsl:choose>
- <xsl:when test="@align='left'">
- <div class="imageleft">
- <xsl:call-template name="topic-image"/>
- </div>
- </xsl:when>
- <xsl:when test="@align='right'">
- <div class="imageright">
- <xsl:call-template name="topic-image"/>
- </div>
- </xsl:when>
- <xsl:when test="@align='center'">
- <div class="imagecenter">
- <xsl:call-template name="topic-image"/>
- </div>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="topic-image"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="topic-image"/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="end-revflag"/>
- <!-- build any post break indicated by style -->
- <xsl:if test="not(@placement='inline')"><br/></xsl:if>
- <!-- image name for review -->
- <xsl:if test="$ARTLBL='yes'">
- [<xsl:value-of select="@href"/>]
- </xsl:if>
-</xsl:template>
-
-<xsl:template name="topic-image">
- <!-- now invoke the actual content and its alt text -->
- <xsl:element name="img">
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setid"/>
- <xsl:apply-templates select="@href|@height|@width|@longdescref"/>
- <xsl:choose>
- <xsl:when test="*[contains(@class,' topic/alt')]">
- <xsl:attribute name="alt"><xsl:value-of select="*[contains(@class,' topic/alt ')]"/></xsl:attribute>
- </xsl:when>
- <xsl:when test="@alt">
- <xsl:attribute name="alt"><xsl:value-of select="@alt"/></xsl:attribute>
- </xsl:when>
- </xsl:choose>
- </xsl:element>
-</xsl:template>
-<!-- Process image attributes. Using priority, in case default @href is added at some point. -->
-<xsl:template match="*[contains(@class,' topic/image ')]/@href" priority="1">
- <xsl:attribute name="src"><xsl:value-of select="."/></xsl:attribute>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/image ')]/@height">
- <xsl:attribute name="height"><xsl:value-of select="."/></xsl:attribute>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/image ')]/@width">
- <xsl:attribute name="width"><xsl:value-of select="."/></xsl:attribute>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/image ')]/@longdescref">
- <xsl:attribute name="longdesc">
- <xsl:choose>
- <xsl:when test="contains(.,$DITAEXT)"> <!-- switch extension from .dita -->
- <xsl:value-of select="substring-before(.,$DITAEXT)"/><xsl:value-of select="$OUTEXT"/><xsl:value-of select="substring-after(.,$DITAEXT)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="."/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
-</xsl:template>
-
-
-<!-- object, desc, & param -->
-<xsl:template match="*[contains(@class,' topic/object ')]" name="topic.object">
- <xsl:element name="object">
- <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute></xsl:if>
- <xsl:if test="@declare"><xsl:attribute name="declare"><xsl:value-of select="@declare"/></xsl:attribute></xsl:if>
- <xsl:if test="@codebase"><xsl:attribute name="codebase"><xsl:value-of select="@codebase"/></xsl:attribute></xsl:if>
- <xsl:if test="@type"><xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute></xsl:if>
- <xsl:if test="@archive"><xsl:attribute name="archive"><xsl:value-of select="@archive"/></xsl:attribute></xsl:if>
- <xsl:if test="@height"><xsl:attribute name="height"><xsl:value-of select="@height"/></xsl:attribute></xsl:if>
- <xsl:if test="@usemap"><xsl:attribute name="usemap"><xsl:value-of select="@usemap"/></xsl:attribute></xsl:if>
- <xsl:if test="@tabindex"><xsl:attribute name="tabindex"><xsl:value-of select="@tabindex"/></xsl:attribute></xsl:if>
- <xsl:if test="@classid"><xsl:attribute name="classid"><xsl:value-of select="@classid"/></xsl:attribute></xsl:if>
- <xsl:if test="@data"><xsl:attribute name="data"><xsl:value-of select="@data"/></xsl:attribute></xsl:if>
- <xsl:if test="@codetype"><xsl:attribute name="codetype"><xsl:value-of select="@codetype"/></xsl:attribute></xsl:if>
- <xsl:if test="@standby"><xsl:attribute name="standby"><xsl:value-of select="@standby"/></xsl:attribute></xsl:if>
- <xsl:if test="@width"><xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute></xsl:if>
- <xsl:if test="@name"><xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute></xsl:if>
- <xsl:if test="@longdescref">
- <xsl:call-template name="output-message">
- <xsl:with-param name="msg">The LONGDESCREF attribute on tag "<xsl:value-of select="name(.)"/>" will be ignored. Accessibility needs to be handled another way.</xsl:with-param>
- <xsl:with-param name="msgnum">010</xsl:with-param>
- <xsl:with-param name="msgsev">I</xsl:with-param>
- </xsl:call-template>
- </xsl:if>
- <xsl:apply-templates/>
- <!-- Test for Flash movie; include EMBED statement for non-IE browsers -->
- <xsl:if test="contains(@codebase,'swflash.cab')">
- <xsl:element name="embed">
- <xsl:if test="@id"><xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute></xsl:if>
- <xsl:if test="@height"><xsl:attribute name="height"><xsl:value-of select="@height"/></xsl:attribute></xsl:if>
- <xsl:if test="@width"><xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute></xsl:if>
- <xsl:attribute name="type"><xsl:text>application/x-shockwave-flash</xsl:text></xsl:attribute>
- <xsl:attribute name="pluginspage"><xsl:text>http://www.macromedia.com/go/getflashplayer</xsl:text></xsl:attribute>
- <xsl:if test="./*[contains(@class,' topic/param ')]/@name='movie'">
- <xsl:attribute name="src"><xsl:value-of select="./*[contains(@class,' topic/param ')][@name='movie']/@value"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="./*[contains(@class,' topic/param ')]/@name='quality'">
- <xsl:attribute name="quality"><xsl:value-of select="./*[contains(@class,' topic/param ')][@name='quality']/@value"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="./*[contains(@class,' topic/param ')]/@name='bgcolor'">
- <xsl:attribute name="bgcolor"><xsl:value-of select="./*[contains(@class,' topic/param ')][@name='bgcolor']/@value"/></xsl:attribute>
- </xsl:if>
- </xsl:element>
- </xsl:if>
- </xsl:element>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/param ')]" name="topic.param">
- <xsl:element name="param">
- <xsl:if test="@name"><xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute></xsl:if>
- <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute></xsl:if>
- <xsl:if test="@value"><xsl:attribute name="value"><xsl:value-of select="@value"/></xsl:attribute></xsl:if>
- </xsl:element>
-</xsl:template>
-
-<!-- need to add test for object/desc to avoid conflicts -->
-<xsl:template match="*[contains(@class,' topic/object ')]/*[contains(@class,' topic/desc ')]" name="topic.object_desc">
- <xsl:element name="span">
- <xsl:if test="@name"><xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute></xsl:if>
- <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute></xsl:if>
- <xsl:if test="@value"><xsl:attribute name="value"><xsl:value-of select="@value"/></xsl:attribute></xsl:if>
- <xsl:apply-templates/>
- </xsl:element>
-</xsl:template>
-
-<!-- ===================================================================== -->
-
-<!-- =========== CALS (OASIS) TABLE =========== -->
-
-<xsl:template match="*[contains(@class,' topic/table ')]" name="topic.table">
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Rev is active - add the DIV -->
- <div class="{@rev}"><xsl:apply-templates select="." mode="table-fmt" /></div>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:apply-templates select="." mode="table-fmt" />
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-<xsl:template match="*[contains(@class,' topic/table ')]" mode="table-fmt">
- <xsl:value-of select="$newline"/>
- <!-- special case for IE & NS for frame & no rules - needs to be a double table -->
- <xsl:variable name="colsep">
- <xsl:choose>
- <xsl:when test="*[contains(@class,' topic/tgroup ')]/@colsep"><xsl:value-of select="*[contains(@class,' topic/tgroup ')]/@colsep"/></xsl:when>
- <xsl:when test="@colsep"><xsl:value-of select="@colsep"/></xsl:when>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="rowsep">
- <xsl:choose>
- <xsl:when test="*[contains(@class,' topic/tgroup ')]/@rowsep"><xsl:value-of select="*[contains(@class,' topic/tgroup ')]/@rowsep"/></xsl:when>
- <xsl:when test="@rowsep"><xsl:value-of select="@rowsep"/></xsl:when>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="@frame='all' and $colsep='0' and $rowsep='0'">
- <table cellpadding="4" cellspacing="0" border="1" class="tableborder"><tr><td><xsl:value-of select="$newline"/>
- <xsl:call-template name="dotable"/>
- </td></tr></table>
- </xsl:when>
- <xsl:when test="not(@frame) and $colsep='0' and $rowsep='0'">
- <table cellpadding="4" cellspacing="0" border="1" class="tableborder"><tr><td><xsl:value-of select="$newline"/>
- <xsl:call-template name="dotable"/>
- </td></tr></table>
- </xsl:when>
- <xsl:otherwise>
- <div class="tablenoborder">
- <xsl:call-template name="dotable"/>
- </div>
- </xsl:otherwise>
- </xsl:choose><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<xsl:template name="dotable">
- <xsl:call-template name="flagit"/>
- <xsl:call-template name="start-revflag"/>
- <xsl:call-template name="setaname"/>
-
- <!-- Fix this; this table has no summary -->
-
-
-
- <table cellpadding="4" cellspacing="0">
-
- <xsl:attribute name="summary">
- <xsl:call-template name="CREATE-CAPTION-TEXT"/>
- </xsl:attribute>
-
-
-
- <xsl:variable name="colsep">
- <xsl:choose>
- <xsl:when test="*[contains(@class,' topic/tgroup ')]/@colsep"><xsl:value-of select="*[contains(@class,' topic/tgroup ')]/@colsep"/></xsl:when>
- <xsl:when test="@colsep"><xsl:value-of select="@colsep"/></xsl:when>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="rowsep">
- <xsl:choose>
- <xsl:when test="*[contains(@class,' topic/tgroup ')]/@rowsep"><xsl:value-of select="*[contains(@class,' topic/tgroup ')]/@rowsep"/></xsl:when>
- <xsl:when test="@rowsep"><xsl:value-of select="@rowsep"/></xsl:when>
- </xsl:choose>
- </xsl:variable>
- <xsl:call-template name="setid"/>
- <xsl:call-template name="commonattributes"/>
- <xsl:call-template name="setscale"/>
- <!-- When a table's width is set to page or column, force it's width to 100%. If it's in a list, use 90%.
- Otherwise, the table flows to the content -->
- <xsl:choose>
- <xsl:when test="(@expanse='page' or @pgwide='1')and (ancestor::*[contains(@class,' topic/li ')] or ancestor::*[contains(@class,' topic/dd ')] )">
- <xsl:attribute name="width">90%</xsl:attribute>
- </xsl:when>
- <xsl:when test="(@expanse='column' or @pgwide='0') and (ancestor::*[contains(@class,' topic/li ')] or ancestor::*[contains(@class,' topic/dd ')] )">
- <xsl:attribute name="width">90%</xsl:attribute>
- </xsl:when>
- <xsl:when test="(@expanse='page' or @pgwide='1')">
- <xsl:attribute name="width">100%</xsl:attribute>
- </xsl:when>
- <xsl:when test="(@expanse='column' or @pgwide='0')">
- <xsl:attribute name="width">100%</xsl:attribute>
- </xsl:when>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="@frame='all' and $colsep='0' and $rowsep='0'">
- <xsl:attribute name="border">0</xsl:attribute>
- </xsl:when>
- <xsl:when test="not(@frame) and $colsep='0' and $rowsep='0'">
- <xsl:attribute name="border">0</xsl:attribute>
- </xsl:when>
- <xsl:when test="@frame='sides'">
- <xsl:attribute name="frame">vsides</xsl:attribute>
- <xsl:attribute name="border">1</xsl:attribute>
- </xsl:when>
- <xsl:when test="@frame='top'">
- <xsl:attribute name="frame">above</xsl:attribute>
- <xsl:attribute name="border">1</xsl:attribute>
- </xsl:when>
- <xsl:when test="@frame='bottom'">
- <xsl:attribute name="frame">below</xsl:attribute>
- <xsl:attribute name="border">1</xsl:attribute>
- </xsl:when>
- <xsl:when test="@frame='topbot'">
- <xsl:attribute name="frame">hsides</xsl:attribute>
- <xsl:attribute name="border">1</xsl:attribute>
- </xsl:when>
- <xsl:when test="@frame='none'">
- <xsl:attribute name="frame">void</xsl:attribute>
- <xsl:attribute name="border">1</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="frame">border</xsl:attribute>
- <xsl:attribute name="border">1</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="@frame='all' and $colsep='0' and $rowsep='0'">
- <xsl:attribute name="border">0</xsl:attribute>
- </xsl:when>
- <xsl:when test="not(@frame) and $colsep='0' and $rowsep='0'">
- <xsl:attribute name="border">0</xsl:attribute>
- </xsl:when>
- <xsl:when test="$colsep='0' and $rowsep='0'">
- <xsl:attribute name="rules">none</xsl:attribute>
- <xsl:attribute name="border">0</xsl:attribute>
- </xsl:when>
- <xsl:when test="$colsep='0'">
- <xsl:attribute name="rules">rows</xsl:attribute>
- </xsl:when>
- <xsl:when test="$rowsep='0'">
- <xsl:attribute name="rules">cols</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="rules">all</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="place-tbl-lbl"/>
- <!-- title and desc are processed elsewhere -->
- <xsl:apply-templates select="*[contains(@class,' topic/tgroup ')]"/>
- </table><xsl:value-of select="$newline"/>
- <xsl:call-template name="end-revflag"/>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/tgroup ')]" name="topic.tgroup">
- <xsl:apply-templates/>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/colspec ')]"></xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/spanspec ')]"></xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/thead ')]" name="topic.thead">
- <thead>
- <xsl:call-template name="commonattributes"/>
- <xsl:choose>
- <xsl:when test="@align">
- <xsl:attribute name="align">
- <xsl:value-of select="@align"/>
- </xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="th-align"/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="@char">
- <xsl:attribute name="char">
- <xsl:value-of select="@char"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@charoff">
- <xsl:attribute name="charoff">
- <xsl:value-of select="@charoff"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@valign">
- <xsl:attribute name="valign">
- <xsl:value-of select="@valign"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:apply-templates/>
- </thead><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- Table footer processing. Ignore fall-thru tfoot; process them from the table body -->
-<xsl:template match="*[contains(@class,' topic/tfoot ')]"/>
-
-<xsl:template match="*[contains(@class,' topic/tbody ')]" name="topic.tbody">
- <tbody>
- <xsl:call-template name="commonattributes"/>
- <xsl:if test="@align">
- <xsl:attribute name="align">
- <xsl:value-of select="@align"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@char">
- <xsl:attribute name="char">
- <xsl:value-of select="@char"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@charoff">
- <xsl:attribute name="charoff">
- <xsl:value-of select="@charoff"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@valign">
- <xsl:attribute name="valign">
- <xsl:value-of select="@valign"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:apply-templates/>
- <!-- process table footer -->
- <xsl:apply-templates select="../*[contains(@class,' topic/tfoot ')]" mode="gen-tfoot" />
- </tbody><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- special mode for table footers -->
-<xsl:template match="*[contains(@class,' topic/tfoot ')]" mode="gen-tfoot">
- <xsl:apply-templates/><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/row ')]" name="topic.row">
- <tr>
- <xsl:call-template name="setid"/>
- <xsl:call-template name="commonattributes"/>
- <xsl:if test="@align">
- <xsl:attribute name="align">
- <xsl:value-of select="@align"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@char">
- <xsl:attribute name="char">
- <xsl:value-of select="@char"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@charoff">
- <xsl:attribute name="charoff">
- <xsl:value-of select="@charoff"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@valign">
- <xsl:attribute name="valign">
- <xsl:value-of select="@valign"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:apply-templates/>
- </tr><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/entry ')]" name="topic.entry">
- <xsl:choose>
- <xsl:when test="parent::*/parent::*[contains(@class,' topic/thead ')]">
- <xsl:call-template name="topic.thead_entry"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="topic.tbody_entry"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!-- do header entries -->
-<xsl:template name="topic.thead_entry">
- <th>
- <xsl:call-template name="doentry"/>
- </th><xsl:value-of select="$newline"/>
-</xsl:template>
-
-<!-- do body entries -->
-<xsl:template name="topic.tbody_entry">
- <xsl:variable name="startpos">
- <xsl:if test="../../../../@rowheader='firstcol'"><xsl:call-template name="find-entry-start-position"/></xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$startpos=1"><th><xsl:call-template name="doentry"/></th></xsl:when>
- <xsl:otherwise><td><xsl:call-template name="doentry"/></td></xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="$newline"/>
-</xsl:template>
-
-<xsl:template name="doentry">
- <xsl:call-template name="commonattributes"/>
- <xsl:if test="@morerows">
- <xsl:attribute name="rowspan"> <!-- set the number of rows to span -->
- <xsl:value-of select="@morerows+1"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@spanname">
- <xsl:attribute name="colspan"> <!-- get the number of columns to span from the corresponding spanspec -->
- <xsl:call-template name="find-spanspec-colspan"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@namest and @nameend"> <!-- get the number of columns to span from the specified named column values -->
- <xsl:attribute name="colspan">
- <xsl:call-template name="find-colspan"/>
- </xsl:attribute>
- </xsl:if>
- <!-- If align is on the tgroup, use it (parent=row, then tbody|thead|tfoot, then tgroup) -->
- <xsl:if test="../../../@align">
- <xsl:attribute name="align">
- <xsl:value-of select="../../../@align"/>
- </xsl:attribute>
- </xsl:if>
- <!-- If align is specified on a colspec or spanspec, that takes priority over tgroup -->
- <xsl:if test="@colname">
- <xsl:variable name="this-colname"><xsl:value-of select="@colname"/></xsl:variable>
- <xsl:if test="../../../*[contains(@class,' topic/colspec ')][@colname=$this-colname][@align]">
- <xsl:attribute name="align">
- <xsl:value-of select="../../../*[contains(@class,' topic/colspec ')][@colname=$this-colname]/@align"/>
- </xsl:attribute>
- </xsl:if>
- </xsl:if>
- <xsl:if test="@spanname">
- <xsl:variable name="this-spanname"><xsl:value-of select="@spanname"/></xsl:variable>
- <xsl:if test="../../../*[contains(@class,' topic/spanspec ')][@spanname=$this-spanname][@align]">
- <xsl:attribute name="align">
- <xsl:value-of select="../../../*[contains(@class,' topic/spanspec ')][@spanname=$this-spanname]/@align"/>
- </xsl:attribute>
- </xsl:if>
- </xsl:if>
- <!-- If align is locally specified, that takes priority over all -->
- <xsl:if test="@align">
- <xsl:attribute name="align">
- <xsl:value-of select="@align"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@char">
- <xsl:attribute name="char">
- <xsl:value-of select="@char"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@charoff">
- <xsl:attribute name="charoff">
- <xsl:value-of select="@charoff"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="@valign">
- <xsl:attribute name="valign">
- <xsl:value-of select="@valign"/>
- </xsl:attribute>
- </xsl:when>
- <xsl:when test="ancestor::*[contains(@class,' topic/row ')]/@valign">
- <xsl:attribute name="valign">
- <xsl:value-of select="ancestor::*[contains(@class,' topic/row ')]/@valign"/>
- </xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="valign">top</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="../../../*[contains(@class,' topic/colspec ')]/@colwidth and
- not(@namest) and not(@nameend) and not(@spanspec)">
- <xsl:variable name="entrypos"> <!-- Current column -->
- <xsl:call-template name="find-entry-start-position"/>
- </xsl:variable>
- <xsl:variable name="totalwidth"> <!-- Total width of the column, in units -->
- <xsl:apply-templates select="../../../*[contains(@class,' topic/colspec ')][1]" mode="count-colwidth"/>
- </xsl:variable>
- <xsl:variable name="thiswidth"> <!-- Width of this column, in units -->
- <xsl:choose>
- <xsl:when test="../../../*[contains(@class,' topic/colspec ')][number($entrypos)]/@colwidth">
- <xsl:value-of select="substring-before(../../../*[contains(@class,' topic/colspec ')][number($entrypos)]/@colwidth,'*')"/>
- </xsl:when>
- <xsl:otherwise>1</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <!-- Width = width of this column / width of table, times 100 to make a percent -->
- <xsl:attribute name="width">
- <xsl:value-of select="($thiswidth div $totalwidth) * 100"/><xsl:text>%</xsl:text>
- </xsl:attribute>
- </xsl:if>
-
- <!-- If @rowheader='firstcol' on table, and this entry is in the first column,
- output an ID and the firstcol class -->
- <xsl:if test="../../../../@rowheader='firstcol'">
- <xsl:variable name="startpos">
- <xsl:call-template name="find-entry-start-position"/>
- </xsl:variable>
- <xsl:if test="number($startpos)=1">
- <xsl:attribute name="class">firstcol</xsl:attribute>
- <xsl:attribute name="id">
- <xsl:value-of select="generate-id(.)"/>
- </xsl:attribute>
- </xsl:if>
- </xsl:if>
-
- <xsl:choose>
- <!-- When entry is in a thead, output the ID -->
- <xsl:when test="parent::*/parent::*[contains(@class,' topic/thead ')]">
- <xsl:attribute name="id">
- <xsl:value-of select="generate-id(.)"/>
- </xsl:attribute>
- </xsl:when>
- <!-- otherwise, add @headers if needed -->
- <xsl:otherwise>
- <xsl:call-template name="add-headers-attribute"/>
- </xsl:otherwise>
- </xsl:choose>
-
- <xsl:choose>
- <!-- When entry is empty, output a blank -->
- <xsl:when test="not(*|text()|processing-instruction())">
- <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> <!-- nbsp -->
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:variable name="revtest-row">
- <xsl:if test="../@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
- <xsl:with-param name="allrevs" select="../@rev"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$revtest=1"> <!-- Entry Rev is active - add the span -->
- <span class="{@rev}">
- <xsl:call-template name="start-revflag-parent"/>
- <xsl:call-template name="start-revflag"/>
- <xsl:apply-templates/>
- <xsl:call-template name="end-revflag"/>
- <xsl:call-template name="end-revflag-parent"/>
- </span>
- </xsl:when>
- <xsl:when test="$revtest-row=1"> <!-- Row Rev is active - add the span -->
- <span class="{../@rev}">
- <xsl:call-template name="start-revflag-parent"/>
- <xsl:call-template name="start-revflag"/>
- <xsl:apply-templates/>
- <xsl:call-template name="end-revflag"/>
- <xsl:call-template name="end-revflag-parent"/>
- </span>
- </xsl:when>
- <xsl:otherwise> <!-- Rev wasn't active - process normally -->
- <xsl:call-template name="start-revflag-parent"/>
- <xsl:call-template name="start-revflag"/>
- <xsl:apply-templates/>
- <xsl:call-template name="end-revflag"/>
- <xsl:call-template name="end-revflag-parent"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match="*[contains(@class,' topic/colspec ')]" mode="count-colwidth">
- <xsl:param name="totalwidth">0</xsl:param> <!-- Total counted width so far -->
- <xsl:variable name="thiswidth"> <!-- Width of this column -->
- <xsl:choose>
- <xsl:when test="@colwidth"><xsl:value-of select="substring-before(@colwidth,'*')"/></xsl:when>
- <xsl:otherwise>1</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <!-- If there are more colspecs, continue, otherwise return the current count -->
- <xsl:choose>
- <xsl:when test="following-sibling::*[contains(@class,' topic/colspec ')]">
- <xsl:apply-templates select="following-sibling::*[contains(@class,' topic/colspec ')][1]" mode="count-colwidth">
- <xsl:with-param name="totalwidth" select="$totalwidth + $thiswidth"/>
- </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise><xsl:value-of select="$totalwidth + $thiswidth"/></xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!-- Find the starting column of an entry in a row. -->
-<xsl:template name="find-entry-start-position">
- <xsl:choose>
-
- <!-- if the column number is specified, use it -->
- <xsl:when test="@colnum">
- <xsl:value-of select="@colnum"/>
- </xsl:when>
-
- <!-- If there is a defined column name, check the colspans to determine position -->
- <xsl:when test="@colname">
- <!-- count the number of colspans before the one this entry references, plus one -->
- <xsl:value-of select="number(count(../../../*[contains(@class,' topic/colspec ')][@colname=current()/@colname]/preceding-sibling::*)+1)"/>
- </xsl:when>
-
- <!-- If the starting column is defined, check colspans to determine position -->
- <xsl:when test="@namest">
- <xsl:value-of select="number(count(../../../*[contains(@class,' topic/colspec ')][@colname=current()/@namest]/preceding-sibling::*)+1)"/>
- </xsl:when>
-
- <!-- Need a test for spanspec -->
- <xsl:when test="@spanname">
- <xsl:variable name="startspan"> <!-- starting column for this span -->
- <xsl:value-of select="../../../*[contains(@class,' topic/spanspec ')][@spanname=current()/@spanname]/@namest"/>
- </xsl:variable>
- <xsl:value-of select="number(count(../../../*[contains(@class,' topic/colspec ')][@colname=$startspan]/preceding-sibling::*)+1)"/>
- </xsl:when>
-
- <!-- Otherwise, just use the count of cells in this row -->
- <xsl:otherwise>
- <xsl:variable name="prev-sib">
- <xsl:value-of select="count(preceding-sibling::*)"/>
- </xsl:variable>
- <xsl:value-of select="$prev-sib+1"/>
- </xsl:otherwise>
-
- </xsl:choose>
-</xsl:template>
-
-<!-- Find the end column of a cell. If the cell does not span any columns,
- the end position is the same as the start position. -->
-<xsl:template name="find-entry-end-position">
- <xsl:param name="startposition" select="0"/>
- <xsl:choose>
- <xsl:when test="@nameend">
- <xsl:value-of select="number(count(../../../*[contains(@class,' topic/colspec ')][@colname=current()/@nameend]/preceding-sibling::*)+1)"/>
- </xsl:when>
- <xsl:when test="@spanname">
- <xsl:variable name="endspan"> <!-- starting column for this span -->
- <xsl:value-of select="../../../*[contains(@class,' topic/spanspec ')][@spanname=current()/@spanname]/@nameend"/>
- </xsl:variable>
- <xsl:value-of select="number(count(../../../*[contains(@class,' topic/colspec ')][@colname=$endspan]/preceding-sibling::*)+1)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$startposition"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!-- Check <thead> entries, and return IDs for those which match the desired column -->
-<xsl:template match="*[contains(@class,' topic/thead ')]/*[contains(@class,' topic/row ')]/*[contains(@class,' topic/entry ')]" mode="findmatch">
- <xsl:param name="startmatch">1</xsl:param> <!-- start column of the tbody cell -->
- <xsl:param name="endmatch">1</xsl:param> <!-- end column of the tbody cell -->
- <xsl:variable name="entrystartpos"> <!-- start column of this thead cell -->
- <xsl:call-template name="find-entry-start-position"/>
- </xsl:variable>
- <xsl:variable name="entryendpos"> <!-- end column of this thead cell -->
- <xsl:call-template name="find-entry-end-position">
- <xsl:with-param name="startposition" select="$entrystartpos"/>
- </xsl:call-template>
- </xsl:variable>
-
- <xsl:choose>
- <!-- Ignore this header cell if it starts after the tbody cell we are testing -->
- <xsl:when test="number($endmatch) < number($entrystartpos)"/>
- <!-- Ignore this header cell if it ends before the tbody cell we are testing -->
- <xsl:when test="number($startmatch) > number($entryendpos)"/>
- <!-- Otherwise, this header lines up with the tbody cell, so use the ID -->
- <xsl:otherwise>
- <xsl:value-of select="generate-id(.)"/><xsl:text> </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!-- Check the first column for entries that line up with the test row.
- Any entries that line up need to have the header saved. This template is first
- called with the first entry of the first row in <tbody>. It is called from here
- on the next cell in column one. -->
-<xsl:template match="*[contains(@class,' topic/entry ')]" mode="check-first-column">
- <xsl:param name="startMatchRow" select="1"/> <!-- First row of the tbody cell we are matching -->
- <xsl:param name="endMatchRow" select="1"/> <!-- Last row of the tbody cell we are matching -->
- <xsl:param name="startCurrentRow" select="1"/> <!-- First row of the column-1 cell we are testing -->
- <xsl:variable name="endCurrentRow"> <!-- Last row of the column-1 cell we are testing -->
- <xsl:choose>
- <!-- If @morerows, the cell ends at startCurrentRow + @morerows. Otherise, start=end. -->
- <xsl:when test="@morerows"><xsl:value-of select="number($startCurrentRow)+number(@morerows)"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="$startCurrentRow"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <!-- When the current column-1 cell ends before the tbody cell we are matching -->
- <xsl:when test="number($endCurrentRow) < number($startMatchRow)">
- <!-- Call this template again with the next entry in column one -->
- <xsl:if test="parent::*/parent::*/*[number($endCurrentRow)+1]">
- <xsl:apply-templates select="parent::*/parent::*/*[number($endCurrentRow)+1]/*[1]" mode="check-first-column">
- <xsl:with-param name="startMatchRow" select="$startMatchRow"/>
- <xsl:with-param name="endMatchRow" select="$endMatchRow"/>
- <xsl:with-param name="startCurrentRow" select="number($endCurrentRow)+1"/>
- </xsl:apply-templates>
- </xsl:if>
- </xsl:when>
- <!-- If this column-1 cell starts after the tbody cell we are matching, jump out of recursive loop -->
- <xsl:when test="number($startCurrentRow) > number($endMatchRow)"/>
- <!-- Otherwise, the column-1 cell is aligned with the tbody cell, so save the ID and continue -->
- <xsl:otherwise>
- <xsl:value-of select="generate-id(.)"/><xsl:text> </xsl:text>
- <!-- If we are not at the end of the tbody cell, and more rows exist, continue testing column 1 -->
- <xsl:if test="number($endCurrentRow) < number($endMatchRow) and
- parent::*/parent::*/*[number($endCurrentRow)+1]">
- <xsl:apply-templates select="parent::*/parent::*/*[number($endCurrentRow)+1]/*[1]" mode="check-first-column">
- <xsl:with-param name="startMatchRow" select="$startMatchRow"/>
- <xsl:with-param name="endMatchRow" select="$endMatchRow"/>
- <xsl:with-param name="startCurrentRow" select="number($endCurrentRow)+1"/>
- </xsl:apply-templates>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!-- Add @headers to cells in the body of a table. -->
-<xsl:template name="add-headers-attribute">
- <!-- Determine the start column for the current cell -->
- <xsl:variable name="entrystartpos">
- <xsl:call-template name="find-entry-start-position"/>
- </xsl:variable>
- <!-- Determine the end column for the current cell -->
- <xsl:variable name="entryendpos">
- <xsl:call-template name="find-entry-end-position">
- <xsl:with-param name="startposition" select="$entrystartpos"/>
- </xsl:call-template>
- </xsl:variable>
- <!-- Find the IDs of headers that are aligned above this cell. This is done by applying
- templates on all headers, using mode=findmatch; matching IDs are returned. -->
- <xsl:variable name="hdrattr">
- <xsl:apply-templates select="../../../*[contains(@class,' topic/thead ')]/*[contains(@class,' topic/row ')]/*" mode="findmatch">
- <xsl:with-param name="startmatch" select="$entrystartpos"/>
- <xsl:with-param name="endmatch" select="$entryendpos"/>
- </xsl:apply-templates>
- </xsl:variable>
- <!-- Find the IDs of headers in the first column, which are aligned with this cell -->
- <xsl:variable name="rowheader">
- <!-- If this entry is not in the first column or in thead, and @rowheader=firstcol on table -->
- <xsl:if test="not(number($entrystartpos)=1) and
- not(parent::*/parent::*[contains(@class,' topic/thead ')]) and
- ../../../../@rowheader='firstcol'">
- <!-- Find the start row for this entry -->
- <xsl:variable name="startrow" select="number(count(parent::*/preceding-sibling::*)+1)"/>
- <!-- Find the end row for this entry -->
- <xsl:variable name="endrow">
- <xsl:if test="@morerows"><xsl:value-of select="number($startrow) + number(@morerows)"/></xsl:if>
- <xsl:if test="not(@morerows)"><xsl:value-of select="$startrow"/></xsl:if>
- </xsl:variable>
- <!-- Scan first-column entries for ones that align with this cell, starting with
- the first entry in the first row -->
- <xsl:apply-templates select="../../*[contains(@class,' topic/row ')][1]/*[contains(@class,' topic/entry ')][1]" mode="check-first-column">
- <xsl:with-param name="startMatchRow" select="$startrow"/>
- <xsl:with-param name="endMatchRow" select="$endrow"/>
- </xsl:apply-templates>
- </xsl:if>
- </xsl:variable>
- <xsl:if test="string-length($rowheader)>0 or string-length($hdrattr)>0">
- <!-- <xsl:attribute name="headers"><xsl:value-of select="$rowheader"/><xsl:value-of select="$hdrattr"/></xsl:attribute> -->
- <xsl:attribute name="headers"><xsl:value-of select="normalize-space($rowheader)"/><xsl:value-of select="normalize-space($hdrattr)"/></xsl:attribute>
- </xsl:if>
-</xsl:template>
-
-<!-- Find the number of column spans between name-start and name-end attrs -->
-<xsl:template name="find-colspan">
- <xsl:variable name="startpos">
- <xsl:call-template name="find-entry-start-position"/>
- </xsl:variable>
- <xsl:variable name="endpos">
- <xsl:call-template name="find-entry-end-position"/>
- </xsl:variable>
- <xsl:value-of select="$endpos - $startpos + 1"/>
-</xsl:template>
-
-<xsl:template name="find-spanspec-colspan">
- <xsl:variable name="spanname"><xsl:value-of select="@spanname"/></xsl:variable>
- <xsl:variable name="startcolname">
- <xsl:value-of select="../../../*[contains(@class,' topic/spanspec ')][@spanname=$spanname][1]/@namest"/>
- </xsl:variable>
- <xsl:variable name="endcolname">
- <xsl:value-of select="../../../*[contains(@class,' topic/spanspec ')][@spanname=$spanname][1]/@nameend"/>
- </xsl:variable>
- <xsl:variable name="startpos">
- <xsl:value-of select="number(count(../../../*[contains(@class,' topic/colspec ')][@colname=$startcolname]/preceding-sibling::*)+1)"/>
- </xsl:variable>
- <xsl:variable name="endpos">
- <xsl:value-of select="number(count(../../../*[contains(@class,' topic/colspec ')][@colname=$endcolname]/preceding-sibling::*)+1)"/>
- </xsl:variable>
- <xsl:value-of select="$endpos - $startpos + 1"/>
-</xsl:template>
-
-<!-- end of table section -->
-
-
-<!-- ===================================================================== -->
-
-<!-- =========== SimpleTable - SEMANTIC TABLE =========== -->
-
-<xsl:template match="*[contains(@class,' topic/simpletable ')]" name="topic.simpletable">
- <xsl:variable name="revtest">
- <xsl:if test="@rev and not($FILTERFILE='') and ($DRAFT='yes')">
- <xsl:call-template name="find-active-rev-flag">
[... 5801 lines stripped ...]