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>