шаблоны при помощи параметров.
Элементы и : создание параметров
Параметры во многом похожи на переменные — за тем исключением, что они обычно используются вместе с именованными шаблонами. Параметры позволяют вам передать в шаблон какие-то значения. Параметры создаются элементом
, обладающим двумя атрибутами:•
name
(обязательный). Имя переменной, устанавливается в QName;•
select
(необязательный). Значение параметра по умолчанию. Устанавливается в выражение XPath.Аналогично
, этот элемент может либо быть элементом высокого уровня, либо применяться внутри тела шаблона. Параметры, созданные элементами
, являются глобальными, а созданные внутри шаблонов — локальными. При создании параметра внутри тела шаблона, элемент
должен быть расположен перед какими-либо другими дочерними элементами. Элемент может также содержать необязательное тело шаблона, создающее фрагмент результирующего дерева — в XSLT 1.1 это уже не разрешено. Если элемент содержит тело, атрибут select
использовать нельзя.После объявления параметра при помощи
к его значению можно обращаться в шаблоне таким же способом, как и к значению переменной, — добавляя к имени префикс «$».Когда вы вызываете именованный шаблон при помощи
или применяете шаблоны с использованием
, вы можете задать значение используемых в шаблоне параметров с помощью элемента
. Если самому параметру при объявлении было присвоено значение атрибутом select
элемента
, это значение выступает в качестве значения параметра по умолчанию. Значение по умолчанию будет перекрыто, если вы зададите новое значение параметра при помощи элемента
. У элемента
два атрибута:•
name
(обязательный). Имя переменной; устанавливается в QName;•
select
(необязательный). Выражение XPath, задающее значение параметра. Если опустить этот атрибут, значение переменной будет определяться содержимым
.Элемент может также содержать необязательное тело шаблона, создающее фрагмент результирующего дерева, но в XSLT 1.1 это уже не разрешено.
В следующем примере (листинг 9.3) я создаю именованный шаблон с именем «COLORS» (цвета), добавляющий цвет в данные планет в результирующем HTML-документе. Этот именованный шаблон использует единственный параметр,
COLOR
, который устанавливается в требуемый цвет. В примере я устанавливаю параметр COLOR
в разные цвета для разных планет, используя
и вызывая шаблон «COLORS». Вот как это реализуется на практике.Листинг 9.3. Применение параметров таблиц стилей
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
.
.
.
.
.
.
Данная таблица вызывает шаблон «COLORS» с разными значениями параметра COLOR. Я могу воспользоваться этими цветами при форматировании данных планет. Заметьте, что я объявил параметр COLOR при помощи
в самом начале шаблона «COLORS»:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
.
.
.