- •Часть №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.
- •Напечатайте следующий тест:
Лабораторная работа №5 Инструкции управления
xsl:if, xsl:for-each, xsl:choose
Цель работы:
Изучить инструкции управления xsl:if, xsl:for-each, xsl:choose
Ход работы:
Язык XSLT наделен элементами, играющими роль операторов управления, таких же как в алгоритмических языках: условного оператора, оператора цикла, оператора варианта:
Элемент xsl:if осуществляет проверку условия и принимает действия на основе результата проверки, записанное в обязательном и единственном атрибуте test:
<xsl:if test="$x > $у">
<xsl:value-of select="$x" /> больше <xsl:value-of select="$y" />
</xsl:if>
Создайте таблицу стилей c элементом xsl:if и примените его для xml документа? , для этого сделайте следующее:
Допустим, что для листинга 3.7 необходимо создать такое условие, что бы в результате проверки появилась надпись- Это ученые: Алан Тьюринг и Ричард Фейман, для этого нужно создать файл таблицы стилей под названием If.xsl:
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="windows-1251"/>
<xsl:template match="people">
<Document>
<Title>
The People
</Title>
<people>
Это ученые: Алан Тьюринг и Ричард Фейман
</people>
</Document>
</xsl:template>
<xsl:template match="name">
<xsl:value-of select="first_name"/>
<xsl:if test="position()=last()">and</xsl:if>
</xsl:template>
</xsl:stylesheet>
Примените эту таблицу стилей к документу из листинга 3.7, для этого добавьте после <?xml version="1.0" encoding="windows-1251"?> инструкцию обработки со ссылкой на таблицу стилей:
<?xml-stylesheet type="text/xsl" href="If.xsl"?> и сохраните под именем If.xml
Откройте документ If.xml в браузере у вас должно получится то, что представлено на рисунке 4.8
Рисунок 4.8
Упражнения для самостоятельной работы
Придумайте свой вариант использования в таблице стилей элемента if и примените его к xml документу
Отобразите в браузере
Применение xsl:choose
Элемент xsl:choose позволяет сравнивать значения условия с несколькими возможными вариантами. У него нет атрибутов, содержит один или несколько элементов <xsl:when>
<xsl:choose>
<xsl:when test="@COLOR ='Blue'">
<xsl:value-of select="first_name"/>
</xsl:when>
<xsl:when test="@COLOR ='Green'">
<xsl:value-of select ="last_name"/>
</xsl:when>
</xsl:choose>
Упражнения для самостоятельной работы
Используйте данный элемент для таблицы стилей if.xsl и примените его для xml документа
Отобразите полученное в браузере
xsl:for-each
Элемент xsl:for-each позволяет применять тело шаблона в цикле снова и снова для всех элементов набора узлов. Он имеет один атрибут select.
<table>
<xsl:for-each select="name">
<tr>
<td><xsl:value-of –select="@first"/> </td>
<td><xsl:value-of -select="@second"/> </td>
<td><xsl: value-of -select="@surname"/> </td>
</tr>
</xsl:for-each>
</table>
Создайте таблицу стилей c элементом xsl:for-each и примените его для xml документа, для этого сделайте следующее:
Создайте документ для таблицы стилей под названием for-each.xsl:
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="CP866" />
<xsl:template match="people">
<people>
<xsl:for-each select="person">
<person>
<xsl:for-each select="*">
<data>
<xsl:value-of select="."/>
</data>
</xsl:for-each>
</person>
</xsl:for-each>
</people>
</xsl:template>
</xsl:stylesheet>
Данная таблица проходит в цикле по каждому элементу <people>,а затем во вложенном в него цикле по всем элементам ,содержащимся в элементе <people>,перечисляя их данные из элементов <data>
Примените эту таблицу стилей к документу из листинга 3.7, для этого добавьте после <?xml version="1.0" encoding="windows-1251"?> инструкцию обработки со ссылкой на таблицу стилей:
<?xml-stylesheet type="text/xsl" href="for-each xsl"?> и сохраните под именем for-each. xml
Откройте документ for-each xml. в браузере у вас должно получится то, что представлено на рисунке 4.9
Рисунок 4.9
Упражнения для самостоятельной работы
Придумайте свой вариант использования в таблице стилей элемента for-each и примените его к xml документу
Отобразите в браузере
