XSL: комментарии (xsl:comment), инструкции обработки (xsl:processing-instruction) и сообщения (xsl:message)

XSL помимо основных узлов xml-дерева способен обрабатывать комментарии, инструкции обработки и выводить сообщения. Достигается это с помощью инструкций xsl:commentxsl:processing-instructionxsl:message.

Инструкция xsl:comment

Комментарии, непосредственно размещенные в шаблоне, в конечное дерево не переносятся (в отличие от фиксированных конечных элементов и текстовых узлов). Они являются комментариями исключительно для xsl-файла, в котором они размещены. Для создания комментариев в конечном дереве используется инструкция xsl:comment.

Синтаксис:

Содержимое инструкции xsl:comment определяет содержимое создаваемого комментария. Содержимым могут быть другие инструкции, фиксированные конечные элементы и текст. Если при обработке содержимого xsl:comment создаются узлы, не являющиеся строковыми, то в зависимости от реализации процессора либо будет зафиксирована ошибка, либо неправильные узлы вместе с их содержимым будут проигнорированы и в конечное дерево не войдут. Также если результат обработки содержимого xsl:comment содержит строку -- или заканчивается символом -, то опять же в зависимости от реализации процессора либо будет зафиксирована ошибка, либо после каждого символа будет поставлен пробел (если за ним идет другой символ или конец строки).

Инструкция xsl:processing-instruction

Инструкции обработки, непосредственно размещенные в шаблоне, в конечное дерево не переносятся (в отличие от фиксированных конечных элементов и текстовых узлов). Они являются инструкциями обработки исключительно для xsl-файла, в котором они размещены. Если же возникает необходимость включить в конечное дерево инструкцию обработки, то для этого используется специальная инструкция xsl:processing-instruction, которая и создает инструкцию обработки в конечном дереве.

Синтаксис:

Атрибуты:

  • name – обязательный атрибут, определяет название создаваемой инструкции обработки. Его значением может быть строка или выражение XPath.

Содержимое инструкции xsl:processing-instruction определяет содержимое создаваемой инструкции обработки (как правило, это дополнительные атрибуты инструкции обработки). Содержимым могут быть другие инструкции, фиксированные конечные элементы и текст. Например:

создаст в конечном дереве вот такую инструкцию обработки:

Инструкцию xsl:processing-instruction нельзя использовать для вывода XML декларации. Вместо нее для этого необходимо использовать элемент верхнего уровня xsl:output. Если при обработке содержимого инструкции xsl:processing-instruction создаются узлы, не являющиеся текстовыми, то в зависимости от реализации процессора либо будет зафиксирована ошибка, либо неправильные узлы вместе с их содержимым будут проигнорированы и в конечное дерево не войдут. Если результат обработки инструкции xsl:processing-instruction содержит строку ?>, то опять же в зависимости от реализации процессора либо будет зафиксирована ошибка, либо указанные символы будут разделены пробелом.

Инструкция xsl:message

В процессе XSLT-преобразования можно выводить сообщения. Делается это с помощью инструкции xsl:message. Как именно эти сообщения будут выводить зависит от XSLT-процессора: это может быть модальное окно, запись в лог-файл или что-либо другое.

Синтаксис:

Атрибуты:

  • terminate — определяет, должен ли процессор прервать обработку xml-документа после вывода сообщения (yes) или нет (no). По умолчанию берется значение no.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *