Streaming Transformations for XML
STXは、ストリームベースのXMLを効率的に処理するためのXML標準である。 基本的なXSLTはストリームベースの処理にはあまり適しておらず、STXがこのニッチを埋める。
従来のXML処理では、使用するためにXMLドキュメント全体をメモリにロードする必要がある。対照的に、SAXは「要素を開く」、「要素を閉じる」、「テキスト・ノード」などのXMLイベントをストリーミング(英語版)するため、他のソフトウェアはファイルの終わりに到達する前に情報の解釈をすぐに開始できる。残念ながら、一部のソフトウェアではこの方法でXMLフラグメントを効果的に使用することができず、処理を開始するためにドキュメント全体を構築する必要がある。XSLTの場合も同様である。XSLTのXPathはドキュメント全体の任意のノードを選択できる仕様のため、ドキュメント全体がメモリ内で利用可能である必要がある。
STXでは現在のノードのすぐ周囲にあるクエリのみが許可されるため、SAXイベント・ノードが到着次第すぐに変換と出力を開始できる。処理後すぐにノードを破棄できるため、メモリ使用量がXSLTより劇的に低くなる。クエリのスコープが制限されているのがSTXの特徴である。
このアーキテクチャ上の決定により、STXはニッチな言語として意図的に疎外される。実際、STXが汎用変換言語であると言うのは間違いである; ただし、変換のニーズをSTXで満たせる場合は、それが効率的で賢い選択となる。