Элемент xsl:param
Элемент xsl:param
Синтаксически этот элемент задается как:
<xsl:param
name="имя"
select="выражение">
<!-- Содержимое: шаблон -->
</xsl:param>
Элемент xsl:template, задающий в преобразовании шаблонное правило, может включать несколько элементов xsl:param, которые и будут определять параметры этого шаблона. Кроме этого, xsl:param может указываться в виде элемента верхнего уровня — в этом случае он будет определять глобальный параметр.
Элемент xsl:param объявляет параметр с именем, которое задается обязательным атрибутом name. Имя параметра может иметь расширенную форму, например "user:param", но чтобы не возиться с пространствами имен, на практике имена всегда дают простые — типа "i" или "myParam".
Параметру может быть присвоено значение по умолчанию — то есть значение, которое будет использоваться в случае, если параметра с таким именем шаблону передано не было. Значение по умолчанию вычисляется следующим образом:
? если в элементе xsl:param определен атрибут select, то значением по умолчанию будет результат вычисления выражения, указанного в этом атрибуте;
? если атрибут select не определен, но сам элемент xsl:param имеет дочерние узлы, то значением определяемого параметра по умолчанию будет фрагмент дерева, полученного в результате выполнения содержимого xsl:param;
? если атрибут select не определен и при этом сам элемент xsl:param пуст, то значением параметра по умолчанию будет пустая строка.
Примеры
Элемент
<xsl:param name="x" select="2 * 2"/>
создаст параметр, значением которого по умолчанию будет 4. Точно такой же эффект будет иметь элемент
<xsl:param name="x" select="2 * 2">
<xsl:value-of select="5 * 5/>
</xsl:param>
Его содержимое не будет приниматься в расчет, поскольку в xsl:param присутствует атрибут select. Если же убрать атрибут select:
<xsl:param name="x">
<xsl:value-of select="5 * 5/>
</xsl:param>
то значение параметра x по умолчанию действительно будет результатом вычисления его содержимого. Однако, вопреки довольно здравому разумению, этим значением не будет число 25 и даже не строка "25" и тем более не множество, состоящее из текстового узла со значением 25. Значением параметра x по умолчанию будет результирующий фрагмент дерева, корень которого будет иметь единственный текстовый узел со значением "25" (рис. 5.3).
Рис. 5.3. Фрагмент дерева, который будет значением параметра x по умолчанию
Не стоит пугаться такой структуры в качестве значения параметра. То, что параметр x вдруг будет содержать дерево, ничуть не ограничивает его использование, ведь дерево при потребности может быть приведено к числу или к строке; к множеству узлов же не может быть приведен ни один тип данных.
Предупреждение
Напомним, что при приведении дерева к булевому типу, результатом всегда будет истина. Дерево всегда содержит как минимум корневой узел, и поэтому оно никогда не будет считаться пустым.
Определение параметра вида:
<xsl:param name="x"/>
то есть когда в нем нет ни атрибута select, ни содержимого, присвоит параметру пустую строку, то есть будет эквивалентно
<xsl:param name="x" select="'"/>
Точно так же, как и в случае с переменными, значение заданного в шаблоне параметра можно использовать в выражениях, добавляя перед именем параметра префикс "$". К примеру, значение нашего параметра x может быть получено конструкцией вида $x.
Для того чтобы передать в шаблон определенные значения параметров, элементы, которые вызывают этот шаблон, должны содержать один или несколько элементов xsl:with-param, который мы рассмотрим чуть ниже. Глобальные параметры, объявленные элементами xsl:param верхнего уровня, также могут быть переданы преобразованию, однако конкретный механизм реализации этой передачи целиком и полностью зависит от реализации конкретного процессора.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Элемент
Элемент Основой языка HTML является элемент. Он несет в себе определенную информацию, может описывать документ в целом или способ форматирования текста. Элементы можно назвать основой построения сайта. Все, что вы захотите создать на вашей странице, будет сделано с помощью
Элемент PARAM
Элемент PARAM Это главный элемент, предназначенный для управления проигрывателем. С его помощью можно управлять панелями проигрывателя, регулировать начальную громкость воспроизведения и другие параметры приложения; в общем, этот элемент позволяет гибко управлять
Элемент
Элемент Элементы – это любые единичные компоненты структуры, например, заголовок, абзац текста, фотография или
Элемент <xsl:if>
Элемент <xsl:if> При помощи элемента <xsl:if> осуществляются проверки условия и принимаются действия на основе результата проверки. Он во многом похож на оператор if в языках программирования. У элемента <xsl:if> один атрибут:• test (обязательный). Устанавливается в
Элемент <xsl:for-each>
Элемент <xsl:for-each> Элемент <xsl:for-each> позволяет применять тело шаблона в цикле снова и снова для всех элементов набора узлов. С технической точки зрения, он работает с набором узлов, который возвращает выражение XPath и выполняет одно и то же действие с каждым узлом в
Элемент <?job?>
Элемент <?job?> Элемент <?job?> задает режим отладки при выполнении WS-файла. Если значение атрибута debug равно true, то задание может быть выполнено во внешнем отладчике (см. приложение 3). Если же значение атрибута debug равно false, то отладчик для этого задания применен быть не
Элемент <job>
Элемент <job> Элементы <job> позволяют определять несколько заданий (независимо выполняющихся частей) в одном WS-файле. Иначе говоря, между тегами <job> и </job> будет находиться отдельный сценарий (который, в свою очередь, может состоять из нескольких частей,
Элемент <example>
Элемент <example> Внутри элемента <example> приводится текст из одной или нескольких строк, в котором можно описать примеры запуска сценария. Если сценарий был запущен с ключом /? в командной строке или в сценарии встретился вызов метода ShowUsage объекта WshArguments, то этот текст
Элемент Button
Элемент Button Для создания обычной кнопки используется класс System.Windows.Forms.Button. Эта кнопка обладает всеми основными функциями, которые есть у такого же класса в полной версии .NET Framework. Кнопка предназначена для обработки нажатия стилуса на соответствующую область экрана. В
Элемент TextBox
Элемент TextBox В предыдущем примере дата отображалась в текстовом поле. Это поле создается при помощи класса TextBox, который позволяет вводить текст. Данный элемент поддерживает такие стандартные свойства, как BackColor и ForeColor. Событие Click элементом TextBox не поддерживается, но
Элемент xsl:param
Элемент xsl:param Синтаксически этот элемент задается как:<xsl:param name="имя" select="выражение"> <!-- Содержимое: шаблон --></xsl:param>Элемент xsl:template, задающий в преобразовании шаблонное правило, может включать несколько элементов xsl:param, которые и будут определять параметры
Элемент xsl:if
Элемент xsl:if Синтаксис элемента следующий:<xsl:if test="выражение"> <!-- Содержимое: шаблон --></xsl:if>Элемент xsl:if является простейшим условным оператором в XSLT. Выражение, содержащееся в обязательном атрибуте test, вычисляется и приводится к булевому типу. В том и только том