Элементы
Элементы
В табл. П2.1 приведены описания основных элементов XSLT.
Таблица П2.1. Описание основных элементов XSLT
Элемент Описание <xsl:apply-imports/> Инструкция. Применяет шаблонные правила, которые содержатся в импортированных преобразованиях <xsl:apply-templates select="выражение" mode="режим"> <!-- Содержимое: несколько элементов xsl:sort или xsl:with-param --> </xsl:apply-templates> Инструкция. Применяет шаблонные правила к множеству узлов, возвращаемому выражением, записанным в атрибуте select. • select — содержит выражение, возвращающее множество узлов для обработки; • mode — указывает режим, в котором должны применяться шаблоны <xsl:attribute name="{имя}" Инструкция. Создает в выходящем документе узел атрибута. • name — определяет имя атрибута; • namespace — URI пространства имен создаваемого атрибута namespace="{пространство имен}"> <!-- Содержимое: шаблон --> </xsl:attribute> <xsl:attribute-set name="имя" use-attribute-sets="имена"> <!-- Содержимое: несколько элементов xsl:attribute --> </xsl:attribute-set> Элемент верхнего уровня. Определяет именованный набор атрибутов. • name — содержит имя набора атрибутов; • use-attribute-sets — перечисляет через пробелы имена наборов атрибутов, которые следует включить в определяемый набор <xsl:call-template name="имя"> <!-- Содержимое: несколько элементов xsl:with-param --> </xsl:call-template> Инструкция. Вызов именованного шаблона. • name — имя вызываемого шаблона <xsl:choose> <!-- Содержимое: один или более элемент xsl:when, опциональный элемент xsl:otherwise --> </xsl:choose> Инструкция. Выполняет содержимое одного из субэлементов в зависимости от условий <xsl:comment> <!-- Содержимое: шаблон --> </xsl:comment> Инструкция. Создает в выходящем документе узел комментария <xsl:copy use-attribute-sets="имена"> <!-- Содержимое: шаблон --> </xsl:copy> Инструкция. Создает в выходящем документе копию текущего узла. Копии дочерних узлов не создаются. • use-attribute-sets — перечисляет именованные наборы атрибутов, которые следует добавить в создаваемый узел <xsl:copy-of select="выражение"/> Инструкция. Копирует в выходящий документ результат вычисления выражения. • select — содержит выражение, результат которого нужно скопировать <xsl:decimal-format name="имя" decimal-separator="символ" grouping-separator="символ" infinity="строка" minus-sign="символ" NaN="строка" percent="символ" per-mille="символ" zero-digit="символ" digit="символ" pattern-separator="символ"/> Элемент верхнего уровня. Определяет именованный набор параметров для формата числа. • name — имя. Если name отсутствует, формат числа определяется по умолчанию; • decimal-separator — символ, разделяющий целую и дробную часть; • grouping-separator — символ, разделяющий группы цифр целой части числа; • infinity — строка, соответствующая бесконечности; • minus-sign — символ отрицания; • NaN — строка, соответствующая нечислу; • percent — символ процента; • per-mille — символ промилле; • zero-digit — символ нуля; • digit — символ, помечающий позицию необязательной цифры; • pattern-separator — символ, разделяющий положительный и отрицательный образцы форматирования <xsl:element name="{имя}" namespace="{пространство имен}" use-attribute-sets="имена"> <!-- Содержимое: шаблон --> </xsl:element> Инструкция. Создает в выходящем документе элемент. • name — имя элемента; • namespace — URI пространства имен создаваемого элемента; • use-attribute-sets — перечисляет имена наборов атрибутов, которые надо включить в создаваемый элемент <xsl:fallback> <!-- Содержимое: шаблон --> </xsl:fallback> Инструкция. Выполняется при невозможности выполнить родительскую инструкцию <xsl:for-each select="выражение"> <!-- Содержимое: несколько элементов xsl:sort, шаблон --> </xsl:for-each> Инструкция. Выполняет содержащийся шаблон для каждого из узлов множества. • select — содержит выражение, возвращающее перебираемое множество узлов <xsl:if test="выражение" > <!-- Содержимое: шаблон --> </xsl:if> Инструкция. Выполняет или не выполняет дочерний шаблон в зависимости от заданного условия. • test — содержит выражение проверяемого условия <xsl:import href="URI"/> Элемент верхнего уровня. Импортирует указанный шаблон. • href — URI импортируемого шаблона <xsl:include href="URI"/> Элемент верхнего уровня. Включает указанный шаблон. • href — URI включаемого шаблона <xsl:key name="имя" match="паттерн" use="выражение"/ > Элемент верхнего уровня. Определяет именованный ключ. • name — имя ключа; • match — выбирает узлы, для которых будут определяться значения ключа; • use — выражение, значение которого будет значением ключа для каждого из узлов <xsl:message terminate="yes" | "no"> <!-- Содержимое: шаблон --> </xsl:message> Инструкция. Указывает процессору на то, что нужно вывести сообщение. • terminate — определяет, следует ли прервать обработку после вывода сообщения или нет <xsl:namespace-alias stylesheet-prefix="префикс" | "#default" result-prefix="префикс" | "#default"/> Элемент верхнего уровня. Определяет псевдоним для префикса. • stylesheet-prefix — префикс в преобразовании; • result-prefix — префикс в результирующем документе <xsl:number level="single" | "multiple" | "any" count="паттерн" from="паттерн" value="выражение" format="{строка}" lang="{токен}" letter-value={ "alphabetic" | "traditional" } grouping-separator="{символ}" grouping-size="{число}"/> Инструкция. Выводит номер в соответствии с заданными критериями. • level — на каких уровнях нумеровать узлы; • count — какие узлы учитывать при нумерации; • from — в какой части документа нумеровать узлы; • value — выражение, вычисляющее номер. • format — форматирующая строка номера; • lang — язык для алфавитных последовательностей; • letter-value — алфавитная или традиционная нумерация; • grouping-separator — разделяющий символ групп цифр номера; • grouping-size — количество цифр в группах цифр номера <xsl:otherwise> <!-- Содержимое: шаблон --> </xsl:otherwise> Субэлемент элемента xsl:choose. Выполняется в элементе xsl:choose, если ни одно из других условий не верно. <xsl:output method="xml" | "html" | "text" | " префикс:имя" version="токен" encodings="строка" omit-xml-declaration="yes" | "no" standalone="yes" | "no" doctype-public="строка" doctype-system="строка" cdata-section-elements="имена" indent="yes" | "no" media-type="строка"/> Элемент верхнего уровня. Определяет параметры вывода результирующего документа. • method — метод сериализации; • version — версия языка сериализации; • encoding — кодировка выходящего документа; • omit-xml-declaration — опустить декларацию XML; • standalone — самостоятельный или несамостоятельный документ; • doctype-public — публичный идентификатор типа документа; • doctype-system — системный идентификатор типа документа; • cdata-section-elements — элементы, содержимое которых следует выводить как секции CDATA; • indent — индентация (вывод отступов); • media-type — медиа-тип <xsl:param name="имя" select="выражение"> <!-- Содержимое: шаблон --> </xsl:param> Инструкция, элемент верхнего уровня. Определяет параметр преобразования или шаблонного правила. • name — имя параметра; • select — выражение, задающее значение параметра <xsl:preserve-space elements="токены"/> Элемент верхнего уровня. Определяет элементы входящего документа, в которых следует сохранять текстовые узлы, содержащие только пробельные символы. • elements — перечисляет элементы, в которых пробельные символы должны быть сохранены <xsl:processing-instruction name="{имя}"> <!-- Содержимое: шаблон --> </xsl:processing-instruction> Инструкция. Создает узел инструкции по обработке. • name — определяет имя целевого приложения создаваемой инструкции <xsl:sort select="выражение" lang="{токен}" data-type={ "text" | "number" | "префикс:имя" } order={ "ascending" | "descending" } case-order={ "upper-first" | "lower-first"}/> Субэлемент элементов xsl:apply-templates и xsl:for-each. • select — выражения для сортировки; • lang — язык сортировки; • data-type — тип данных сортировки; • order — порядок сортировки; • case-order — упорядоченность строчных и прописных букв <xsl:strip-space elements="токены"/> Элемент верхнего уровня. Определяет элементы входящего документа, в которых следует удалять текстовые узлы, содержащие только пробельные символы. • elements — перечисляет элементы, в которых пробельные символы должны быть удалены <xsl:stylesheet id="идентификатор" extension-element-prefixes="префиксы" exclude-result-prefixes="префиксы" version="число"> <!-- Содержимое: несколько элементов xsl:import, элементы верхнего уровня --> </xsl:stylesheet> Корневой элемент преобразования. • id — идентификатор преобразования; • extension-element-prefixes — префиксы элементов расширения; • exclude-result-prefixes — префиксы, не включаемые в выходящий документ; • version — версия языка XSLT <xsl:template match="паттерн" namе="имя" priority="число" modе="имя"> <!-- Содержимое: несколько элементов xsl:param, шаблон --> </xsl:template> Элемент верхнего уровня. Определяет шаблонное правило. • match — содержит паттерн, которому должны удовлетворять узлы, обрабатываемые данным шаблоном; • name — имя шаблона; • priority — приоритет шаблона; • mode — режим шаблона <xsl:text disable-output-escaping="yes" | "no"> <!-- Содержимое: символьные данные --> </xsl:text> Инструкция. Создает в выходящем документе текстовый узел. Пробельные символы, находящиеся внутри xsl:text, не удаляются. • disable-output-escaping — определяет, должны ли в выходящем документе особые символы этого текстового узла заменяться на сущности <xsl:transform id="идентификатор" extension-element-prefixes="префиксы" exclude-result-prefixes="префиксы" version="число"> <!-- Содержимое: несколько элементов xsl:import, элементы верхнего уровня --> </xsl:transform> Корневой документ преобразования. Псевдоним элемента xsl:stylesheet <xsl:value-of select="выражение" disable-output-escaping="yes" | "no"/> Инструкция. Создает в выходящем документе текстовый узел, содержащий результат вычисления выражения, приведенный к строке. • select — содержит вычисляемое выражение; • disable-output-escaping — определяет, должны ли в выходящем документе особые символы этого текстового узла заменяться на сущности <xsl:variable name="имя" select="выражение" > <!-- Содержимое: шаблон --> </xsl:variable> Инструкция, элемент верхнего уровня. Создает глобальную или локальную переменную. Значение переменной не может быть изменено. • name — задает имя определяемой переменной; • select — задает значение определяемой переменной <xsl:when test="выражение"> <!-- Содержимое: шаблон --> </xsl:when> Субэлемент элемента xsl:choose. Выполняется один из вариантов в блоке xsl:choose в зависимости от условия. • test — задает выражение логического условия <xsl:with-param name="имя" select="выражение"> <!-- Содержимое: шаблон --> </xsl:with-param> Субэлемент элементов xsl:apply- templates, xsl:call-template. Задает значение одного параметра при вызове параметризованного шаблона. • name — имя параметра; • select — выражение, значение которого должно быть передано как параметр. В случае, если атрибут select не определен, значением передаваемого параметра является дерево, полученное в результате выполнения содержимого xsl:with-param. Если элемент при этом пуст, значением параметра является пустая строка