XSL-Transformation
Templates vom Typ XSL-Transformation dienen der Transformation einer XML-Exportdatei und können z.B. in Aktionen vom Typ Export (XML-Datei) oder für den Export eines Vorgangs in einem Postfach verwendet werden.
Unterstützte Versionen des XSLT- und XPath-Standards
Bis einschließlich Xima® Formcycle Version 7.2.1 werden nur XSL-Transformationen im Sprachstandard XSLT 1.0 und XPath 1.0 unterstützt.
7.3.0+ Ab Xima® Formcycle Version 7.3 wird ein anderer Prozessor verwendet, welcher XSLT 3.0 und XPath 3.1 unterstützt.
Unterschiede bei der Verwendung von XSL-Transformationen ab Xima® Formcycle Version 7.3
Grundsätzlich unterstützt der in neueren Xima® Formcycle Versionen verwendete XSLT-Prozessor alle Sprachfeatures, die auch der ältere Prozessor unterstützt hat, da er rückwärtskompatibel zu XSLT 1.0 ist. Der in älteren Xima® Formcycle Versionen verwendete XSLT-Prozessor erlaubte aber an manchen Stellen mehr, als der Sprachstandard zwingend vorschreibt. Dies kann dazu führen, dass bestehende XSL-Transformationen nach einem Update auf eine Xima® Formcycle Version größer gleich 7.3 nicht mehr funktionieren.
Bisher sind folgende Probleme bekannt:
Verschachtelte Funktionsaufrufe
Funktionsaufrufe in der Form
<xsl:value-of select="format-number(substring-before($datestr,'.'), '0' )" />
</xsl:variable>
sind nicht mehr möglich. Stattdessen kann man das Ergebnis der inneren Funktion zum Beispiel in Variablen zwischenspeichern:
<xsl:value-of select="substring-before($datestr,'.')" />
</xsl:variable>
<xsl:variable name="dd">
<xsl:value-of select="format-number($ddtemp, '0' )" />
</xsl:variable>
Leerzeichen
Insbesondere bei der Auflösung von Schleifenvariablen müssen in bestimmten Konstellationen Leerzeichen zwingend verwendet werden, wo dies zuvor nicht nötig war. Dies ist zum Beispiel an folgender Stelle so:
Hier müssen Leerzeichen wie folgt vorhanden sein:
Funktionen in For-Each-Schleifen
Der Vergleich der position() Variable z.B. innerhalb eines xsl:if-Blocks konnte zuvor gegen einen String mit dem Positionswert erfolgen.
Dies entsprach nie dem Standard, und ist nicht mehr möglich. Stattdessen muss der Vergleich mit dem reinen Zahlenwert erfolgen: