- •Часть №1
- •Лабораторная работа №1 Структура xml документа
- •Лабораторная работа №2 Пространство имен и сущности
- •Лабораторная работа №3 Комментарии, разделы cdata,инструкции по обработке
- •Часть№2
- •Лабораторная работа №1 Синтаксис dtd
- •Лабораторная работа №2 Дочернее содержимое элемента, задание смешанного содержимого
- •Лабораторная работа №3 Атрибуты
- •Лабораторная работа №5 Валидность документа dtd
- •Лабораторная работа №4 Подмножества dtd
- •Валидность документа
- •Требования корректности формирования и валидности
- •Лабораторная работа №6 Общие внутренние и внешние примитивы dtd.
- •Xод работы:
- •Лабораторная работа №7 Параметрические внутренние и внешние примитивы
- •Xод работы:
- •Лабораторная работа №8 Ссылки на примитивы
- •Xод работы:
- •Использование предварительно определенных примитивов
- •Создайте xml-документ с использованием предварительно определенных примитивов и ссылками на примитивы на любую тематаку.
- •Отобразите документ в браузере Часть №3
- •Изучить встроенные простые типы данных xmlShema.
- •Xод работы:
- •Типы long, int, short и byte
- •Отобразите документ в браузере Лабораторная работа №2 Определение простых типов данных и пространство имен
- •Сужение
- •Не более чем из пяти целых чисел следующим образом:
- •Создайте xmlShema документ с простыми типами данных и пространством имен имен, для этого сделайте следующие:
- •Лабораторная работа №3 Объявление элементов и их атрибутов
- •Создание группы элементов и атрибутов в сложном типе
- •Лабораторная работа №5 Определение типа со сложным телом,
- •Лабораторная работа №6 Аннотирование схем, включение файлов схемы в другую схему
- •Часть №4
- •Лабораторная работа №1 Входной и выходной документы, инструкция обработки и корневой элемент
- •Лабораторная работа №2 Описание структуры с помощью шаблонов
- •Лабораторная работа №3 Встроенные шаблонные правила
- •Лабораторная работа №4 Модульная организация преобразования
- •Лабораторная работа №5 Инструкции управления
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Часть №5
- •Лабораторная работа №1 Интерфейс программы и создание xsd документа
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Xslt трансформация
- •Лабораторная работа №4 Создание документа dtd и его применение к xml.Конвертирование dtd в Shema.
- •Напечатайте следующий тест:
Лабораторная работа №6
Изменение структуры документа на основе входных данных
Цель работы:
Изучить инструкции позволяющие изменить структуру документа на основе входных данных
Ход работы:
Инструкции xsl:attribute, xsl:element, декларация xsl:attribute-set
Язык XSLT позволяет не только преобразовывать уже существующие узлы,
но и создавать новые.
Инструкций xsi:attribute и xsi:element по одному обязательному атрибуту name, задающему имя атрибута или элемента. Значение атрибута или содержимое элемента записывается в теле инструкций конструктором последовательности. Например:
<xsl:attribute name="attrl">Valuel</xsl:attribute>
<xsl:element name="eleml">Contentl</xsl:element>
Кроме обязательного атрибута name у обеих инструкций есть одинаковые необязательные атрибуты. Необязательный атрибут namespace определяет пространство имен. Необязательные атрибуты validation и type позволяют процессору сделать проверку типа атрибута или элемента, определенного в схеме документа.
Еще один полезный элемент — декларация xsi:attribute-set — позволяет объединить определения нескольких атрибутов под одним именем, которое затем можно будет использовать в элементах xsi:element, xsi:сору или в другом элементе xsi:attribute-set.
У декларации xsi:attribute-set есть один обязательный атрибут name, именующий множество атрибутов. Сами атрибуты определяются в теле декларации. В следующем примере создается два множества атрибутов AS1 И AS2, каждое множество содержит определения двух атрибутов:
<xsl:attribute-set name="ASl">
<xsl:attribute name="attrll">attrll-value</xsi:attribute>
<xsl:attribute name="attrl2">attrl2-value</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="AS2">
<xsl:attribute name="attr21">attr21-value</xsl:attribute>
<xsl:attribute name="attr22">attr22-value</xsl:attribute>
</xsl:attribute-set>
У инструкции xsl:element тоже есть необязательный атрибут use-attribute-sets, с помощью которого создаются атрибуты элемента из предварительно определенного множества атрибутов. В следующем примере создается элемент someeiem с четырьмя атрибутами из множеств ASI И AS2:
<xsl:template match="elem">
<xsl:element name="someelem" use-attribute-sets="ASl AS2">
Какое-то содержимое
</xsl:element>
</xsl:template>
Создайте таблицу стилей с использованием инструкций xsl:element и xsl:attribute,для этого сделайте следующее:
Создайте документ для таблицы стилей под названием ElAt.xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="text" encoding="windows-1251"/>
<xsl:template match="/name">
<xsl:element name="myElement">
<xsl:attribute name="{name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Примените эту таблицу стилей к документу из листинга 3.7, для этого добавьте после <?xml version="1.0" encoding="windows-1251"?> инструкцию обработки со ссылкой на таблицу стилей:
<?xml-stylesheet type="text/xsl" href=" ElAt.xsl "?> и сохраните под именем ElAt.xml
Откройте документ ElAt.xml. в браузере у вас должно получится то, что представлено на рисунке 4.10
Рисунок 4.10
