У вас вопросы?
У нас ответы:) SamZan.net

11 Лабораторная работа 21

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 28.12.2024

Лабораторная работа №2.

Создание XML и  XSL документов.

Цель работы – изучить метод создания XML-документа; язык XSL, который позволяет преобразовать документы XML,  используя язык преобразований XSLT.

На смену HTML был предложен новый язык гипертекстовой разметки, мощный, гибкий, и, одновременно с этим, удобный язык XML.
         XML (Extensible Markup Language) - это язык разметки, описывающий целый класс объектов данных, называемых XML- документами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. Т.е. сам по себе XML не содержит никаких тэгов, предназначенных для разметки, он просто определяет порядок их создания.

Кроме того, XML-документы могут выступать в качестве уникального способа хранения данных, который включает в себя одновременно средства для разбора информации и представления ее на стороне клиента. XML позволяет также осуществлять контроль за корректностью данных, хранящихся в документах, производить проверки иерархических соотношений внутри документа и устанавливать единый стандарт на структуру документов, содержимым которых могут быть самые различные данные. Это означает, что его можно использовать при построении сложных информационных систем, в которых очень важным является вопрос обмена информацией между различными приложениями, работающими в одной системе. Создавая структуру механизма обмена информации в самом начале работы над проектом, менеджер может избавить себя в будущем от многих проблем, связанных с несовместимостью используемых различными компонентами системы форматов данных.

В общем случае XML- документы должны удовлетворять следующим требованиям:
1)
В заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация.
2) Каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен иметь своего закрывающего "напарника".

3) В XML учитывается регистр символов.
4) Все значения атрибутов, используемых в определении тэгов, должны быть заключены в кавычки.

5) Вложенность тэгов в XML строго контролируется, поэтому необходимо следить за порядком следования открывающих и закрывающих тэгов.
6) Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML как данные и поэтому учитываются все символы форматирования (т.е. пробелы, переводы строк, табуляции).

Пример: создать XML-документ, в котором содержится информация о книгах: автор, название и цена книги.  

<?xml version="1.0" encoding="windows-1251"?>            // декларация XML
<?xml-stylesheet type="text/xsl" href="example"?>           // связывает наш        

                                                               документ   с таблицей стилей XSL                                                                                        

        <library>
               <
book>
                         <
author>ЛЕВ ТОЛСТОЙ</author>

                         <name>"АННА КАРЕНИНА"</name>

                         <price currency="р.">6000</price>

                      </book>

                      <book>

                          <author>МИХАИЛ ШОЛОХОВ</author>

                          <name>"ТИХИЙ ДОН"</name>

                          <price currency="р.">10000</price>             

                      </book>
        </
library>

Любой XML- документ должен всегда начинаться с инструкции <?xml?>, внутри которой также можно задавать номер версии языка, номер кодовой страницы и другие параметры, необходимые программе-анализатору в процессе разбора документа.

Обратите внимание на вторую строку документа, где инструкция xml-stylesheet связывает наш документ с таблицей стилей XSL. Синтаксис этой инструкции одинаков как для привычных таблиц CSS, так и для XSL, отличаясь только атрибутом type, который приобретает соответственно значения text/css и text/xsl. Атрибут href знаком нам по языку HTML и содержит ссылку на файл с таблицей стилей.  

Набором всех элементов, содержащихся в документе, задается его структура и определяются все иерархические соотношения. Для корневого элемента нашего документа используется library. Тэги book, author, name, price являются вложенными тегами.  Тэг book означает то, что речь пойдёт о книгах; тэг author – об авторе книги, тэг name – о названии книги, тэг price – о цене книги.

Документы XML используют для разделения содержания сайта и его дизайна, так как они хорошо подходят для хранения информации. Ведь главная задача XML - это структурирование информации, а не ее отображение.  

Язык XSL включает в себя несколько компонентов, но в первую очередь, интересует такая его составная часть, как язык преобразований XSLT (XSL Transformation Language), который позволяет преобразовать документы с одного диалекта XML на другой.  

Для того чтобы ознакомиться, как работает эта технология, нам понадобится XML-файл (который описан выше) и файл с набором инструкций для преобразований XSLT, который часто называют таблицей стилей XSL.

Рассмотрим простую таблицу стилей XSL example.xsl, которая, однако, содержит достаточно элементов, чтобы понять, как работает эта технология и использовать их для создания вполне работоспособных шаблонов.

