Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


Auslagerung in separate Templates

Völlig dasselbe Ergebnis erhalten wir, wenn wir statt der Einzelaufrufe von z.B.

<fo:table-cell>
 <fo:block>
  <xsl:value-of select="../vorname" />
 </fo:block>
</fo:table-cell>

diese durchweg identischen Aufrufe auslagern in ein separates Template etwa der folgenden Logik

 <xsl:template name="tablecell">
  <xsl:param name="p" as="xs:string"/>
  <fo:table-cell>
   <fo:block>
    <xsl:value-of select="$p" />
   </fo:block>
  </fo:table-cell>
 </xsl:template>

und dieses Template dann via xsl:call-template und xsl:with-param aufrufen:

 <xsl:call-template name="tablecell">
  <xsl:with-param name="p" select="../vorname" />
 </xsl:call-template>
 <xsl:call-template name="tablecell">
  <xsl:with-param name="p" select="../name" />
 </xsl:call-template>
 <xsl:call-template name="tablecell">
  <xsl:with-param name="p" select="anzahl" />
 </xsl:call-template>

Eine weitere Alternative liegt in der Implementierung in ein xsl:template, das für Elemente "vorname, name, anzahl" wie geschaffen ist:

  <xsl:template match="vorname | name | anzahl">
    <fo:table-cell>
      <fo:block>
        <xsl:value-of select="." />
      </fo:block>
    </fo:table-cell>
  </xsl:template>

Dieses Template wiederum wird aufrufbar (immer ausgehend von "Kauf" als aktuellem Node) durch

<xsl:apply-templates select="../vorname"/>
<xsl:apply-templates select="../name"/>
<xsl:apply-templates select="anzahl"/>

Meine Vorbehalte gegen ein allzu sorgloses Auslagern in zahlreiche Templates habe ich an anderer Stelle deutlich gemacht. Es besteht die Gefahr der Unübersichtlichkeit und erschwerter Wartbarkeit der Applikation.

qrpic/FO1_5.jpg

wg / 9. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

Mobil: 0151. 750 360 61 * eMail: info10@wilfried-grupe.de