- •Лабораторная работа 4-03
- •3.1.2. Пространство имен xslt
- •3.1.3. Корневые элементы и элементы верхнего уровня документаXslt
- •3.1.4. Условное включение элемента
- •3.1.5. Модульная структура преобразованийXslt
- •3.1.4. Совместное использование преобразований и документов xml
- •3.2. Управление выводом в xslt
- •3.2.1. Элементxsl:output
- •3.2.2. Метод вывода "xml"
- •3.2.3. Метод вывода "xhtml"
- •3.2.4. Метод вывода "html"
- •3.2.5. Метод вывода "text"
- •3.3.Язык xslt
- •3.3.1. Образцы и шаблоны
- •3.3.2. Объявлениешаблона
- •3.3.3. Вызов неименованных правил шаблона
- •3.3.4. Создание узлов элементов и атрибутов вXslt
- •3.3.4.1. Элемент xsl:element
- •3.3.4.2. Элементxsl:attribute
- •3.3.4.3. Элементxsl:attribute-set
- •3.3.5. Создание текстовых узлов вXslt
- •3.3.5.1. Элементxsl:text
- •3.3.5.2. Элементxsl:value-of
- •3.3.5.3. Встроенные правила шаблона
- •3.3.5.4. Обработка пробельных символов
- •3.3.6. Создание узлов документа, комментариев, инструкций по обработке и пространства имен в xslt
- •3.3.6.1. Элемент xsl:document
- •3.3.6.2. Элементxsl:result-document
- •3.3.6.3. Элементxsl:comment
- •3.3.6.4. Элемент xsl:processing-instruction
- •3.3.6.5. Элементxsl:namespace
- •3.3.7. Копирование узлов вXslt
- •3.3.7.1. Элементxsl:copy
- •3.3.7.2. Элементxsl:copy-of
- •3.3.7.3. Элементxsl:sequence
- •3.3.8. Условная и циклическая обработка вXslt
- •3.3.8.1. Элементxsl:if
- •3.3.8.2. Элементы xsl:choose, xsl:when и xsl:otherwise
- •3.3.8.3. Элементxsl:for-each
- •3.3.9. Сортировка в xslt
- •3.3.10. Нумерация в xslt
- •3.3.11. Переменные и параметры в xslt
- •3.3.11.1. Переменные в xslt
- •3.3.11.2. Вызов именованных правил шаблона
- •3.3.11.3. Параметры в xslt
- •3.4. Выполнение преобразований документов в xmlSpy
- •3.4.1. Создание документа xslt
- •3.4.2. Выполнение преобразования xslt
- •4. Порядок выполнения работы
- •Вариант 5-01
- •Вариант 5-02
- •Вариант 5-03
- •Вариант 5-04
- •Вариант 5-05
- •Вариант 5-06
- •Вариант 5-07
- •Вариант 5-08
- •Вариант 5-09
- •Вариант 5-10
- •Вариант 5-11
- •Вариант 5-12
- •Вариант 5-13
- •Вариант 5-14
- •Вариант 5-15
- •Вариант 5-16
- •Вариант 5-17
- •Вариант 5-18
- •Вариант 5-19
- •Вариант 5-20
- •Вариант 5-21
- •Вариант 5-22
- •Вариант 5-23
- •Вариант 5-24
- •Вариант 5-25
- •Вариант 5-26
- •Вариант 5-27
- •Вариант 5-28
- •Вариант 5-29
- •Вариант 5-30
- •5. Содержание отчета
- •6. Вопросы для самоконтроля
3.3.6. Создание узлов документа, комментариев, инструкций по обработке и пространства имен в xslt
3.3.6.1. Элемент xsl:document
Новый узел документа создается с помощью следующей инструкции:
<xsl:document
type="имя"
validation="strict" | "lax" | "preserve" | "strip"
>
<!--
Содержимое: конструктор последовательности
-->
</xsl:document>
Атрибут typeзадает проверку создаваемого узла документа на соответствие типу, заданному в значении атрибута и определенному в схеме документа.
Атрибут validationопределяет действия по проверке действительности создаваемого атрибута. Значения "preserve" и "strip" не требуют проверки узлов документа, причем в первом случае копируемые в новый документ узлы элементов и атрибутов сохраняют свой тип, а во втором – элементы получают типxs:untyped, а атрибуты – типxs:untypedAtomic. Если же задано значение "strict" или "lax", то в случае, если наследниками узла документа не является один узел элемента, а также, возможно, узлы комментариев и инструкций по обработке, выдается сообщение об ошибке. Затем выполняется проверка дочернего узла элемента в документе. Если проверяемый узел не соответствует своей схеме, также выдается сообщение об ошибке.
Атрибуты typeиvalidationявляются взаимоисключающими, т.е. в элементе может быть задан только один из этих атрибутов.
3.3.6.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 узла документа в корне конечной результирующей иерархической структуры.
