Es werden Textblöcke erstellt, deren Eigenschaften von der Instanz gesteuert werden.
Es wird ein Template zur Erstellung von Textblöcken demonstriert. Diese Blöcke können von der Instanz mit Hilfe von Attributen formatiert werden. In diesem Beispiel lassen sich so die Eigenschaften wie Schriftgröße, Alliniierung, Einzug, fett, kursiv u. a. festlegen.
<!ELEMENT TB (#PCDATA | ...)* ><!ATTLIST TB Groesse (normal | gross | klein) "normal" Schrift (normal | fett | kursiv) "normal" Aliniierung (links | rechts | mittig | block) "block" EinzugLinks (ohne | mit | Zeile1 | haengend) "ohne">
<xsl:template match="TB"> <fo:block text-align="justify" hyphenate="true" xml:lang="de" ❶ margin-left="10mm"> <xsl:choose> <xsl:when test="@Groesse='gross'"> ❷ <xsl:attribute name="font-size">14pt</xsl:attribute> ❸ </xsl:when> <xsl:when test="@Groesse='klein'"> <xsl:attribute name="font-size">10pt</xsl:attribute> </xsl:when> <xsl:otherwise> ❹ <xsl:attribute name="font-size">12pt</xsl:attribute> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="@Schrift='fett'"> ❺ <xsl:attribute name="font-weight">bold</xsl:attribute> </xsl:when> <xsl:when test="@Schrift='kursiv'"> <xsl:attribute name="font-style">italic</xsl:attribute> </xsl:when> <xsl:otherwise/> ❻ </xsl:choose> <xsl:choose> <xsl:when test="@Aliniierung='links'"> <xsl:attribute name="text-align">left</xsl:attribute> </xsl:when> <xsl:when test="@Aliniierung='rechts'"> <xsl:attribute name="text-align">right</xsl:attribute> </xsl:when> <xsl:when test="@Aliniierung='mittig'"> <xsl:attribute name="text-align">center</xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:attribute name="text-align">justify</xsl:attribute> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="@EinzugLinks='mit'"> <xsl:attribute name="margin-left">15mm</xsl:attribute> </xsl:when> <xsl:when test="@EinzugLinks='Zeile1'"> <xsl:attribute name="text-indent">10mm</xsl:attribute> </xsl:when> <xsl:when test="@EinzugLinks='haengend'"> <xsl:attribute name="text-indent">-10mm</xsl:attribute> </xsl:when> <xsl:otherwise/> </xsl:choose> <xsl:apply-templates/> </fo:block> </xsl:template>
❶ Für den Block werden allgemeingültige Attribute spezifiziert: Blocksatz, deutsche Silbentrennung, linker Einzug.
❷ Die weitergehendere Spezifikation wird von den Attributen und ihren Werten abhängig gemacht. Das Ganze wird in das XSLT-Konzept <xsl:choose> eingekleidet.
❸ Unter der Bedingung für die Schriftgröße gross soll die Schriftgröße 14pt gesetzt werden.
❹ Für die Bedingung Schriftgröße normal oder wenn in der Instanz das Attribut nicht gesetzt ist (weil Vorgabewert) gilt die Schriftgröße 12pt.
❺ Es gilt das für die Schriftgröße Gesagte entsprechend.
❻ Es gilt das für den Vorgabewert der Schriftgröße Gesagte entsprechend. Hier wird allerdings kein Attribut spezifiziert. Deshalb bleibt <xsl:otherwise> leer.
| << zurück |
vor >> |