Streaming Transformations for XML
# Streaming Transformations for XML

Streaming Transformations for XML, kurz STX, ist eine formale Sprache zur Transformation von sehr großen XML-Dateien.

STX verbindet das Abstraktionslevel von XSLT mit der Performance von SAX, insbesondere dem niedrigen Speicherbedarf von SAX-Transformationen.

## Konzept

Die Syntax von STX stimmt weitgehend mit der Syntax von XSLT bzw. XSLT 2 überein. Der wichtigste Unterschied zu XSLT ist, dass anstelle von XPath die eigene Abfragesprache STXPath benutzt wird.

STXPath ist speziell für die effiziente Verarbeitung sehr großer Dateien ausgelegt, und daher weniger ausdrucksstark als XPath. Die XPath-Achsen, die auf Geschwister- und Kindknoten zugreifen, sind in STXPath unbekannt. Die Menge zugelassener Prädikate ist ebenfalls deutlich kleiner als in XPath. Um trotzdem komplexe Transformationen mit STX ausdrücken zu können, ist es erlaubt, den Inhalt von Variablen zu ändern (im Gegensatz zu XSLT) und über diese Variablen den aktuellen Zustand der Transformation auszudrücken.

## Implementationen

* Joost – Implementierung in Java
* XML::STX – Implementierung in Perl.
