<?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:topics="http://www.vishia.de/2006/Topics" xmlns:pre="http://www.vishia.de/2006/XhtmlPre" xmlns:xhtml="http://www.w3.org/1999/xhtml" > <xsl:output method="html" encoding="iso-8859-1"/> <xs:annotation><xs:documentation type="versions"> This file is included in all xsl files which proceeded a xml file based on xschema texttopic.xsd. Date Who Description of changing 2005-12-14 hartmutS Initial-Revision 2005-12-16 hartmutS chapterlevel as paramter for topic etc removed, not necessary because the realisation of the chapter-nesting is done by PreHtml.xsl respective PreWord.xsl. 2006-02-23 hartmutS changing of using of style. 2006-02-25 hartmutS consequently selecting from child elements, no <apply-templates />, always <apply-templates select="..."/> </xs:documentation></xs:annotation> <!-- ................................................................................................. --> <!-- template to transform from topics or other xhtml-like xml-files into a PreHtml-Format ........... --> <!-- This script may be included in a user xsl-script. --> <!-- The input format may be matched to the TextTopic.xsd-schema, but may have some other things appropriately to the wrapping user script. --> <!-- The outputted format is matched to the PreHtml.xsd-schema --> <!-- xsl:template match="topics:topic" --> <xsl:template name="TextTopic"> <xsl:param name="withTitle" select="'-'" /> <xsl:param name="recursive" select="'-'" /> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'stdTable'" /> <xsl:param name="topicLabel">LABEL</xsl:param> <xsl:param name="topicIdent">/.../</xsl:param> <xsl:variable name="topicLabelNew"><xsl:value-of select='$topicLabel'/>.<xsl:value-of select="@ident"/></xsl:variable> <xsl:variable name="topicIdentnew"><xsl:value-of select="$topicIdent"/>/<xsl:value-of select="@ident"/></xsl:variable> <xsl:choose> <!-- xsl:when test="count(@title)>0 and string-length(@title)>0" --> <xsl:when test="$withTitle='true'"> <!-- produce only a nested chapter if an attribute title is present --> <pre:chapter> <!-- anchor for hyperlink navigation: --> <xsl:if test="count(@label)>0"> <xsl:variable name="topicLabelLocal">Topic:<xsl:value-of select='@label'/></xsl:variable> <anchor label="{$topicLabelLocal}"/> </xsl:if> <xsl:if test="count(./@label)=0"> <anchor label="{$topicLabelNew}"/> </xsl:if> <pre:title><xsl:value-of select="@title"/></pre:title> <xsl:if test="count(@defineUnit)>0"><!-- topic with an attribute define is a define unit with references. --> <content> <!-- topic is a design element --> <table breakPage="noBreakAfter" border="1" width="100%"> <tr><td><xsl:value-of select="@defineUnit"/></td></tr> <xsl:for-each select="tag[@name='ReqRef']"> <xsl:variable name="reqAnchor">#<xsl:value-of select="@value"/></xsl:variable> <xsl:variable name="REQ"><xsl:value-of select="@value"/></xsl:variable> <xsl:variable name="reqElement" select="/root/Requirements/Requirement[@Ident=$REQ] | /root/SwComponententSpec/NewRequirements/Requirement[@Ident=$REQ]"/> <tr><td> <a href="{$reqAnchor}"><xsl:value-of select="$REQ"/> : <xsl:value-of select="$reqElement/Titel"/></a> <xsl:if test="count($reqElement/phase)>0"><i> (<xsl:value-of select="$reqElement/phase"/>)</i></xsl:if> </td></tr> </xsl:for-each> </table> </content> </xsl:if> <xsl:call-template name="topicIntern" ><!-- does a recursion in sup topics --> <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> <xsl:with-param name="recursive" select="$recursive" /> <xsl:with-param name="topicLabel"><xsl:value-of select='$topicLabelNew'/></xsl:with-param> <xsl:with-param name="topicIdent"><xsl:value-of select='$topicIdentnew'/></xsl:with-param> </xsl:call-template> </pre:chapter> </xsl:when> <xsl:otherwise> <!-- no @title, no own pre:chapter --> <!-- anchor for hyperlink navigation: --> <xsl:if test="count(@label)>0"> <xsl:variable name="topicLabelLocal">Topic:<xsl:value-of select='@label'/></xsl:variable> <anchor label="{$topicLabelLocal}"/> </xsl:if> <xsl:if test="count(./@label)=0"> <anchor label="{$topicLabelNew}"/> </xsl:if> <xsl:call-template name="topicIntern" ><!-- does a recursion in sup topics --> <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> <xsl:with-param name="recursive" select="$recursive" /> <xsl:with-param name="topicLabel"><xsl:value-of select='$topicLabelNew'/></xsl:with-param> <xsl:with-param name="topicIdent"><xsl:value-of select='$topicIdentnew'/></xsl:with-param> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="topicIntern"> <!-- actual element is either xhtml:body or topics:topic --> <xsl:param name="recursive" select="'-'" /> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'-'" /> <xsl:param name="topicLabel">NO_REFLABEL_ONCALL</xsl:param> <xsl:param name="topicIdent">/i/</xsl:param> <xsl:if test='$testOutput>2'> <testOutput level="3">[ <xsl:if test="count(./@label)>0">Label:<xsl:value-of select='@label'/> Path:</xsl:if> <xsl:value-of select='$topicLabel' />] </testOutput> </xsl:if> <xsl:if test='$testOutput>1'> <testOutput level="2">Topic:[<xsl:value-of select="$topicIdent" />]</testOutput> </xsl:if> <xsl:for-each select="xhtml:body"><!-- topics:topic contains xhtml:body or topics:topic. --> <xsl:call-template name="topicContent"><!-- may be specified by user --> <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> <xsl:with-param name="topicLabel"><xsl:value-of select='$topicLabel'/></xsl:with-param> <xsl:with-param name="topicIdent"><xsl:value-of select='$topicIdent'/></xsl:with-param> </xsl:call-template> </xsl:for-each> <xsl:if test="$recursive='true'" > <!-- sub pre:chapter or additinal content after the content at the own level --> <xsl:for-each select="topics:topic" > <xsl:call-template name="TextTopic"> <xsl:with-param name="recursive" select="$recursive" /> <xsl:with-param name="withTitle" select="'true'" /> <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> <xsl:with-param name="topicLabel"><xsl:value-of select='$topicLabel'/></xsl:with-param> <xsl:with-param name="topicIdent"><xsl:value-of select='$topicIdent'/></xsl:with-param> </xsl:call-template> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template name="assembleTopicAnchor"> <!-- assembles the ident of all topics to root level in Form ".parent.child.child" therefore first a recursive call to parent will be done, after them the own ident will be added. --> <xsl:if test="local-name(..)='topic'"> <xsl:for-each select=".."><xsl:call-template name="assembleTopicAnchor" /></xsl:for-each> </xsl:if> <xsl:text>.</xsl:text><xsl:value-of select="@ident" /> </xsl:template> <xsl:template name="topicContent"> <!-- this template method may be overloaded by a user specification if the user will shown its tag content in a special form. At example it is possible to show at first special tags via select="tag[@name='NAME']" and to show other tags inside text, via select="text|tag[@name='OTHERNAME']" In the standard specification all text and tag parts are converted in its common order. --> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'-'" /> <xsl:param name="topicLabel">NO_REFLABEL_ONCALL</xsl:param> <xsl:param name="topicIdent">/c/</xsl:param> <!-- xsl:if test="boolean(xhtml:body)>0" --> <xsl:if test="local-name()='body'"> <xsl:variable name="topicId"><xsl:text>Topic</xsl:text><xsl:call-template name="assembleTopicAnchor" /></xsl:variable> <!-- xsl:apply-templates select="xhtml:body" --> <xsl:apply-templates select="." > <xsl:with-param name="id" select="$topicId" /> <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> <xsl:with-param name="topicLabel"><xsl:value-of select='$topicLabel'/></xsl:with-param> <xsl:with-param name="topicIdent"><xsl:value-of select='$topicIdent'/></xsl:with-param> </xsl:apply-templates> </xsl:if> </xsl:template> <xsl:template match="tag"> <!-- show a tag in topics in a universal form --> <!-- p><u>Tag:<xsl:value-of select="@name"/></u>=<xsl:value-of select="@value"/></p --> </xsl:template> <xsl:template match="xhtml:body"> <xsl:param name="id" select="'-'" /> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'-'" /> <xsl:param name="topicLabel">NO_REFLABEL_ONCALL</xsl:param> <xsl:param name="topicIdent">/b/</xsl:param> <xhtml:body> <xsl:if test="$id!='-'"><xsl:attribute name="id"><xsl:value-of select="$id" /></xsl:attribute></xsl:if> <xsl:if test="$divStyle!='-'"><xsl:attribute name="class"><xsl:value-of select="$divStyle" /></xsl:attribute></xsl:if> <xsl:if test="name(..)='topics:topic'"> <xhtml:p class="debug"><xsl:text>Topic:</xsl:text><xsl:call-template name="assembleTopicAnchor" /></xhtml:p> </xsl:if> <xhtml:p class="debug"> <!-- xsl:text>Topic:</xsl:text><xsl:value-of select="$topicIdent"/ --> <!-- xsl:if test="not($paraStyle_li='-')"><xsl:text>paraStyle_li="</xsl:text><xsl:value-of select="$paraStyle_li"/><xsl:text>"; </xsl:text></xsl:if --> <!-- xsl:if test="not($listStyle='-')"> <xsl:text>listStyle="</xsl:text><xsl:value-of select="$listStyle"/><xsl:text>"; </xsl:text></xsl:if --> <xsl:if test="$divStyle!='-'"><xsl:text> divStyle=</xsl:text><xsl:value-of select="$divStyle"/></xsl:if> <xsl:if test="$pStyle!='-'"><xsl:text> pStyle=</xsl:text><xsl:value-of select="$pStyle"/></xsl:if> <xsl:if test="$ulStyle!='-'"><xsl:text> ulStyle=</xsl:text><xsl:value-of select="$ulStyle"/></xsl:if> <xsl:if test="$olStyle!='-'"><xsl:text> olStyle=</xsl:text><xsl:value-of select="$olStyle"/></xsl:if> <xsl:if test="$dlStyle!='-'"><xsl:text> dlStyle=</xsl:text><xsl:value-of select="$dlStyle"/></xsl:if> <xsl:if test="$tableStyle!='-'"><xsl:text> tableStyle=</xsl:text><xsl:value-of select="$tableStyle"/></xsl:if> </xhtml:p> <xsl:apply-templates > <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> <xsl:with-param name="topicLabel"><xsl:value-of select='$topicLabel'/></xsl:with-param> <xsl:with-param name="topicIdent"><xsl:value-of select='$topicIdent'/></xsl:with-param> </xsl:apply-templates> </xhtml:body> </xsl:template> <!-- common templates for current text *********************************************** --> <xsl:template match="docuLink"><xsl:copy-of select="." /></xsl:template> <xsl:template match="picture"> <img src="{@file}"> <xsl:if test="count(@height)>0"><xsl:attribute name="height"><xsl:value-of select="@height"/></xsl:attribute></xsl:if> <xsl:if test="count(@width)>0"><xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute></xsl:if> <xsl:if test="count(@align)>0"><xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute></xsl:if> <xsl:if test="count(@title)>0"><xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attribute></xsl:if> <xsl:if test="following-sibling::*[1]/@name='picture'"><xsl:attribute name="title"><xsl:value-of select="following-sibling::*[1]/@value"/></xsl:attribute></xsl:if> </img> </xsl:template> <xsl:template match="xhtml:img"> <xhtml:img src="{@src}"> <xsl:if test="count(@height)>0"><xsl:attribute name="height"><xsl:value-of select="@height"/></xsl:attribute></xsl:if> <xsl:if test="count(@width)>0"><xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute></xsl:if> <xsl:if test="count(@align)>0"><xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute></xsl:if> <xsl:if test="count(@title)>0"><xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attribute></xsl:if> <xsl:if test="following-sibling::*[1]/@name='picture'"><xsl:attribute name="title"><xsl:value-of select="following-sibling::*[1]/@value"/></xsl:attribute></xsl:if> </xhtml:img> </xsl:template> <xsl:template match="textfile"> <table border="0"><tr><td bgcolor="#e0e0e0"> <xsl:copy-of select="." /> </td></tr></table> </xsl:template> <!-- Converts an input xhtml:p to xhtml:p for output. The content is copied, but the class for style is procesed: * If a style is given in input (@class), it is used. * Else If a pStyle is given from calling level, it is used. * default: std is set. --> <xsl:template match="xhtml:p"> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="paraStyle">std</xsl:param> <xsl:variable name="style"> <xsl:choose><xsl:when test="count(@class)>0 and @class!='-'"><xsl:value-of select="@class"/></xsl:when> <xsl:otherwise><xsl:value-of select="$pStyle"/></xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose><xsl:when test="@class='inset'"> <xsl:variable name="label" select="@title" /> <xhtml:p>(p-INSET:<xsl:value-of select="$label" />)</xhtml:p> <!-- The value of the chapter with the title like the inset label is used as content of the inset. --> <xsl:if test="not(/root/pre:Chapters[@title='inset']/pre:chapter[pre:title=$label])"> <xhtml:p class="error-inset">Error inset not found: <xsl:value-of select="$label" />.</xhtml:p> </xsl:if> <xsl:copy-of select="/root/pre:Chapters[@title='inset']/pre:chapter[pre:title=$label]/xhtml:body/*" /> </xsl:when><xsl:otherwise> <xhtml:p class="{$style}"><xsl:apply-templates select="text()|xhtml:b|xhtml:i|xhtml:stroke|xhtml:em|xhtml:u|xhtml:br|xhtml:code|xhtml:span|xhtml:font|xhtml:a|x tml:img" /></xhtml:p> </xsl:otherwise></xsl:choose> </xsl:template> <!-- ********************************************************************************************* --> <!-- ********************************************************************************************* --> <!-- *********** Standard-conversion of a definition list ********************** --> <xsl:template match="xhtml:dl"> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'-'" /> <xsl:param name="style_dl">standard_dl</xsl:param> <xhtml:dl class="{$dlStyle}"> <xsl:apply-templates select="xhtml:dt|xhtml:dd" > <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> </xsl:apply-templates> </xhtml:dl> </xsl:template> <xsl:template match="xhtml:dt"> <xsl:param name="dlStyle">std_dl</xsl:param> <xsl:variable name="style"> <xsl:choose><xsl:when test="count(@class)>0"><xsl:value-of select="@class"/></xsl:when> <xsl:otherwise><xsl:value-of select="$dlStyle"/></xsl:otherwise> </xsl:choose> </xsl:variable> <xhtml:dt class="{$style}"> <xsl:apply-templates select="text()|xhtml:b|xhtml:i|xhtml:stroke|xhtml:em|xhtml:u|xhtml:br|xhtml:code|xhtml:span|xhtml:font|xhtml:a" /> </xhtml:dt> </xsl:template> <xsl:template match="xhtml:dd"> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'-'" /> <xhtml:dd class="{$dlStyle}{'_dd'}"> <xsl:apply-templates> <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> </xsl:apply-templates> </xhtml:dd> </xsl:template> <xsl:template match="xhtml:br"> <br/> </xsl:template> <xsl:template match="xhtml:i"><xhtml:i><xsl:apply-templates /></xhtml:i></xsl:template> <xsl:template match="xhtml:u"><xhtml:u><xsl:apply-templates /></xhtml:u></xsl:template> <xsl:template match="xhtml:b"><xhtml:b><xsl:apply-templates /></xhtml:b></xsl:template> <xsl:template match="xhtml:stroke"><xhtml:stroke><xsl:apply-templates /></xhtml:stroke></xsl:template> <xsl:template match="xhtml:em"><xhtml:em><xsl:apply-templates /></xhtml:em></xsl:template> <xsl:template match="xhtml:code"><xhtml:code><xsl:apply-templates /></xhtml:code></xsl:template> <xsl:template match="xhtml:xxpre"> <xhtml:table border="0"><xhtml:tr><xhtml:td bgcolor="#FFFFa0"> <xsl:copy-of select="." /> </xhtml:td></xhtml:tr></xhtml:table> </xsl:template> <xsl:template match="xhtml:pre"> <xsl:copy-of select="." /> </xsl:template> <xsl:template match="xhtml:span"> <xsl:choose><xsl:when test="@class='xxxinset'"> <xsl:variable name="insetTopic" select="/root/GenCtrl/document/inset/topic/@select" /> <xhtml:u>(INSET:<xsl:value-of select="$insetTopic" /> <xsl:for-each select="/root/Topics"> <xsl:call-template name="selectInset"> <xsl:with-param name="select" select="$insetTopic" /> </xsl:call-template> </xsl:for-each> </xhtml:u> </xsl:when><xsl:when test="@class='inset'"> <xsl:variable name="xxxinsetTopic" select="/root/GenCtrl/document/inset/topic/@select" /> <xsl:variable name="label" select="@title" /> <xhtml:u>(INSET:<xsl:value-of select="$label" />)</xhtml:u> <!-- The value of the chapter with the title like the inset label is used as content of the inset. --> <xsl:copy-of select="/root/pre:Chapters[@title='inset']/*" /> <xhtml:u>xxxxx</xhtml:u> <xsl:copy-of select="/root/pre:Chapters[@title='inset']/pre:chapter/*" /> <xhtml:u>xxxxx1</xhtml:u> <xsl:copy-of select="/root/pre:Chapters[@title='inset']/pre:chapter[pre:title=$label]/*" /> <xhtml:u>xxxxx2</xhtml:u> <xsl:copy-of select="/root/pre:Chapters[@title='inset']/pre:chapter[pre:title=$label]/xhtml:body/*" /> <xhtml:u>xxxxx3</xhtml:u> <xsl:value-of select="/root/pre:Chapters[@title='inset']/pre:chapter[pre:title=$label]/xhtml:body/xhtml:p" /> </xsl:when><xsl:otherwise> <xhtml:span class="{@class}"> <xsl:if test="@id"><xsl:attribute name="id"><xsl:value-of select="@id" /></xsl:attribute></xsl:if> <xsl:apply-templates /> </xhtml:span> </xsl:otherwise></xsl:choose> </xsl:template> <xsl:template name="selectInset"> <xsl:param name="select" /> <xsl:variable name="select1" select="substring-before($select,'/')" /> <xsl:value-of select="$select1" /><xsl:text>:</xsl:text> <xsl:choose><xsl:when test="string-length($select1)>0"> <xsl:for-each select="topics:topic[@ident=$select1]"> <xsl:call-template name="selectInset"> <xsl:with-param name="select" select="substring-after($select,'/')" /> </xsl:call-template> </xsl:for-each> </xsl:when><xsl:otherwise> <xsl:for-each select="topics:topic[@ident=$select]/xhtml:body/xhtml:p"> <xsl:apply-templates select="text()|*" /> </xsl:for-each> </xsl:otherwise></xsl:choose> </xsl:template> <xsl:template match="xhtml:ul"> <xsl:param name="divStyle" select="'std'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="ulStyle" select="'std'" /> <xsl:param name="olStyle" select="'std'" /> <xsl:param name="dlStyle" select="'std'" /> <xsl:param name="tableStyle" select="'stdTable'" /> <xsl:variable name="style"> <xsl:choose><xsl:when test="$ulStyle!='-'"><xsl:value-of select="$ulStyle"/></xsl:when> <xsl:when test="count(@class)>0 and @class!='-'"><xsl:value-of select="@class"/></xsl:when> <xsl:otherwise>std</xsl:otherwise> </xsl:choose> </xsl:variable> <xhtml:ul class="{$style}"> <!-- xsl:apply-templates select="li" ><xsl:with-param name="listStyle">listIntern</xsl:with-param></xsl:apply-templates --> <xsl:apply-templates select="xhtml:li" > <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> </xsl:apply-templates> </xhtml:ul> </xsl:template> <xsl:template match="xhtml:li"> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'-'" /> <xhtml:li> <xsl:if test="string-length(normalize-space(text()))>0"> <!-- if the li contents direct formated or non formated text, a p-tag will set arround. --> <p class="{$pStyle}"><!-- paragraph in list with paraStyle_li! --> <xsl:apply-templates select="text()|xhtml:b|xhtml:i|xhtml:stroke|xhtml:em|xhtml:u|xhtml:br|xhtml:code|xhtml:font|xhtml:a"> </xsl:apply-templates> </p> </xsl:if> <xsl:apply-templates select="xhtml:p|xhtml:ul|xhtml:ol|xhtml:dl|xhtml:table|xhtml:img"> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> </xsl:apply-templates> </xhtml:li> </xsl:template> <!-- ********************************************************************************************* --> <!-- ********************************************************************************************* --> <!-- *********** Standard-Konvertierung einer table mit tabhead und tabline ********************** --> <xsl:template match="xhtml:table"> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="pStyle_th" select="'std_th'" /> <xsl:param name="pStyle_td" select="'std_td'" /> <xsl:param name="pStyle_tdli" select="'std_tdli'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'-'" /> <xsl:param name="paraStyle_tdli">std_litd</xsl:param> <xsl:param name="paraStyle_td">std_td</xsl:param> <xsl:param name="paraStyle_th">std_th</xsl:param> <xsl:param name="listStyle">listStandard</xsl:param> <xsl:param name="cellHeadStyle">tableHeadStanard</xsl:param> <xsl:param name="cellStyle">tableCellStandard</xsl:param> <xsl:if test="count(@title)>0"> <!-- p xml:space="preserve" --><p><b>Tabelle:</b> <xsl:value-of select="@title"/></p> </xsl:if> <xsl:variable name="style"> <xsl:choose><xsl:when test="$tableStyle!='-'"><xsl:value-of select="$tableStyle"/></xsl:when> <xsl:when test="count(@class)>0 and @class!='-'"><xsl:value-of select="@class"/></xsl:when> <xsl:otherwise>tabStandard</xsl:otherwise> </xsl:choose> </xsl:variable> <xhtml:table class="{$style}"> <xsl:apply-templates select="xhtml:tr" > <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="pStyle_td" select="$pStyle_td" /> <xsl:with-param name="pStyle_th" select="$pStyle_th" /> <xsl:with-param name="pStyle_tdli" select="$pStyle_tdli" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> <xsl:with-param name="paraStyle" select="$paraStyle_td"/><!-- paragraph in table with paraStyle_td! --> <xsl:with-param name="listStyle" select="$listStyle"/> <xsl:with-param name="cellHeadStyle" select="$cellHeadStyle"/> <xsl:with-param name="cellStyle" select="$cellStyle"/> </xsl:apply-templates> </xhtml:table> </xsl:template> <xsl:template match="xhtml:tr"> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="pStyle_th" select="'std_th'" /> <xsl:param name="pStyle_td" select="'std_td'" /> <xsl:param name="pStyle_tdli" select="'std_tdli'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'-'" /> <xsl:param name="paraStyle_tdli">std_litd</xsl:param> <xsl:param name="paraStyle_td">std_td</xsl:param> <xsl:param name="paraStyle_th">std_th</xsl:param> <xsl:param name="listStyle">listStandard</xsl:param> <xsl:param name="cellHeadStyle">tableHeadStanard</xsl:param> <xsl:param name="cellStyle">tableCellStandard</xsl:param> <xhtml:tr> <xsl:apply-templates select="xhtml:th|xhtml:td" > <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle" /> <xsl:with-param name="pStyle_td" select="$pStyle_td" /> <xsl:with-param name="pStyle_th" select="$pStyle_th" /> <xsl:with-param name="pStyle_tdli" select="$pStyle_tdli" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> <xsl:with-param name="paraStyle_th" select="$paraStyle_th"/> <xsl:with-param name="paraStyle_td" select="$paraStyle_td"/> <xsl:with-param name="paraStyle_tdli" select="$paraStyle_tdli"/> <xsl:with-param name="listStyle" select="$listStyle"/> <xsl:with-param name="cellHeadStyle" select="$cellHeadStyle"/> <xsl:with-param name="cellStyle" select="$cellStyle"/> </xsl:apply-templates> </xhtml:tr> </xsl:template> <xsl:template match="xhtml:th"> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="pStyle_th" select="'std_th'" /> <xsl:param name="pStyle_td" select="'std_td'" /> <xsl:param name="pStyle_tdli" select="'std_td'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'-'" /> <xsl:param name="paraStyle_tdli">std_td</xsl:param> <xsl:param name="paraStyle_td">std_td</xsl:param> <xsl:param name="paraStyle_th">std_th</xsl:param> <xsl:param name="listStyle">listStandard</xsl:param> <xsl:param name="cellHeadStyle">tableHeadStanard</xsl:param> <xsl:param name="cellStyle">tableCellStandard</xsl:param> <xhtml:td class="{$tableStyle}{'_td'}"> <xsl:apply-templates> <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle_td" /><!-- the normal para style is now pStyle_td, first table level. --> <xsl:with-param name="pStyle_td" select="$pStyle_td" /> <xsl:with-param name="pStyle_th" select="$pStyle_th" /> <xsl:with-param name="pStyle_tdli" select="$pStyle_tdli" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> <xsl:with-param name="paraStyle" select="$paraStyle_th"/><!-- paragraph in table head with paraStyle_th! --> <xsl:with-param name="paraStyle_th" select="$paraStyle_th"/> <xsl:with-param name="paraStyle_td" select="$paraStyle_td"/> <xsl:with-param name="paraStyle_tdli" select="$paraStyle_tdli"/> <xsl:with-param name="listStyle" select="$listStyle"/> <xsl:with-param name="cellHeadStyle" select="$cellHeadStyle"/> <xsl:with-param name="cellStyle" select="$cellStyle"/> </xsl:apply-templates> </xhtml:td> </xsl:template> <xsl:template match="xhtml:td"> <xsl:param name="divStyle" select="'-'" /> <xsl:param name="pStyle" select="'std'" /> <xsl:param name="pStyle_td" select="'std_td'" /> <xsl:param name="pStyle_th" select="'std_th'" /> <xsl:param name="pStyle_tdli" select="'std_th'" /> <xsl:param name="ulStyle" select="'-'" /> <xsl:param name="olStyle" select="'-'" /> <xsl:param name="dlStyle" select="'-'" /> <xsl:param name="tableStyle" select="'-'" /> <xsl:param name="paraStyle_tdli">std_td</xsl:param> <xsl:param name="paraStyle_td">std_td</xsl:param> <xsl:param name="paraStyle_th">std_th</xsl:param> <xsl:param name="listStyle">listStandard</xsl:param> <xsl:param name="cellHeadStyle">tableHeadStanard</xsl:param> <xsl:param name="cellStyle">tableCellStandard</xsl:param> <xhtml:td class="{$tableStyle}{'_td'}"> <xsl:apply-templates> <xsl:with-param name="divStyle" select="$divStyle" /> <xsl:with-param name="pStyle" select="$pStyle_td" /><!-- the normal para style is now pStyle_td, first table level. --> <xsl:with-param name="pStyle_td" select="$pStyle_td" /> <xsl:with-param name="pStyle_th" select="$pStyle_th" /> <xsl:with-param name="pStyle_tdli" select="$pStyle_tdli" /> <xsl:with-param name="ulStyle" select="$ulStyle" /> <xsl:with-param name="olStyle" select="$olStyle" /> <xsl:with-param name="dlStyle" select="$dlStyle" /> <xsl:with-param name="tableStyle" select="$tableStyle" /> <xsl:with-param name="paraStyle" select="$paraStyle_td"/><!-- paragraph in table cell with paraStyle_td! --> <xsl:with-param name="paraStyle_th" select="$paraStyle_th"/> <xsl:with-param name="paraStyle_td" select="$paraStyle_td"/> <xsl:with-param name="paraStyle_tdli" select="$paraStyle_tdli"/> <xsl:with-param name="listStyle" select="$listStyle"/> <xsl:with-param name="cellHeadStyle" select="$cellHeadStyle"/> <xsl:with-param name="cellStyle" select="$cellStyle"/> </xsl:apply-templates> </xhtml:td> </xsl:template> <!-- ********************************************************************************************* --> <!-- ********************************************************************************************* --> <!-- Alles für Querverweise und Literaturangaben :diesen Kommentar stehenlassen für Dokugenerierung! --> <xsl:template match="a"><!-- html-like anchor --> <xsl:message>invalid element <a> </xsl:message> <xsl:if test="count(@href)>0 and starts-with(@href,'#')"> <xsl:variable name="label"><xsl:value-of select="substring(@href,2)"/></xsl:variable><!-- label without the # ! --> <internref label="{$label}"><xsl:apply-templates/></internref> </xsl:if> <xsl:if test="count(@href)>0 and not(starts-with(@href,'#'))"> <fileref name="{@href}"><xsl:apply-templates/></fileref> </xsl:if> <xsl:if test="count(@name)>0"> <anchor label="{@name}"/> </xsl:if> </xsl:template> <xsl:template match="xhtml:xxxa"> <xsl:if test="count(@href)>0 and starts-with(@href,'#')"> <xsl:variable name="label"><xsl:value-of select="substring(@href,2)"/></xsl:variable><!-- label without the # ! --> <internref label="{$label}"><xsl:apply-templates/></internref> </xsl:if> <xsl:if test="count(@href)>0 and not(starts-with(@href,'#'))"> <fileref name="{@href}"><xsl:apply-templates/></fileref> </xsl:if> <xsl:if test="count(@name)>0"> <anchor label="{@name}"/> </xsl:if> </xsl:template> <xsl:template match="xhtml:a"> <xhtml:a href="{@href}"><xsl:apply-templates/></xhtml:a> </xsl:template> <xsl:template match="fileref"> <!-- a fileref is a hyperlink to a external file. --> <fileref name="{@name}"><xsl:apply-templates/></fileref> </xsl:template> <xsl:template match="internref"> <!-- a internref is a hyperlink to a label. --> <internref label="{@label}"><xsl:apply-templates/></internref> </xsl:template> </xsl:stylesheet>