Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_Палагута.doc
Скачиваний:
10
Добавлен:
13.11.2019
Размер:
6.6 Mб
Скачать

12.4. Умовний оператор if

Умовний оператор визначає критерії пошуку інформації у XQuery, надає можливість виконати різні дії в залежності від істинності логічної умови.

Загальна форма оператору як і у JavaScript:

If (умова) then

{блок операторів 1}

else

{блок операторів 2}

Механізм дії оператору також загальновідомий - якщо логічна умова істинна, виконується блок операторів 1, інакше виконується блок операторів 2.

Розглянемо приклад застосування оператору if у запиті XQuery. Потрібно із файлу firms.xml обрати дані про найменування підприємств і їх прибуток, вивести інформацію у вигляді таблиці. Рядки таблиці, що виводять данні про підприємства, прибуток яких менше 1000 одиниць, повинні мати бежевий фон, якщо прибуток перевищує 1000 одиниць, дані виводяться на сріблястому тлі. Код запиту XQuery:

<HTML>

<BODY>

<H2>Прибуток підприємтств </H2>

<TABLE BORDER="1">

<TR STYLE="background-color:yellow">

<TD>Найменування підприємства</TD>

<TD>Прибуток</TD></TR>

{

for $f in doc("firms.xml")/firms/firm

let $p := xs:decimal($f/profit)

return

if ($p<1000) then

<TR STYLE="background-color:silver">

<TD>{data($f/@title)}</TD>

<TD ALIGN="CENTER">{$f/profit}</TD></TR>

else

<TR STYLE="background-color:beige">

<TD>{data($f/@title)}</TD>

<TD ALIGN="CENTER">{$f/profit}</TD></TR>

}

</TABLE>

</BODY>

</HTML>

Результат виконання запиту наведено на рис. 13.4.

Рисунок 13.3 – Результат виконання запиту XQuery

із використанням оператору if

Контрольні питання

  1. Для чого використовується мова XQuery?

  2. Який XQuery – процесор Вам відомий?

  3. Що таке вираз FLWOR?

  4. Яку функцію у XQuery – запиті виконує речення order by?

  5. Які функції виконують речення for і let?

  6. Яку функцію у XQuery – запиті виконує речення where?

  7. Що таке конструкторі? Які конструктори Вам відомі?

  8. Які знаки арифметичних операцій використовуються у XQuery – запитах?

  9. Які функції можна використовувати у запитах?

  10. Як організувати розгалуження у запиті XQuery?

Практичні завдання

Варіант №1

Створити XQuery – запит, за допомогою якого з XML – документа Banks.xml обирається і видається у вигляді таблиці інформація про всі банки, (банки з більшим доходом виділити фоновим кольором).

Варіант №2

Створити XQuery – запит, за допомогою якого з XML – документа Trade.xml обирається і видається у вигляді таблиці інформація про всі підприємства торгівлі, (підприємства з більшим товарообігом виділити фоновим кольором).

Варіант №3

Створити XQuery – запит, за допомогою якого з XML – документа XML – документа Sales.xml обирається і видається у вигляді таблиці інформація про всі товари, (товари, по яких план продажу не виконано, виділити фоновим кольором).

Тема 13. Xml – аналізатори і перетворення інформації

13.1. SAX – аналізатори

Для роботи з XML – документами використовуються різні програми - аналізатори. Аналіз (розбір – parsing) означає отримання потоку символів із вхідного документа і побудування внутрішнього уявлення, що відповідає поданій структурі. Результатом аналізу є модель XML – документа в пам’яті. Фактично XML – документ є текстовим файлом, у якому деякі теги містять інформацію, а деякі визначають структуру цієї інформації. Програма, яка зчитує та інтерпретує цю інформацію і є аналізатором, процес, при якому інформація перетворюється із XML – документа в іншу форму, називається перетворенням.

Існує велика кількість аналізаторів, які обов’язково відповідають одному із встановлених стандартів: простому API (Application Programming Interface - інтерфейс прикладного програмування) для XML (Simple API for XML – SAX) або об’єктній моделі документа (Document Object Model – DOM).

Стандарт простого API для XML (SAX) був розроблений членами списку розсилки XML – DEV, є відкритим стандартом для компаній і організацій, не належить ніякому консорціуму, комітету по стандартизації, компанії або приватній особі. SAX не є аналізатором. SAX - це специфікація, яка визначає інтерфейс для аналізаторів, найбільш поширені з яких будуються на Java-платформі. У SAX визначаються стандарти для класів об’єктів, що використовуються при створенні SAX – аналізаторів.

SAX – аналізатор (аналізатор, розроблений із застосуванням SAX API) розрахований на обробку великих XML – документів. Він починає зчитування документа з початку, зчитує невелику групу рядків (називається a blok at a time – поточним блоком), поступово доходить до кінця документа. Після зчитування блоку тексту, SAX – аналізатор визначає, містить цей блок XML – тег або інформацію. Якщо знайдено XML – тег, то SAX – аналізатор порівнює XML – тег з інформацією, що визначена програмою перетворення, яка може бути створена на мові XSLT або на мові, а потім перетворює інформацію згідно інструкцій програми. Блок знищується з пам’яті одразу після перетворення і далі зчитується наступний блок інформації. Це дає можливість SAX – аналізаторам обробляти великі XML – документи, не обмежуючись обсягом наявної пам’яті. Однак, це є і недоліком SAX – аналізаторів, оскільки аналізатор не може звернутися до тієї частини документа, яка вже була прочитана, не можна звернутися до інформації декілька разів.

SAX визначено як набір інтерфейсів Java. Для реалізації більшості його методів використано в першу чергу саме цю мову. Зараз методи SAX реалізовано на RERL, PHP та інших мовах програмування.