XSL - Übersicht / xsl:call-template

xsl:call-template

xsl:call-template

xsl:call-template ruft benannte Templates ("xsl:template name=") auf. Damit eignet sich xsl:call-template gut zur Implementierung von "Unterprogrammen", die duch die eigentlichen "Hauptprogramme" beliebig oft aufgerufen ("xsl:call-template") werden können.

xsl:call-template

Zur Einordnung von xsl:call-template ist es sinnvoll, sich vorher an die Einsatzbereiche von "xsl:for-each select" und "xsl:template match" zu erinnern.

Während "xsl:template match" und "xsl:for-each select" zur präzisen XPath-Adressierung eine enge Bindung an die Datenstruktur des XML-Inputs erfordern, eignen sich frei benannte Templates ("xsl:template name") gut zur Implementierung von "Unterprogrammen", die durch die eigentlichen "Hauptprogramme" beliebig oft aufgerufen ("xsl:call-template") werden können. Dies kann weitgehend unabhängig von der Datenstruktur des XML Inputs geschehen.

Wenn es beispielsweise darum geht,

dann ist das ein Fall für "xsl:call-template".

Benannte Templates ("xsl:template name") erlauben daher,

Zwar ist es möglich, auf jegliche Parameterdefinition zu verzichten und ein benanntes Template mit dem initialen Scope von Elementen / Attributen zu konfrontieren, die dem Template zur Laufzeit übergeben werden (vgl: ).

Mit der (vermeidbaren) Gefahr, innerhalb des benannten Templates doch wieder auf die enge Bindung an die Datenstruktur des XML-Inputs zurückzugreifen, um die diversen Elemente/Attribute via XPath gezielt adressieren zu können. In diesem Fall übernimmt "xsl:template name" die Aufgabe von "xsl:template match".

Wird innerhalb eines "xsl:template name" zudem wiederholt "xsl:call-template" bzw. "<xsl:apply-templates/>" aufgerufen, ist der Vorteil schnell dahin, gegenseitige Abhängigkeiten weitgehend vermeiden und die Wartbarkeit des Gesamtsystems erhöhen zu können.

Mehr zum Thema:

wg / 29. Dezember 2017



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf:

Vorname
Nachname
Mailadresse







Vielen Dank für Ihr Interesse an meiner Arbeit.


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

☎ 0151. 750 360 61 * eMail: info2018@wilfried-grupe.de

www.wilfried-grupe.de/XSL_call_template.html