лучшие книги по экономике
Главная страница

Главная

Замовити роботу

Последние поступления

Форум

Создай свою тему

Карта сайта

Обратная связь

Статьи партнёров


Замовити роботу
Книги по
алфавиту

Б
В
Г
Д
Е
Ж
З
И
К
Л
М
Н
О

ІНФОРМАЦІЙНІ ТЕХНОЛОГІЇ ВІРТУАЛЬНИХ ОРГАНІЗАЦІЙ

Страницы [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ]
[ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ]
[ 33 ] [ 34 ] [ 35 ] [ 36 ] [ 37 ] [ 38 ] [ 39 ] [ 40 ] [ 41 ] [ 42 ] [ 43 ] [ 44 ] [ 45 ] [ 46 ] [ 47 ] [ 48 ] [ 49 ] [ 50 ]

 

Лабораторна робота №2.3

«Розробка та трансформація XML-сторінок»

Мета лабораторної роботи: Навчитися розробляти XML-сторін­ки та задавати їх стиль представлення за допомогою XSL-сторінок.
Порядок виконання:

  1. За допомогою звичайного текстового редактора, або одного з популярних XML-редакторів створити XML-сторінку для віртуальної організації.
  2. Створити таблицю стилів XSLT для документу XML (знову ж таки, можна скористатися як звичайним текстовим редактором, так і спеціальним редактором).
  3. Забезпечити перетворення XML-документа на основі таблиці стилів XSLT в HTML-документ.
  4. Захистити роботу перед викладачем.

Приклад та інструкції до виконання:
1. Створення XML-сторінки.
Наведемо приклад XML-сторінки, яка може використовуватися на сайті брокера віртуальної організації з продажу авіаквитків — це сторінка для виведення інформації про авіарейси з певного аеропорту в певне місто, зформована на основі запиту інформації від різних авіакомпаній (у даному випадку про рейси з Києва в Цюрих). Текст XML-сторінки подано в табл. 2.4.
Таблиця 2.4
ТЕКСТ XML-СТОРІНКИ REISS.XML


<?xml version=«1.0» encoding=«ISO-8859-1»?>

<spisok>              

<reis>

<id>137</id>

<icaofrom>KBP</icaofrom>

<icaoto>ZRH</icaoto>

<aкомpany>Юкraine International Airlines</aкомpany>

<timefrom>20.30</timefrom>

<timeto>21.45</timeto>

<price>538.60</price>

</reis>

<reis>

<id>4371</id>

<icaofrom>KBP</icaofrom>

<icaoto>ZRH</icaoto>

<aкомpany>Swiss Airlines LTD</aкомpany>

<timefrom>20.30</timefrom>

<timeto>21.45</timeto>

<price>678.70</price>

</reis>

<reis>

<id>111</id>

<icaofrom>KBP</icaofrom>

<icaoprom>FHR</icaoprom>

<icaoto>ZRH</icaoto>

<aкомpany>Hungary Airlines</aкомpany>

<timefrom>16.45</timefrom>

<timeto>20.00</timeto>

<price>704.80</price>

</reis>

</spisok>

Зазначимо, що на XML може бути створений повністю весь сайт віртуальної організації, що надасть можливість за допомогою різних таблиць стилів XSL представляти його у різних форматах — XML, WAP тощо.
2. Створення таблиці стилів XSLT
Приклад XSL-сторінки подано в табл. 2.5.
Таблиця 2.5
ТЕКСТ XSL-СТОРІНКИ REISS.XSL


<?xml version=«1.0» encoding=«Windows-1251»?>

<!DOCTYPE xsl:stylesheet>

<xsl:stylesheet version=«1.0»

xmlns:xsl=«HTPP://ввв.w3.org/1999/XSL/Transform»>

<xsl:output method=«html» indent=«yes» encoding=«Windows-1251»/>

 

<xsl:template match=«/»>

<xsl:apply-templates/>

</xsl:template>

 

<xsl:template match=«spisok»>

<html>

<head>

<title>Результати пошуку</title>

</head>

<body>

<h1>Потрібні Вам рейси:</h1>

<table cellpadding=«2» cellspacing=«2» border=«1»>

<tr> <td>Код рейсу</td>

<td>Авіакомпанія</td>

<td>Час вильоту</td>

<td>Час прильоту</td>

<td>Ціна квитка</td> </tr>

<xsl:apply-templates select=«reis»/>

</table>

</body>

</html>

</xsl:template>

 

<xsl:template match=«reis»>

<tr> <td><b><xsl:value-of select=«id»/></b></td>

<td><xsl:value-of select=«aкомpany»/></td> <td>

<xsl:value-of select=«timefrom»/></td> <td>

<xsl:value-of select=«timeto»/></td>