Пример XSL-документа:

<?xml version="1.0" encoding="windows-1251"?>            // декларация XML
<xsl:stylesheetversion="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/  

                               Transform">

      <xsl:template match="library">                              // создание шаблона для    

                                                                              корневого элемента документа
         <html>
         <head>  <title>  
Книги  </title> </head>
        <body>
         <table border="1" cellspacing="0" cellpadding="3"> <xsl:apply-templates/>

         </table>
         </body>
         </html>
      </xsl:template>

     <xsl:template match="book">                    // создающий для каждого

                                                                           элемента строку таблицы

        <tr> <xsl:apply-templates /> </tr>

        </xsl:template>

       <xsl:template match="author | name | price">      // для указанных элементов

                                                                    применяется  один и тот же шаблон

        <td> <xsl:apply-templates />

        <xsl:value-of select="@currency" />           // извлечение значения   

                                атрибута currency и помещение его в итоговый документ

</td>

</xsl:template>

         <xsl:template match="text()"> <xsl:value-of select="." />
         </xsl:template>

</xsl:stylesheet>

Язык XSLT сам является подмножеством XML, и поэтому правила оформления таблицы стилей должны подчиняться всем правилам оформления XML-документов. Первой строкой нашего файла как раз и будет декларация XML, но в данном случае нам необходимо указать схему с описанием диалекта языка XSLT, по правилам которого мы составили наш документ. Это указание необходимо для программ, которые будут обрабатывать XML-документ с таблицей стилей, будь то браузеры или XSLT-процессоры, для подтверждения, что мы используем общепринятую схему для данного диалекта.

Строка <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/ 1999/ XSL/Transform">  указывает, что мы будем использовать схему для создания таблиц стилей xsl:stylesheet, которую можно обнаружить по адресу, указанному в атрибуте xmlns:xsl. Здесь также появляется префикс xsl, который задает название пространства имен, используемых в этой схеме. Он встретится во всех тегах нашей таблицы стилей XSL, указывая на их принадлежность к языку XSLT.

Первым делом, надо создать шаблон для корневого элемента нашего документа library, с помощью тега xsl:template с атрибутом match, задающим элемент, для которого шаблон будет применён. В нашем случае задаем в соответствие корневому элементу стандартные блоки HTML-документа: html, head, title, body, а также создаем таблицу для более удобного представления информации, хранящейся в XML-документе. В блоке body мы применили инструкцию, задача которой - передать содержание элемента library на обработку остальных шаблонов в нашей таблице стилей. Так как это корневой элемент, содержащий все элементы, то и для них будут применены прописанные далее в таблице шаблоны. По такому же принципу построен шаблон для тега book, создающий для каждого элемента строку таблицы.

В следующем шаблоне используем конструкции языка XPath. Его задача - обнаруживать определенные узлы XML по описанию заданному пользователем и передавать их другим инструментам, обрабатывающим документ XML. Благодаря ему мы можем воспользоваться оператором "|" в качестве логического "ИЛИ" для указания элементов, к которым мы хотим применить один и тот же шаблон. Таким образом, мы создаем один шаблон для элементов author, name и price.

Команда xsl:value-of извлекает значение узла XML и помещает его в итоговый документ. Последний шаблон нашего документа обрабатывает текстовое содержание тегов XML, что также указывается с помощью команды XPath text(). Этот шаблон прописывать было не обязательно, так как предыдущий шаблон неявно передает на обработку содержание узлов author, name и price, даже без наших указаний. Тем не менее явная обработка текстовых элементов документа делает наш шаблон более понятным. В команде xsl:value-of в атрибуте select тоже используется команда XPath ".", которая ссылается на текущий элемент. Таким образом, последний шаблон выполняется при нахождении текстовой строки, извлечет ее значение и поместит в результирующий документ. Команда xsl:value-of используется также в шаблоне для элементов author, name, price - для извлечения значения атрибута currency тега price. В языке XPath символ "@" используется для обозначения атрибутов элементов, а выражение <xsl:value-of select= "@currency"/> дает указание извлечь значение атрибута currency и поместить его в итоговый документ. Так как атрибут currency есть только в теге price, то во время обработки тегов author и name не будет возвращено никаких значений, что позволяет использовать эту инструкцию в одном шаблоне для нескольких тегов.

