
- •Часть №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.
- •Напечатайте следующий тест:
Лабораторная работа №7
Преобразование документа XML в документ HTML
Цель работы:
Изучить процесс преобразования XML документа в документ HTML
Хо дработы:
Ключем к преобразованию документа XML в документа HTML является элемент <xsl:output method="text" encoding="UTF-8" />,вам необходимо поменять метод вывода с text на html,для реализации преобразования.
Преобразуйте xml документ в html,для этого сделайте следующее:
Создайте документ под названием PreobrXvH.xml
<?xml version="1.0" encoding="windows-1251" ?>
<?xml-stylesheet type="text/xsl" href=" PreobrXvH.xsl "?>
<notebook>
<person>
<name first="Ивaн" second="Петрович" surname="Сидоров" />
<address>
<street>Caдовая, 12 — 34</street>
<city>Новокозлосвк</city>
<zip>123321</zip>
</address>
<phone-list>
<work-phone>123456</work-phone>
<home-phone>654321</home-phone>
</phone-list>
</person>
<person>
<name first="Mapия" second="Ивановна" surname="Федорова" />
<address>
<street>Нижняя, 12</street>
<city>3apeченкс</city>
<zip>321123</zip>
</address>
<phone-list>
<home-phone>22432l</home-phone>
</phone-list>
</person>
</notebook>
Теперь создайте таблиц стилей под названием PreobrXvH.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="/">
<html><head><title>Адресная книжка</title></head>
<body><h2>Фамилии,адреса и телефоны</h2>
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="name">
<p />
<xsl:value-of select="@first" /> <xsl:text> </xsl:text>
<xsl:value-of select="@second" /> <xsl:text> </xsl:text>
<xsl:value-of select="@surname" /> <br />
</xsl:template>
<xsl:template match="address">
<br />
<xsl:value-of select="street" /> <xsl:text> </xsl:text>
<xsl:value-of select="city" /> <xsl:text> </xsl:text>
<xsl:value-of select="zip" /> <br />
</xsl:template>
<xsl:template match="phone-list">
Рабочий: <xsl:value-of select="work-phone" /> <br />
Домашний: <xsl:value-of select="home-phone" /> <br />
</xsl:template>
</xsl:stylesheet>
Отобразите PreobrXH.xml в браузере, у вас должно получится то, что представлено на рисунке 4.11
Рисунок 4.11
Лабораторная работа №8
Таблицы стилей CSS
Цель работы:
Изучить таблицы стилей CSS
Ход работы:
CSS – это отличный от XML синтаксис, используемый для описания внешнего вида определенных элементов документа. CSS – это очень простой язык. Никаких преобразований не производится; обработанные символьные данные документа отображаются примерно так же, как они присутствуют в XML-документе, однако если требуется перегруппировать содержимое документа перед отображением его
пользователю, всегда можно преобразовать документ с помощью XSLT и затем применить к нему таблицу стилей CSS. Таблица стилей CSS никак не меняет разметку XML-документа. Она лишь применяет правила к уже существующей разметке.
Откройте новый, пустой текстовый файл в вашем текстовом редакторе и заполните CSS-таблицу, как показано в Листинге 1.1
С помощью команды Save вашего текстового редактора сохраните таблицу стиля на жестком диске, задав имя файла Inventory01.css. Созданная вами CSS-таблица сообщает Mozilla Firefox, каким образом форматировать символьные данные элементов.
Отображать каждый элемент BOOK с отступом сверху в 12 пт (margin-top:12pt) с переводом строки сверху и снизу (display:block), используя размер шрифта 10 пт (font-size:10pt).
Отображать каждый элемент TITLE курсивом (font-style:italic).
Отображать каждый элемент AUTHOR полужирным (font-weight:bold).
Листинг 1.1
/* File Name: Inventory01.css */
BOOK
{display:block;
margin-top:12pt;
font-size:10pt}
TITLE
{font-style:italic}
AUTHOR
{font-weight:bold}
В вашем текстовом редакторе откройте документ Inventory.xml, созданный вами в предыдущем упражнении. Добавьте в конце пролога документа (непосредственно над элементом INVENTORY) следующую инструкцию по обработке:
<?xml-stylesheet type="text/css" href="Inventory01.css"?>
Эта инструкция по обработке устанавливает связь созданной вами CSS-таблицы и XML-документа. В результате при открытии документа в Mozilla Firefox браузер отобразит содержимое документа в соответствии с инструкциями, записанными в таблице стилей.
Чтобы отразить новое имя файла, которое вы собираетесь присвоить, измените комментарий в начале документа с
<!-- File Name: Inventory.xml -->
на
<!-- File Name: Inventory01.xml -->
В Листинге 1.2 представлен весь XML-документ.
Воспользуйтесь командой Save As (Сохранить как) вашего текстового редактора, чтобы сохранить копию измененного документа под именем Inventory01.xml. Проверьте, чтобы этот файл был сохранен в той же папке, что и файл Inventory01.css.
<?xml version="1.0"?>
<!-- File Name: Inventory01.xml -->
<?xml-stylesheet type="text/css" href="Inventory01.css"?>
<INVENTORY>
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
<BOOK>
<TITLE>The Legend of Sleepy Hollow</TITLE>
<AUTHOR>Washington Irving</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>98</PAGES>
<PRICE>$2.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Marble Faun</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>473</PAGES>
<PRICE>$10.95</PRICE>
</BOOK>
<BOOK>
<TITLE>Moby-Dick</TITLE>
<AUTHOR>Herman Melville</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>724</PAGES>
<PRICE>$9.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Portrait of a Lady</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>256</PAGES>
<PRICE>$4.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Scarlet Letter</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>253</PAGES>
<PRICE>$4.25</PRICE>
</BOOK>
<BOOK>
<TITLE>The Turn of the Screw</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>384</PAGES>
<PRICE>$3.35</PRICE>
</BOOK>
</INVENTORY>
Откройте документ Inventory01.xml браузером Mozilla Firefox у вас должно получится то что показано на рисунке 4.12:
Рисунок 4.12
В вашем текстовом редакторе откройте документ Inventory.xml. Добавьте в конце пролога документа (над элементом INVENTORY) следующую инструкцию по обработке:
<?xml-stylesheet type="text/css" href="Inventory02.css"?>
Эта инструкция по обработке устанавливает связь между новой CSS-таблицей, созданной вами, и XML-документом.
Чтобы отразить новое присвоенное вами имя файла, измените комментарий в начале документа с
<!-- File Name: Inventory.xml -->
на
<!-- File Name: Inventory02.xml -->
В Листинге 1.2 представлен полный XML-документ.
Воспользуйтесь командой Save As (Сохранить как), чтобы сохранить копию измененного документа под именем Inventory02.xml. Проверьте, чтобы этот файл был сохранен в той же папке, что и файл Inventory02.css.
<?xml version="1.0"?>
<!-- File Name: Inventory02.xml -->
<?xml-stylesheet type="text/css" href="Inventory02.css"?>
<INVENTORY>
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
<BOOK>
<TITLE>The Legend of Sleepy Hollow</TITLE>
<AUTHOR>Washington Irving</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>98</PAGES>
<PRICE>$2.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Marble Faun</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>473</PAGES>
<PRICE>$10.95</PRICE>
</BOOK>
<BOOK>
<TITLE>Moby-Dick</TITLE>
<AUTHOR>Herman Melville</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>724</PAGES>
<PRICE>$9.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Portrait of a Lady</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>256</PAGES>
<PRICE>$4.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Scarlet Letter</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>253</PAGES>
<PRICE>$4.25</PRICE>
</BOOK>
<BOOK>
<TITLE>The Turn of the Screw</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>384</PAGES>
<PRICE>$3.35</PRICE>
</BOOK>
</INVENTORY>
Откройте документ Inventory01.xml браузером у вас должно получится то что показано на рисунке 4.13 и браузер откроет документ Inventory02.xml и отобразит его в соответствии с правилами, установленными в связанной таблице стилей Inventory02.css.
Рисунок 4.13:
XSL-FO
Язык форматирования XSL — это одна из реализаций XML. Сейчас в язык XSL входят
только средства форматирования, поэтому его часто называют "XSL-FO". Язык XSL объявляет более пятидесяти элементов XML. Имена этих элементов находятся в пространстве имен http://www.w3.org/1999/XSL/Format, которому обычно дают префикс fo. Эти элементы как раз и образуют классы объектов форматирования.
Элементы XSL-FO
Корневым элементом документа XSL служит элемент fo:root. В него вкладывается один или несколько элементов fo:page-sequence, описывающих весь набор страниц в целом, и ровно один элемент fo: layout-master-set, содержащий подробные описания страниц во вложенных в него элементах. Кроме этих элементов непосредственно в корневой элемент можно вложить только элемент fo:declaration, содержащий информацию для форматера
Элемент fo:page-sequence содержит необязательный заголовок — вложенный элемент fo:title, один обязательный вложенный элемент fo:fiow, за дающий динамически формируемую выводимую информацию, и сколько угодно необязательных элементов fo:static-content, содержащих определенный неизменный текст, например, колонтитулы.
Элемент fo: layout-master-set содержит элементы fo: simple-page-master, описывающие строение страницы, и/или элементы fo:page-sequence-master, описывающие порядок применения к страницам правил форматирования.
<?xml version="1.0" encoding="windows-1251"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="mypage">
</fo:simple-page-master>
</fo:layout-master-set>
<fо:page-sequence master-reference="mypage">
<fo:flow flow-name="xsl-region-body">
</fo:flow>
</fo:page-sequence>
</fo:root>
Создайте простейший XSL-FO документ, для этого сделайте следующие:
Создайте документ под названием XSLFO.fo