<td><xsl:value-of select=«price»/></td> </tr>

</xsl:template>

</xsl:stylesheet>

Як бачимо, дана таблиця передбачає виведення кожного знайденого рейсу в окремому рядку таблички, текст заголовків клітинок таблиці виводився один раз.
Мова трансформацій XSLT є фактично мовою програмування. Вона має оператори — вибору окремих вузлів XML-документу, переупорядкування вузлів та виведення вузлів. Для інтерпретації операторів використовуються спеціальні процесори.
Для опису операторів мови (правил, шаблонів, патернів) XSLT використовується XML. Кореневим елементом XSLT-документа є або елемент stylesheet, або transform, що знаходяться в просторі імен HTPP://ввв.w3.org/1999/XSL/Transform. За домовленістю, цей простір імен відображається в префіксі xsl, але можна вибрати й інший префікс на свій розсуд.
Розглянемо деякі основні оператори мови XSLT.
xsl:template — правила-шаблони — найважливіша частина таблиць стилів XSLT. Саме вони зв’язують визначений вихід з визначеним входом. Кожен елемент xsl:template має атрибут match, він виділяє набір вузлів вихідного документа, на котрі діє даний шаблон.
Шаблон може містити текст, що у незмінному виді виводиться у вихідний документ, а також XSLT-інструкції, що копіюють дані з вхідного XML-документа у вихідний. Наведемо для прикладу шаблон, що діє на кореневий вузол вихідного дерева:
<xsl:template match=«/»>
<html>
<head>
</head>
<body>
</body>
</html>
</xsl:template>
Коли XSLT-процесор починає зчитувати вихідний документ, перший вузол, з яким він зіштовхується — це кореневий вузол. Наведене правило відноситься до кореневого вузла й у ньому XSLT-процесору дається вказівка вивести текст, що відповідає структурі HTML-документа.
Іноді потрібно застосувати шаблон одночасно до декількох типів елементів. За допомогою зірочки (*) замість імені елемента в атрибуті match можна вказати відповідність всім елементам. Наприклад: <xsl:template match=«*»>.
Подвійний слеш // вказує на всіх нащадків елемента, незалежно від їхньої глибини.
Селектор іd() використовується, щоб застосувати визначений стиль до окремого елемента, не торкаючись всіх інших елементів цього типу. Значення ІD вказується в одинарних лапках.
Знак @ вказує на атрибути і відбирає вузли по іменах атрибутів: потрібно просто перед ім’ям атрибута, який потрібно відібрати, поставити знак @.
Існують також інші шаблони, детально з якими можна ознайомитись у специфікації.
xsl:apply-templates — дає вказівку процесору обробляти дочір­ні вузли кореневого вузла (порівнювати кожен дочірній елемент вихідного елемента з іншими шаблонами в таблиці стилів і, якщо відповідність виявлена, виводити шаблон для відповідного вузла). Шаблон вузла, відповідність з яким виявлено, теж може містити елементи xsl:apply-templates для пошуку відповідностей з дочірніми вузлами вже цього вузла.
Щоб відібрати не всі дочірні вузли, а лише деякий їх набір, необхідно використовувати атрибут select = «патерн».
xsl:value-of — виявляє значення деякого елемента (зазвичай, на основі даних вихідного документа) і копіює отриманий результат у вихідний документ. Атрибут select елемента xsl:value-of визначає, яке саме значення береться. Елемент xsl:value-of варто використовувати тільки в тих випадках, коли відомо, значення якого саме вузла береться. Якщо ж може бути обрана множина пунктів, тоді буде обраний лише перший з них.
xsl:for-each — обробляє по черзі кожен елемент, обраний атрибутом select. Додаткові шаблони в даному випадку не вимагаються.
xsl:element — вставляє у вихідний документ елемент. Ім’я елемента задається шаблоном значення атрибута в атрибуті name елемента xsl:element. Вміст елемента виводиться із вмісту елемента xsl:element, що може включати в себе додаткові інструкції xsl:attrіbute, xsl:processіng-іnstруctіon і xsl:комment (усі вони будуть обговорюватися нижче) для вставки відповідних конструкцій.

Страницы [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ]
[ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ]
[ 33 ] [ 34 ] [ 35 ] [ 36 ] [ 37 ] [ 38 ] [ 39 ] [ 40 ] [ 41 ] [ 42 ] [ 43 ] [ 44 ] [ 45 ] [ 46 ] [ 47 ] [ 48 ] [ 49 ] [ 50 ]


ВНИМАНИЕ! Содержимое сайта предназначено исключительно для ознакомления, без целей коммерческого использования. Все права принадлежат их законным правообладателям. Любое использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием содержимого сайта.
© 2007-2019 BPK Group.