XSLT (eXtensible Stylesheet Language Transformations) — язык преобразования XML-документов. XSLT-инструкции оформляются в виде отдельного xslt-файла, который затем используется XSLT-процессором для трансформации xml-документа — исходного дерева в конечное дерево. Конечным деревом может быть другой xml-документ, html-документ или просто текст. В результате XSLT-преобразования конечный документ может иметь совсем другую структуру.
Сам по себе XSL-файл является правильным xml-документом. Поэтому он должен соответствовать всем требования, предъявляемым к xml-документам. Во-первых, как и все xml-документы, он должен начинаться со строки:
1 | <?xml version="число" encoding="строка"?> |
где:
version– указание на версию xml (обычно1.0),encoding– кодировка документа, например,utf-8.
Стиль (xsl:stylesheet)
Корневым элементом для XSL-документа является элемент xsl:stylesheet или его устаревший аналог xsl:transform, внутри которого и содержится все описание стиля (правил трансформации), т.е. все остальные элементы — инструкции и шаблоны.
Синтаксис:
1 2 3 4 5 6 7 8 | <xsl:stylesheet version = "число" xmlns:xsl = "URI" id = "строка" extension-element-prefixes = "префиксы" exclude-result-prefixes = "префиксы"> Содержание стиля: элементы верхнего уровня </xsl:stylesheet> |
или
1 2 3 4 5 6 7 8 | <xsl:transform version = "число" xmlns:xsl = "URI" id = "строка" extension-element-prefixes = "префиксы" exclude-result-prefixes = "префиксы"> Содержание стиля: элементы верхнего уровня </xsl:transform> |
Здесь и далее обязательные атрибуты будут выделены жирным.
Атрибуты:
version– обязательный атрибут, указывает версию XSL, как правило это1.0xmlns:xsl– обязательный атрибут, ссылка на URI пространства имен, как правило этоhttp://www.w3.org/1999/XSL/Transformid— необязательный атрибут, может содержать уникальный идентификатор. Этот атрибут используется, когда элемент xsl:stylesheet содержится не в отдельном документе, а является частью исходного документа. В этом случае атрибут позволяет идентифицировать стиль внутри исходного документаextension-element-prefixes— необязательный атрибут, содержит перечень префиксов пространств имен расширений, используемых в преобразовании. Расширения должны поддерживаться XSLT-процессоромexclude-result-prefixes— необязательный атрибут, содержит перечень префиксов пространств имен, которые следует исключать из конечного документа
Элементы верхнего уровня
Непосредственные потомки (children) элемента xsl:stylesheet называются элементами верхнего уровня. К ним в частности относятся:
xsl:importxsl:includexsl:strip-spacexsl:preserve-spacexsl:outputxsl:keyxsl:decimal-formatxsl:namespace-aliasxsl:attribute-setxsl:variablexsl:paramxsl:template
Порядок появления этих элементов не имеет значения (за исключением, xsl:import и обработки ошибки). Стиль (элемент xsl:stylesheet) может не содержать какой-либо из этих элементов, либо содержать сразу несколько его экземпляров, а так же содержать любой другой элемент, введенный пользователем.

