Gern stehe ich zur fachlichen Unterstützung in XML-Technologien, C#.NET, VisualBasic.NET und Java zur Verfügung. Sprechen Sie mich einfach an: Mail oder ☎ 0151 . 750 360 61


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 werden können.

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 / 5. April 2018



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






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: info10@wilfried-grupe.de

www.wilfried-grupe.de/XSL_call_template.html