Результат обработки XML-документа с помощью нашей таблицы стилей XSL можно посмотреть браузерах последнего поколения: браузер показывает источник нашего документа как xml-документ, а в окне браузера он отображается как web-страница - со всей информацией, которую хотели вывести:

Варианты заданий.

Составить 2 XML-документа.  В одном описать, магазин одежды с её составляющими: а) название фирмы, чья одежда продаётся в магазине, б) вид одежды, в) модель; во втором – каталог цен. Данные свести в таблицы. Документы соединяются при помощи ссылки.

  1.  Магазин одежды: город, улица, фирма  / вид, модель, каталог цен.
  2.  Автомобили: марка, год выпуска, модель / цвет, салон, каталог цен.  
  3.  Игрушки: страна, производитель, магазин, / материал, наименование, каталог цен.
  4.  Библиотека: автор книги, название, количество страниц / издательство, тираж, год издания книги.
  5.  Рестораны: улица, название, кухня / зал, меню, каталог цен.
  6.  Мобильные телефоны: марка, модель, цвет / полифония, камера, каталог цен.
  7.  Бытовая техника: вид, фирма, модель / крупногабаритные, мелкогабаритные, каталог цен.
  8.  Строительные материалы: вид, страна, фирма / внутренние работы, наружные работы, каталог цен.
  9.  Канцелярские товары: вид, фирма, страна / назначение, материал, каталог цен.
  10.   Продукты питания: магазин, наименование, производитель / группы продтоваров, состав, каталог цен.
  11.   Мебель: вид, страна, фирма / ткань, цвет, каталог цен.
  12.   Цветы: название, место произрастания, размеры, / сорт, цвет, каталог цен.
  13.   Музыкальные инструменты: магазин, фирма, наименование / духовые, струнные, клавишные.
  14.   Спортивный инвентарь: вид спорта, страна, изготовитель / материал, наименование, каталог цен.
  15.   Ювелирный магазин: город, название магазина, наименование / изделие, вес, каталог цен.
  16.  Туристические фирмы: название, направление, вид транспорта / отель, питание, каталог цен.
  17.  Салон красоты: название, страна, адрес / виды услуг, продолжительность сеанса, каталог цен.
  18.   Животный мир: континент, страна, название / вес, кожный покров, тип питания.
  19.   Студенты: вуз, факультет, группа / год рождения, ФИО, средний балл.
  20.   Киноактёры: страна, фильм, кассовый сбор / роль, премия (Оскар), гонорар.   

Контрольные вопросы.

1. Охарактеризуйте элементы XML- документа, секции CDATA, инструкции по обработке, комментарии, атрибуты, директивы анализатора?

2. Какие главные отличия XML от HTML?

3. Как создать шаблон для корневого элемента документа?

4. Что нужно сделать, чтобы преобразовать XML –документ по XSL-таблице?

5. Как происходит процесс преобразования на стороне клиента?

6. Как происходит процесс преобразования на стороне сервера?

7. Способ использования SAX (Simple API for XML)?

8. Возможности XSLT?




1. Основы дзэнбуддизма
2. пособие по курсовому проектированию Для всех специальностей Рекомендовано УМС
3. Контрольная работа- Правила безопасности водителя
4. Курсовая работа- Место и центр затрат, критерии их образования, методы группировки издержек
5. 1 Материальный баланс
6. Материальная ответственность бухгалтера; 2
7. графика Грея Джоллиффа
8. Перспективы Павел Шлыков Ближневосточная политика Турции в контексте арабской весны Шлыков Паве
9. Психология рекламного воздействия.html
10. Что такое любовь к империи
11.  Формы взаимодействия общества и природы
12. Структура личности Адлер назвал свою психологию индивидуальной что в переводе с латинского означает н
13. Каникулы. Ангелина собирает своих близняшек в лагерь На диване два чемодана две стопки вещей
14. Вступая в жизнь каждое поколение приобщается к имеющейся культуре осваивает ее живет в ней развивает ее и п
15. Гиппократ 2000 УДК 616
16. 2012 KsGS English
17. И з о т о н и ч е с к и е р а с т в о р ы имеют одинаковую концентрацию солей как и в плазме крови и такое же ос
18. . Обязанности наймодателя по обеспечению сохранности жилищного фонда Важнейшей обязанностью наймодателя
19. Адвокатура и нотариат
20. Классификация факторов и резервов повышения эффективности хозяйственной деятельности