Textblöcke

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, Alinierung, Einzug, fett, kursiv u. a. festlegen.

Auszug aus der DTD:

<!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">

Stylesheet:

<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 >>
Tipp der data2type-Redaktion:
Zum Thema XSL-FO bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © dpunkt.verlag GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSL-FO in der Praxis" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

dpunkt.verlag GmbH, Ringstraße 19B, 69115 Heidelberg, fon 06221-14830, fax 06221-148399, hallo(at)dpunkt.de