
- •Часть №1
- •Лабораторная работа №1 Структура xml документа
- •Лабораторная работа №2 Пространство имен и сущности
- •Лабораторная работа №3 Комментарии, разделы cdata,инструкции по обработке
- •Часть№2
- •Лабораторная работа №1 Синтаксис dtd
- •Лабораторная работа №2 Дочернее содержимое элемента, задание смешанного содержимого
- •Лабораторная работа №3 Атрибуты
- •Лабораторная работа №4 Подмножества dtd
- •Лабораторная работа №5 Валидность документа 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.
- •Напечатайте следующий тест:
Лабораторная работа №2 Описание структуры с помощью шаблонов
Цель работы:
Изучить шаблоны(элементы) описывающие структуры XSLT
Ход работы:
Элемент xsl:template
Для управления выходными данными, формируемыми из определенных входных данных, в таблицу стилей XSLT следует добавить шаблоны. Каждый шаблон представлен элементом xsl:template. Этот элемент имеет атрибут match, содержащий образец XPath, определяющий входные данные, которым соответствует данный шаблон
<xsl:template match="name">Сергей </xsl:template>
Создайте документ с элементом <xsl:template>,для этого сделайте следующие:
Создайте документ для таблицы стилей под названием template.xsl:
<?xml version="l.0" encoding="windows-1251" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="person">Человек</xsl:template>
</xsl:stylesheet>
Простейший образец – это имя элемента. В частности, данный шаблон говорит о том, что каждый раз, когда встречается элемент person, процессор таблиц стилей генерирует текст «Человек»:
<xsl:template match="person">Человек</xsl:template>
Примените эту таблицу стилей к документу из листинга 3.7, для этого добавьте после <?xml version="1.0" encoding="windows-1251"?> инструкцию обработки со ссылкой на таблицу стилей:
<?xml-stylesheet type="text/xsl" href=" template.xsl "?> и сохраните под именем template.xml
Откройте template.xml в браузере, у вас должно получится то, что на рисунке 4.1:
Рисунок 4.1
Упражнения для самостоятельной работы
С помощью листинга 3.7 и элемента <xsl:template> сделайте так что бы при встрече элемента <first_name> генерировался текст Алан , <last_name>- Тьюринг,а при элементе <profession> генерировалось все три вида профессии
Отобразите в браузере
Элемент xsl:value-of
Одним из наиболее полезных элементов является xsl:value-of. Этот элемент рассчитывает строковое значение заданного входного элемента и вставляет его в выходной документ. Значение элемента – это его текстовое содержимое после удаления всех тегов. Атрибут select, содержащий выражение XPath, задает элемент, из которого берется значение
Пример синтаксиса:
<xsl:template match="name">
<xsl:value-of select="last_name"/>,
<xsl:value-of select="first_name"/>
</xsl:template>
Создайте xml документ с элементом xsl:value-of для этого сделайте следующие:
Предположим, например, что вы хотите извлечь из входного документа имена всех людей, для этого файл с таблицей стилей под названием value-of.xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="CP866" />
<xsl:template match="person">
<xsl:value-of select="name"/>
</xsl:template>
</xsl:stylesheet>
Примените эту таблицу стилей к документу из листинга 3.7, для этого добавьте после <?xml version="1.0" encoding="windows-1251"?> инструкцию обработки со ссылкой на таблицу стилей:
<?xml-stylesheet type="text/xsl" href=" value-of.xsl "?> и сохраните под именем value-of.xml
Откройте value-of.xml в браузере, у вас должно получится то, что на рисунке 4.2:
Рисунок 4.2
Упражнения для самостоятельной работы
С помощью листинга 3.7 и элемента < value-of > извлеките профессии людей
Отобразите в браузере
Элемент xsl:apply-templates
Элемент xsl:apply-templates позволяет сделать явный выбор порядка обработки элементов.
Пример синтаксиса:
<xsl:template match="cd">
<xsl:apply-templates select="artist"/>
</xsl:template>
Создайте xml документ с элементом xsl:apply-templates для этого сделайте следующие:
Предположим, например, что вы хотите перечислить имена людей из входного документа(листинг 3.7), однако сначала хотите вывести фамилии (last _name) независимо от порядка, в котором имена и фамилии присутствуют во входном документе, и не хотите выводить профессии и хобби, создайте файл для таблицы стилей под названием apply-templates.xsl и напишите следующие:
<xsl:template match="name">
<xsl:value-of select="last_name"/>,
<xsl:value-of select="first_name"/>
</xsl:template>
Вам также потребуется шаблон для per son, который говорит о том, что шаблоны должны применятся к элементам name, но не к другим дочерним элементам, таким как profession и hobby. Добавьте следующий шаблон к выше написанному:
<xsl:template match="person">
<xsl:apply-templates select="name"/>
</xsl:template>
Допишите инструкцию по обработке:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="CP866" />
<xsl:template match="name">
<xsl:value-of select="last_name"/>,
<xsl:value-of select="first_name"/>
</xsl:template>
<xsl:template match="person">
<xsl:apply-templates select="name"/>
</xsl:template>
</xsl:stylesheet>
Примените эту таблицу стилей к документу из листинга 3.7, для этого добавьте после <?xml version="1.0" encoding="windows-1251"?> инструкцию обработки со ссылкой на таблицу стилей:
<?xml-stylesheet type="text/xsl" href=" apply-templates.xsl "?> и сохраните под именем apply-templates.xml
Откройте apply-templates xml в браузере, у вас должно получится то, что на рисунке 4.3:
Рисунок 4.3.
Упражнения для самостоятельной работы
На сонове пройденного матирала создайте xml документ,который использует таблицу стилей в которой присутствуют все три элемента XSL
Отобразите в браузере