Identitätstransformation in XSLT 3.0

Eine Identitätstransformation ist bei meiner Arbeit oft Ausgangspunkt von inkrementellen Änderungen einer XML-Datei. Während man in XSLT 2.0 und XSLT 1.0 noch ein eigenes Template schreiben musste, dass rekursiv alle Knoten des Quelldokuments kopiert, so kürzt sich die Identitätstransformation in XSLT 3.0 auf eine Zeile zusammen.

<xsl:transform version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   <xsl:mode on-no-match="shallow-copy"/> </xsl:transform> Identitätstransformation in XSLT 3.0

Das on-no-match wählt die integrierten Verarbeitungsregeln built-in template rules aus, die für den unbenannten Modus unnamed mode angewendet werden. In 3.0 stehen sechs verschiedene Regelsätze zur Verfügung.

text-only-copy
Nur der Text des Eingabedokuments wird in das Ausgabedokument kopiert.
Dieser Modus entspricht den integrierten Verarbeitungsregeln der Vorgängerversionen.
deep-copy
Knoten werden unverändert und einschließlich ihrer Kindknoten in das Ausgabedokument geschrieben. Verarbeitungsregeln werden nicht auf die Kindknoten angewendet.
shallow-copy
Knoten werden unverändert in das Ausgabedokument geschrieben. Verarbeitungsregeln werden auf die Kindknoten angewendet.
deep-skip
Knoten werden ignoriert. Verarbeitungsregeln werden nicht auf die Kindknoten angewendet.
shallow-skip
Knoten werden ignoriert. Verarbeitungsregeln werden auf die Kindknoten angewendet.
fail
Die Verarbeitung wird abgebrochen.