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.0
xmlns:xsl
– обязательный атрибут, ссылка на URI пространства имен, как правило этоhttp://www.w3.org/1999/XSL/Transform
id
— необязательный атрибут, может содержать уникальный идентификатор. Этот атрибут используется, когда элемент xsl:stylesheet содержится не в отдельном документе, а является частью исходного документа. В этом случае атрибут позволяет идентифицировать стиль внутри исходного документаextension-element-prefixes
— необязательный атрибут, содержит перечень префиксов пространств имен расширений, используемых в преобразовании. Расширения должны поддерживаться XSLT-процессоромexclude-result-prefixes
— необязательный атрибут, содержит перечень префиксов пространств имен, которые следует исключать из конечного документа
Элементы верхнего уровня
Непосредственные потомки (children) элемента xsl:stylesheet
называются элементами верхнего уровня. К ним в частности относятся:
xsl:import
xsl:include
xsl:strip-space
xsl:preserve-space
xsl:output
xsl:key
xsl:decimal-format
xsl:namespace-alias
xsl:attribute-set
xsl:variable
xsl:param
xsl:template
Порядок появления этих элементов не имеет значения (за исключением, xsl:import
и обработки ошибки). Стиль (элемент xsl:stylesheet
) может не содержать какой-либо из этих элементов, либо содержать сразу несколько его экземпляров, а так же содержать любой другой элемент, введенный пользователем.