XML | XML-Schema | XPath | XSL-T | XSL-FO | XQuery | XProc | SVG |
XSL-T / Die XSLT - Struktur / xsl:function
![]() |
![]() |
➪ In XSL 2.0 besteht auch die Möglichkeit, eigene Funktionen zu schreiben, denen Parameter übergeben werden können. Dabei können die Datentypen der übergebenen Parameter wie auch der Rückgabetyp klar definiert werden.
Siehe
Um eine Funktion wie die folgende (Syntax etwa von C, C++, Java, C#.NET) in XSLT 2.0 abzubilden,
static int addiere (int a, int b)
{
return a + b;
}
... genügt es, mit xsl:function zu arbeiten. Jedoch ist hier die Benennung eines Namespaces zwingend, ich habe hier mit xmlns:wg='xsl20beispiele' gearbeitet.
Obwohl nicht zwingend erforderlich, ist es vorteilhaft, die Datentypen der übergebenen Parameter wie auch den Rückgabetyp klar zu definieren. Damit ist eine ebenso typsaubere Programmierung möglich, wie sie in C, C++, Java, C#.NET zwingend erforderlich ist.
Die in XML-Schema festgelegte Typdefinition erlaubt eine entsprechende Implementierung, die dem Developer die Kontrolle erlaubt, ob übergebene Parameter, deklarierte Variablen und Funktionsrückgaben jenen Annahmen und Erwartungen entsprechen, auf denen die Implementierung beruht.
<xsl:function name="wg:addiere" as="xs:integer">
<xsl:param name="a" as="xs:integer"/>
<xsl:param name="b" as="xs:integer"/>
<xsl:sequence select="$a + $b"/>
</xsl:function>
Der Aufruf ist dann ebenso einfach ...
<erg>
<xsl:value-of select="wg:addiere(4,5)"/>
</erg>
... wie das Ergebnis:
<erg>9</erg>
Siehe auch Anonyme Funktionen.
wg / 10. August 2020
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de