Das unten aufgeführte XSLT-Stylesheet wird aktiv,
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!--==================================================================
* (c) Heinz Werner Kramski / DLA Marbach
*=====================================================================
* $Source: H:\\projekte\\kessler\\XML\\dtd\\RCS/hgkdiary-tustep.xsl $
* $Id: hgkdiary-tustep.xsl 1.15 2001/07/13 08:22:40 kramski Exp kramski $
* Aufruf: per Script, siehe hgkdiary.mcr
* Parameter: keine
* Zweck: HGK-XML-Quelltexte fuer TUSTEPs Satzprogramm aufbereiten
* Umgebung: XML, MSXML 3, TUSTEP
* Siehe auch: hgkdiary.dtd, hgkdiary.mcr, hgkdiary-html.xsl
* Bemerkungen:
* Das Top-Level-Element <tustep> ist fuer den XSLT-Prozessor
* notwendig und muss in TUSTEP unterdrueckt werden.
*
* Der gesamte Inhalt wird als XML-PI ausgegeben, da sonst
* der XSLT-Prozessor Steuerzeichen wie "&:3" als ungueltige Namen
* bemaengelt. Die PI-Begrenzer muessen in TUSTEP unterdrueckt
* werden. (PI ist besser als ein Kommentar, da dieser u.U.
* keine doppelten "-" enthalten darf.)
*
* #, $, %, \, @, & als TUSTEP-Steuerzeichen muessen hier
* als ^#, ^$ etc. codiert und mit #um,...,modus=+1,code=utf8
* importiert werden.
*
* ToDo: - Segmente behandeln
*
*=====================================================================
* $Log: hgkdiary-tustep.xsl $
* Revision 1.15 2001/07/13 08:22:40 kramski
* Verbergen jetzt *wirklich* korrigiert (Reihenfolgeproblem!)
*
* Revision 1.14 2001/07/09 16:04:13 kramski
* Fehlerbehebung: geschachteltes Verbergen nun korrigiert.
*
* Revision 1.13 2001/05/14 10:24:29 kramski
* Syntaxfehler in der Beschreibung eines Syntaxfehlers korrigiert
*
* Revision 1.12 2001/05/14 09:25:15 kramski
* Dummy-PI statt Dummy-Kommentar, um Syntax-Probleme mit enthaltenen
* doppelten "-" zu vermeiden.
*
* Revision 1.11 2001/04/23 11:08:00 kramski
* Fehler wg. Fehlerbeschreibung beseitigt
*
* Revision 1.10 2001/04/23 10:31:01 kramski
* Kosmetik
*
* Revision 1.9 2001/04/20 15:35:56 kramski
* reg und reg.p behandelt
*
* Revision 1.8 2001/04/12 15:14:51 kramski
* Kleinere Optimierungen, vorlaeufiger Abschluss
*
* Revision 1.7 2001/04/12 14:35:46 kramski
* Umstellung auf #satz
*
* Revision 1.6 2001/04/11 08:35:44 kramski
* Vorlaeufiger Abschluss fuer #formatiere
*
* Revision 1.5 2001/04/10 13:32:54 kramski
* Zwischenstand, #formatiere prinzipiell ok
*
* Revision 1.4 2001/04/03 12:24:26 kramski
* TUSTEP-Steuerzeichen eingefuegt (erste Tests)
*
* Revision 1.3 2001/03/28 12:29:39 kramski
* Fehlerkorrektur Syntax
*
* Revision 1.2 2001/03/27 11:06:07 Administrator
* Hoechst vorlaeufige Version mit Pseudocodes, aber grundsaetzlich
* lauffaehig
*
* Revision 1.1 2001/03/27 10:54:18 Administrator
* Initial revision
*
*===================================================================-->
<xsl:output method="xml" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
<!-- TUSTEP-Steuerzeichen: -->
<xsl:variable name="BegJob"></xsl:variable>
<xsl:variable name="EndJob"></xsl:variable>
<xsl:variable name="BegComment">^&X </xsl:variable>
<xsl:variable name="EndComment">^&X{</xsl:variable>
<xsl:variable name="BegMarg">^@A </xsl:variable>
<xsl:variable name="EndMarg">^@{ </xsl:variable>
<!-- Fehlerhafte Stellen -->
<xsl:variable name="BegErr">^#4+</xsl:variable>
<xsl:variable name="EndErr">^#4-</xsl:variable>
<xsl:variable name="BegMonth">^$^$^$=^$^$^$</xsl:variable>
<xsl:variable name="EndMonth"></xsl:variable>
<xsl:variable name="BegMonthHead"></xsl:variable>
<xsl:variable name="EndMonthHead"></xsl:variable>
<xsl:variable name="BegEntry"></xsl:variable>
<xsl:variable name="EndEntry"></xsl:variable>
<xsl:variable name="BegEntryHead">^@= </xsl:variable>
<xsl:variable name="EndEntryHead">^@{</xsl:variable>
<xsl:variable name="BegDateLine">^&^& </xsl:variable>
<xsl:variable name="EndDateLine">^&^&{</xsl:variable>
<xsl:variable name="BegP">^$ </xsl:variable>
<xsl:variable name="EndP"></xsl:variable>
<xsl:variable name="BegNoteRem">^$^$ </xsl:variable>
<xsl:variable name="EndNoteRem">^$^${</xsl:variable>
<xsl:variable name="BegNoteCom">^@f+</xsl:variable>
<xsl:variable name="EndNoteCom">^@f-</xsl:variable>
<xsl:variable name="BegNoteRegP">^@f+</xsl:variable>
<xsl:variable name="EndNoteRegP">^@f-</xsl:variable>
<!-- vorlaeufig -->
<xsl:variable name="BegSeg">^[Seg:</xsl:variable>
<xsl:variable name="EndSeg">^]</xsl:variable>
<!-- vorlaeufig -->
<xsl:variable name="BegHi">^#/+</xsl:variable>
<xsl:variable name="EndHi">^#/-</xsl:variable>
<xsl:variable name="BegHiUl1">^#1+</xsl:variable>
<xsl:variable name="EndHiUl1">^#1-</xsl:variable>
<xsl:variable name="BegHiUl2">^#2+</xsl:variable>
<xsl:variable name="EndHiUl2">^#2-</xsl:variable>
<xsl:variable name="BegHiUl3">^#3+</xsl:variable>
<xsl:variable name="EndHiUl3">^#3-</xsl:variable>
<xsl:variable name="BegHiUl4">^#3+</xsl:variable>
<xsl:variable name="EndHiUl4">^#3-</xsl:variable>
<xsl:variable name="BegHiUl5">^#3+</xsl:variable>
<xsl:variable name="EndHiUl5">^#3-</xsl:variable>
<xsl:variable name="BegHiSup">^&!H+</xsl:variable>
<xsl:variable name="EndHiSup">^&!H.</xsl:variable>
<xsl:variable name="BegHiSub">^&!H-</xsl:variable>
<xsl:variable name="EndHiSub">^&!H.</xsl:variable>
<!-- vorlaeufig -->
<xsl:variable name="BegName">^#k+</xsl:variable>
<xsl:variable name="EndName">^#k-</xsl:variable>
<xsl:variable name="BegGap">[</xsl:variable>
<xsl:variable name="EndGap"> ]</xsl:variable>
<xsl:variable name="BegDel">^#0+</xsl:variable>
<xsl:variable name="EndDel">^#0-</xsl:variable>
<xsl:variable name="BegAdd">^#./</xsl:variable>
<xsl:variable name="EndAdd">^#./</xsl:variable>
<!-- Root-Template -->
<xsl:template match="/">
<!-- dieses Dummy-Top-Level-Element ist notwendig: -->
<tustep>
<!-- den Rest packen wir in eine Dummy-Proc.instruction, damit innerhalb
XML-obskure Konstruktionen moeglich sind (z.B. "&:3") -->
<xsl:processing-instruction name = "tustep">
<xsl:value-of select="$BegJob"/>
<xsl:value-of select="$BegComment"/>
Generiert durch $Id: hgkdiary-tustep.xsl 1.15 2001/07/13 08:22:40 kramski Exp kramski $.
In TUSTEP mit "#um,infile,outfile,modus=+1,code=utf8" einlesen.
<xsl:value-of select="$EndComment"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndJob"/>
</xsl:processing-instruction>
</tustep>
</xsl:template>
<!-- Default-Template: alles, was kein spezielles Template hat -->
<xsl:template match="*">
<!-- Name des unbehandelten Elements als Marginalie ausgeben, Inhalt im Text -->
<xsl:value-of select="$BegMarg"/>
<xsl:value-of select="$BegErr"/>
<xsl:value-of select="name(.)"/>!?
<xsl:value-of select="$EndErr"/>
<xsl:value-of select="$EndMarg"/>
<xsl:apply-templates/>
</xsl:template>
<!-- Echte Templates -->
<xsl:template match="TEI.2">
<xsl:apply-templates/>
</xsl:template>
<!-- TEI-Header -->
<xsl:template match="teiHeader">
<!-- Header wird vollstaendig unterdrueckt -->
</xsl:template>
<!-- Text etc. -->
<xsl:template match="text">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="body">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="div[@type='month']">
<xsl:value-of select="$BegMonth"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndMonth"/>
</xsl:template>
<xsl:template match="div[@type='month']/head">
<xsl:value-of select="$BegMonthHead"/><xsl:apply-templates/><xsl:value-of select="$EndMonthHead"/>
</xsl:template>
<xsl:template match="div[@type='entry']">
<xsl:value-of select="$BegEntry"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndEntry"/>
</xsl:template>
<xsl:template match="div[@type='entry']/head">
<xsl:value-of select="$BegEntryHead"/><xsl:apply-templates/><xsl:value-of select="$EndEntryHead"/>
</xsl:template>
<xsl:template match="opener">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="dateline">
<xsl:value-of select="$BegDateLine"/><xsl:apply-templates/><xsl:value-of select="$EndDateLine"/>
</xsl:template>
<xsl:template match="p">
<xsl:value-of select="$BegP"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndP"/>
</xsl:template>
<xsl:template match="gap">
<xsl:value-of select="$BegGap"/>
<xsl:value-of select="$EndGap"/>
</xsl:template>
<xsl:template match="del">
<xsl:value-of select="$BegDel"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndDel"/>
</xsl:template>
<xsl:template match="add">
<xsl:value-of select="$BegAdd"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndAdd"/>
</xsl:template>
<xsl:template match="note">
<xsl:choose>
<xsl:when test="@type[.='rem']">
<!-- Herausgeberkommentar als Block -->
<xsl:value-of disable-output-escaping="yes" select="$BegNoteRem"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndNoteRem"/>
</xsl:when>
<xsl:when test="@type[.='reg.p']">
<!-- Registerbemerkung, die gedruckt werden soll -->
<xsl:value-of select="$BegNoteRegP"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndNoteRegP"/>
</xsl:when>
<xsl:when test="@type[.='reg']">
<!-- Registerbemerkung, die nicht gedruckt werden soll -->
<xsl:value-of select="$BegComment"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndComment"/>
</xsl:when>
<xsl:otherwise>
<!-- alle anderen Kommentare als Fussnote -->
<xsl:value-of select="$BegNoteCom"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndNoteCom"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="seg">
<xsl:value-of select="$BegSeg"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndSeg"/>
</xsl:template>
<xsl:template match="hi">
<xsl:choose>
<xsl:when test="@rend[.='ul.1']">
<xsl:value-of select="$BegHiUl1"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndHiUl1"/>
</xsl:when>
<xsl:when test="@rend[.='ul.2']">
<xsl:value-of select="$BegHiUl2"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndHiUl2"/>
</xsl:when>
<xsl:when test="@rend[.='ul.3']">
<xsl:value-of select="$BegHiUl3"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndHiUl3"/>
</xsl:when>
<xsl:when test="@rend[.='ul.4']">
<xsl:value-of select="$BegHiUl4"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndHiUl4"/>
</xsl:when>
<xsl:when test="@rend[.='ul.5']">
<xsl:value-of select="$BegHiUl5"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndHiUl5"/>
</xsl:when>
<xsl:when test="@rend[.='sup']">
<xsl:value-of select="$BegHiSup"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndHiSup"/>
</xsl:when>
<xsl:when test="@rend[.='sub']">
<xsl:value-of select="$BegHiSub"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndHiSub"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$BegHi"/>
<xsl:apply-templates/>
<xsl:value-of select="$EndHi"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="figure">
<xsl:value-of select="$EndP"/>
<xsl:value-of select="$BegP"/>
[Abbildung
<xsl:if test="@n">
<xsl:value-of select="@n"/>
</xsl:if>
<xsl:if test="@entity">
<!-- vorlaeufig -->
(../../images/preview/<xsl:value-of select="@entity"/>.jpg)]
</xsl:if>
<xsl:value-of select="$EndP"/>
<xsl:value-of select="$BegP"/>
</xsl:template>
<!-- Namen -->
<xsl:template match="rs[@type] | name[@type]">
<xsl:value-of select="$BegName"/><xsl:apply-templates/><xsl:value-of select="$EndName"/>
<!-- Key (sicherheitshalber) als verborgenen Registereintrag ausgeben: -->
<xsl:if test="@key">
<xsl:value-of select="$BegComment"/>((<xsl:value-of select="@key"/>))<xsl:value-of select="$EndComment"/>
</xsl:if>
</xsl:template>
<!-- Namen in verborgenem Text (key nicht nochmals verbergen) -->
<!-- Die Reihenfolge ist wichtig: dies nicht vor 'Namen' stellen! -->
<xsl:template match="note[@type='reg']//rs[@type] | note[@type='reg']//name[@type]">
<xsl:value-of select="$BegName"/><xsl:apply-templates/><xsl:value-of select="$EndName"/>
<!-- Key (sicherheitshalber) als Registereintrag ausgeben: -->
<xsl:if test="@key">
((<xsl:value-of select="@key"/>))
</xsl:if>
</xsl:template>
<!-- einfacher Text ohne Tags -->
<xsl:template match="text()">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>