Кратко

  • W3C выпустил рекомендации XSLT 1.0 и XPath 1.0 16 ноября 1999 года. XSLT описал правила, по которым из исходного дерева XML строится отдельное дерево результата.
  • Правило шаблона находит подходящие узлы источника и создает фрагмент результата. Новая структура может выбирать элементы, менять их порядок и добавлять собственные разделы.

За дверью магазина стоят ящики с яблоками, апельсинами и книгами. Сегодня апельсины должны попасть на витрину первыми, завтра у входа появятся книги. Фотография склада не станет хорошей главной страницей. Перетаскивать ящики каждое утро ради нового заголовка — верный способ рассориться с грузчиками. Рекомендация XSLT 1.0 предложила издателям XML более разумное занятие: оставить исходное дерево на месте и по правилам собрать другое, результативное.

Разделение записано в самом начале спецификации. Дерево результата существует отдельно от исходного и может иметь совершенно иную структуру. Одни элементы проходят в него, другие остаются за кадром; выбранные можно переставить и окружить новыми элементами. Складская ведомость отвечает за то, что есть в наличии. Витрина отвечает за то, что посетитель увидит сначала. Ради витрины ведомость не переписывают.

У XSLT для этого были правила шаблонов. Образец совпадения находил нужные узлы в источнике, а шаблон создавал из них часть результата. Команды могли выбирать дочерние узлы и передавать их подходящим правилам. Если у издателя сотни документов одинакового устройства, достаточно однажды описать порядок работы. Затем он повторяется без ручной перекладки каждого заголовка.

XPath 1.0 вышел в тот же день и дал выражения для поиска частей XML-документа. Чтобы показать цену книги, надо сначала найти цену именно этой книги. XPath указывает адрес, XSLT решает, какую часть новой страницы построить из найденного. Иначе ценник отправится к апельсинам — для покупателей неожиданность, для бухгалтера неприятность.

Слово «таблица стилей» обещает будто бы только новую краску. XSLT умел менять и планировку. В результате появлялись новые элементы, иной порядок и другие уровни вложенности. xsl:output предусматривал методы вывода XML, HTML и текста. Из одной структурированной записи можно было приготовить представление для веб-страницы или простой список. Решение о составе результата принималось до окончательного вывода.

W3C объявил XSLT и XPath вместе 16 ноября 1999 года. Один инструмент помогал найти детали документа, другой — собрать из них новую страницу. Каталог мог сменить порядок товаров, не переделывая исходную запись. У оформителя витрины появилась инструкция, а грузчики получили право на сон.