Введение

Streaming Transformations for XML (STX) — это язык преобразования XML, разработанный как высокоскоростная и экономичная по памяти альтернатива XSLT версий 1.0 и 2.0. Текущие разработки в XSLT 3.0 включают поддержку потоковой обработки.

Обзор

STX — это стандарт XML для эффективной обработки XML в потоковом режиме. Базовый XSLT недостаточно хорошо подходит для потоковой обработки, и STX заполняет эту нишу. Традиционная обработка XML предполагает загрузку всего XML-документа в память для использования. В отличие от этого, SAX передает XML-события, такие как «открытие элемента», «закрытие элемента» и «текстовый узел», позволяя другому программному обеспечению начинать интерпретацию информации немедленно, еще до достижения конца файла. К сожалению, некоторые программы не могут эффективно использовать XML-фрагменты таким образом и должны собрать весь документ, прежде чем начать обработку. То же самое справедливо и для XSLT. Поскольку XPath в XSLT может выбирать любой узел во всем документе, ему необходимо иметь весь документ в памяти. STX допускает только запросы, относящиеся непосредственно к текущему узлу, что позволяет ему быстро начать преобразование и вывод узлов событий SAX по мере их поступления. Поскольку он может отбрасывать узлы сразу после обработки, использование памяти значительно ниже, чем у XSLT. Ограниченная область запросов является определяющей характеристикой STX. Это архитектурное решение намеренно ограничивает STX нишевым языком. Действительно, было бы неверно утверждать, что STX — это язык преобразований общего назначения; однако, если ваши потребности в преобразовании могут быть удовлетворены STX, то это эффективный и разумный выбор.

Технические характеристики

Язык запросов STX называется STXPath и основан на XPath 2.0. Реализации STX доступны на Java и Perl.