
- •Лекция 4-08
- •5.3.9. Создание текстовых узлов вXslt
- •5.3.9.1. Элементxsl:text
- •5.3.9.2. Элементxsl:value-of
- •5.3.9.3. Встроенные правила шаблона
- •1. Поздравление
- •2. Напоминание
- •5.3.9.4. Обработка пробельных символов
- •5.3.10. Создание узлов документа, комментариев, инструкций по обработке и пространства имен вXslt
- •5.3.10.1. Элемент xsl:document
- •5.3.10.2. Элементxsl:result-document
- •5.3.10.3. Элементxsl:comment
- •5.3.10.4. Элемент xsl:processing-instruction
- •5.3.10.5. Элементxsl:namespace
- •5.3.11. Копирование узлов вXslt
- •5.3.11.1. Элементxsl:copy
- •5.3.11.2. Элементxsl:copy-of
- •5.3.11.3. Элементxsl:sequence
- •5.3.12. Условная и циклическая обработка вXslt
- •5.3.12.1. Элементxsl:if
- •5.3.12.2. Элементы xsl:choose, xsl:when и xsl:otherwise
- •5.3.12.3. Элементxsl:for-each
- •5.3.12.4. Сортировка вXslt
- •5.3.13. Сообщения процессораXslt
- •5.3.14. Псевдонимы пространства имен вXslt
- •5.3.15. Нумерация вXslt
- •3. Поздравление
- •1. Поздравление
- •1. Поздравление
- •01). Поздравление
- •0:00:00:00:01)Поздравление
- •5.3.16. Форматирование чисел в xslt
- •5.3.17. Использование ключей вXslt
- •5.3.18. Переменные, параметры и функции вXslt
- •5.3.18.1. Переменные в xslt
- •5.3.18.2. Вызов именованных правил шаблона
- •5.3.18.3. Параметры в xslt
- •5.3.18.4. Функции стилей в xslt
- •5.3.19. Дополнительные функции xslt
- •5.3.19.1. Функцияdocument()
- •5.3.19.2. Функцияcurrent()
- •5.3.19.3. Функцияgenerate-id()
- •5.3.19.4. Функция system-property()
- •5.3.19.5. Функцияunparsed-entity-uri()
- •5.3.20 Использование расширений вXslt
- •5.3.20.1. Средства расширенияXslt
- •5.3.20.2. Инициатива exslt
- •5.3.20.3. Средства расширения в процессореMsxml
- •5.3.20.4. Средства расширения в процессореSaxon
5.3.10.2. Элементxsl:result-document
Элемент-инструкция xsl:result-documentиспользуется для создания конечной результирующей иерархической структуры и имеет следующий синтаксис:
<xsl:result-document
format="имя"
href="URI"
type="имя-типа"
validation="strict" | "lax" | "preserve" | "strip"
method="xml" | "html" | "xhtml" | "text" | "имя"
byte-order-mark="yes" | "no"
cdata-section-elements="имена"
doctype-public="строка"
doctype-system="строка"
encoding="строка"
escape-uri-attributes="yes" | "no"
include-content-type="yes" | "no"
indent="yes" | "no"
media-type="строка"
normalization-form="NFC" | "NFD" | "NFKC" | "NFKD" |
"fully-normalized" | "none" | "имя"
omit-xml-declaration="yes" | "no"
standalone="yes" | "no" | "omit"
undeclare-prefixes="yes" | "no"
use-character-maps="имена"
output-version="строка"
>
<!--
Содержимое: конструктор-последовательности
-->
</xsl:result-document>
Все атрибуты элемента result-documentявляются необязательными.
Атрибуты typeиvalidationдействуют так же, как в элементеxsl:element.
Атрибуты byte-order-mark, cdata-section-elements, doctype-public, doctype-system, encoding, escape-uri-attributes, include-content-type, indent, media-type, normalization-form, omit-xml-declaration, standalone, undeclare-prefixes и use-character-maps действуют так же, как в элементе xsl:output. За исключением атрибутаuse-character-maps, все эти атрибуты могут иметь вычисляемые значения.
Атрибут output-versionдействует так же, как и атрибутversionэлементаxsl:output.
Атрибут formatзадает имя, к которому добавляется префикс пространства имен (если он есть) в области видимости элементаresult-document. Расширенное значение имени должно соответствовать одному из имен в именованных элементахxsl:output. В этом случае формирование выходного документа будет выполняться под управлением именованного определения выводаxsl:outputс заданным именем. Если атрибутformatне задан, формирование выходного документа будет выполняться под управлением неименованного определения выводаxsl:output.
Атрибут hrefзадает базовыйURI узла документа в корне конечной результирующей иерархической структуры.
5.3.10.3. Элементxsl:comment
Элемент-инструкция xsl:commentсоздает в результирующем дереве узел комментария. Текстом комментария становится результат выполнения шаблона, который содержится в элементеxsl:comment. Этот элемент имеет следующий синтаксис:
<xsl:comment
select="выражение"
>
<!--
Содержимое: конструктор последовательности
-->
</xsl:comment>
Необязательный атрибут selectзадает строковое значение нового текстового узла (альтернативным является задание значения нового текстового узла в конструкторе последовательности элементаxsl:comment).
В соответствии с синтаксисом XML, комментарий вXMLне может содержать символов "--" и оканчиваться на символ "-". Поэтому наличие таких последовательностей символов в тексте комментария будет являться вXSLTошибкой. Для того чтобы избежать некорректного синтаксиса, процессор может разделять два последовательных минуса пробелом (заменять "--" на "- -") или добавлять пробел после завершающего минуса комментария.
Пример создания комментария:
Элемент:
<xsl:comment>

 Новое сообщение

</xsl:comment>
создаст в документе XMLилиHTMLкомментарий:
<!--
Новое сообщение
-->.