Тело шаблона
Тело шаблона
Фактически, элемент xsl:template, определяющий шаблонное правило, задает не более чем условия, при которых это правило должно выполняться. Конкретные же действия и инструкции, которые должны быть исполнены, определяются содержимым элемента xsl:template и составляют тело шаблона.
Пример
Тело следующего шаблона (выделенное полужирным шрифтом):
<xsl:template match="page">
<body>
<xsl:value-of select="."/>
</body>
Комментарии
<xsl:copy-of select="comment()"/>
</xsl:template>
состоит из литерального элемента body, текстового узла и элемента xsl:copy-of. При выполнении этого шаблона элемент body будет выведен как есть (при этом содержимое его будет вычислено); текстовый узел будет скопирован в выходящее дерево; элемент xsl:copy-of будет заменен множеством дочерних комментариев текущего узла.
Следует заметить, что текстовый узел в данном случае состоит не только из строки "Комментарии". Он включает также все пробельные символы и символы переноса строки.
Тело шаблона может быть также и пустым. В этом случае результат обработки узлов, соответствующих этому шаблону будет пустым. Например, если в преобразовании содержится шаблон вида
<xsl:template match="comment()"/>
то каждый раз, встретив узел комментария и обрабатывая его этим правилом, процессор будет получать пустой результат. Таким образом, используя пустые шаблоны совместно с идентичным преобразованием можно добиться эффекта удаления определенных узлов из шаблона, как это было показано ранее в этой главе.
Тело шаблона может содержать любые текстовые узлы, комментарии, инструкции по обработке и литеральные элементы результата при условии, что не будет нарушен синтаксис XML-документа. Тело шаблона может также содержать следующие элементы XSLT, называемые также инструкциями (не путать с инструкциями по обработке):
? xsl:apply-imports;
? xsl:apply-templates;
? xsl:attribute;
? xsl:call-template;
? xsl:choose;
? xsl:comment;
? xsl:copy;
? xsl:copy-of;
? xsl:element;
? xsl:fallback;
? xsl:for-each;
? xsl:if;
? xsl:message;
? xsl:number;
? xsl:param;
? xsl:processing-instruction;
? xsl:text;
? xsl:value-of;
? xsl:variable.
Элементы xsl:param и xsl:variable, которые входят в этот список в преобразовании, могут быть как элементами верхнего уровня, так и инструкциями. В первом случае они определяют глобальные параметры и переменные, во втором — локальные.
Если элементы xsl:param используются для определения локальных переменных, они должны быть первыми дочерними элементами xsl:template, то есть, строго говоря, определение
<xsl:template name="page">
<xsl:text>Text</xsl:text>
<xsl:param name="foo"/>
</xsl:template>
будет некорректным. На самом деле многие процессоры игнорируют эту ошибку, вполне разумно считая, что ничего смертельного в ней нет. Но, конечно, лучше использовать стандартный вариант:
<xsl:template name="page">
<xsl:param name="foo"/>
<xsl:text>Text</xsl:text>
</xsl:template>
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Тело вращения
Тело вращения Команда REVOLVE формирует твердотельные объекты путем вращения существующих объектов или областей на заданный угол вокруг оси X или Y текущей ПСК (рис. 16.12). Команда вызывается из падающего меню Draw ? Modeling ? Revolve или щелчком на пиктограмме Revolve на панели
Тело сдвига
Тело сдвига Команда SWEEP формирует новый твердотельный объект путем сдвига разомкнутой или замкнутой плоской кривой (контура) вдоль разомкнутой или замкнутой двумерной или трехмерной траектории (рис. 16.13). Команда вызывается из падающего меню Draw ? Modeling ? Sweep или щелчком на
Вытянутое тело
Вытянутое тело Команда PRESSPULL позволяет сжимать или растягивать ограниченные области. Команда вызывается щелчком на пиктограмме Presspull (CTRL+ALT) на панели инструментов Modeling.Запрос команды PRESSPULL: Click inside bounded areas to press or pull. – щелкнуть кнопкой мыши в области контура для
Преобразование в тело
Преобразование в тело Команда CONVTOSOLID преобразует в трехмерные тела полилинии и окружности, для которых задана высота. Команда вызывается из падающего меню Modify ? 3D Operations ? Convert to Solid.В выдавленные трехмерные тела можно преобразовать следующие объекты:• полилинии с
Выдавленное тело
Выдавленное тело Команда EXTRUDE позволяет создавать твердотельные объекты методом выдавливания двумерных объектов в заданном направлении и на заданное расстояние. Команда вызывается из падающего меню Draw ? Modeling ? Extrude или щелчком на пиктограмме Extrude на панели инструментов
Тело вращения
Тело вращения Команда REVOLVE формирует твердотельные объекты путем вращения существующих объектов или областей на заданный угол вокруг оси X или F текущей ПСК. Команда вызывается из падающего меню Draw ? Modeling ? Revolve или щелчком на пиктограмме Revolve на панели инструментов
Тело сдвига
Тело сдвига Команда SWEEP формирует новый твердотельный объект путем сдвига разомкнутой или замкнутой плоской кривой (контура) вдоль разомкнутой или замкнутой двумерной или трехмерной траектории. Команда вызывается из падающего меню Draw ? Modeling ? Sweep или щелчком на
Вытянутое тело
Вытянутое тело Команда PRESSPULL позволяет сжимать или растягивать ограниченные области. Команда вызывается щелчком на пиктограмме Presspull (CTRL+ALT) на панели инструментов Modeling.Запросы команды PRESSPULL:Click inside bounded areas to press or pull. – нажать кнопку мыши в области контура для
Преобразование в тело
Преобразование в тело Команда CONVTOSOLID преобразует в трехмерные тела полилинии и окружности, для которых задана высота. Команда вызывается из падающего меню Modify ? 3D Operations ? Convert to Solid.В выдавленные трехмерные тела можно преобразовать следующие объекты:• полилинии с
Тело функции
Тело функции Тело функции представляет собой составной оператор, или блок. Он содержит операторы, которые определяют действие функции, и объявления переменных, используемых в этих операторах. Составной оператор описан в разделе 5.3.Все переменные, объявленные в теле
Тело триггера
Тело триггера Во всех кодах модулей Firebird тело состоит из необязательного объявления списка локальных переменных, за которым следует блок операторов. Программирование тела триггера в точности такое же, как и программирование тела процедуры (см. главу 30). Интерес для нас в
Выдавленное тело
Выдавленное тело Команда EXTRUDE позволяет создавать твердотельные объекты методом выдавливания двумерных объектов в заданном направлении и на заданное расстояние. Команда вызывается из падающего меню Draw ? Modeling ? Extrude или щелчком на пиктограмме Extrude на панели инструментов
Тело вращения
Тело вращения Команда REVOLVE формирует твердотельные объекты путем вращения существующих объектов или областей на заданный угол вокруг оси X или Y текущей ПСК. Команда вызывается из падающего меню Draw ? Modeling ? Revolve или щелчком на пиктограмме Revolve на панели инструментов
Тело сдвига
Тело сдвига Команда SWEEP формирует новый твердотельный объект путем сдвига разомкнутой или замкнутой плоской кривой (контура) вдоль разомкнутой или замкнутой двумерной или трехмерной траектории (рис. 18.30). Команда вызывается из падающего меню Draw ? Modeling ? Sweep или щелчком на
Вытянутое тело
Вытянутое тело Команда PRESSPULL позволяет сжимать или растягивать ограниченные области. Команда вызывается щелчком на пиктограмме Presspull (CTRL+ALT) на панели инструментов Modeling.Запросы команды