- •Міністерство освіти і науки україни
- •Донецьк - 2010
- •Розділ 1. Розвиток інформаційного суспільства, мова html
- •Тема 1. Розвиток інформаційного суспільства
- •1.1. Інформація та її роль у глобалізованому світі
- •1.2. Теорії інформаційного суспільства
- •1.3. Побудування інформаційного суспільства в Україні
- •1.4. Мови розмітки – тенденції розвитку
- •1.5. Міжнародні установи, що регулюють розробку і впровадження сучасних засобів подання інформації
- •Тема 2. Мова розмітки гіпертексту html
- •2.1. Структура html - документа
- •2.2. Форматування даних на сторінці
- •2.3. Створення гіперпосилань
- •2.4. Escape - послідовності
- •2.5. Горизонтальні лінії
- •Тема 3. Створення списків, таблиць
- •3.1. Списки
- •3.2. Таблиці
- •3.3. Фрейми
- •Тема 4. Робота з зображеннями
- •3.1. Використання зображень на web - сторінці
- •4.2. Гіперпосилання у вигляді зображення, створення мапи посилань
- •4.3. Біглий рядок
- •Тема 5. Каскадні листи стилів css
- •5.1. Призначення, синтаксис css
- •5.2. Застосування таблиць стилів css
- •Тема 6. Створення форм
- •6.1.Форми
- •6.2. Засоби розробки сценаріїв опрацювання інформації форми
- •Тест за змістовим модулем 1 «Розвиток інформаційного суспільства, мова html»
- •Розділ 2. Мова сценаріїв JavaScript
- •Тема 7. Основи мови JavaScript
- •7.1. Мова JavaScript: основні поняття
- •7.2. Організація розгалужених обчислювальних процесів
- •If (умова) {блок операторів 1}
- •7.3. Організація циклічних обчислювальних процесів
- •While (умова) { оператори_циклу }
- •Do { оператори_циклу } while (умова)
- •7.4. Функції
- •Тема 8. Опрацювання форм
- •8.1. Об’єкти браузера
- •8.2. Обробка подій
- •8.3. Робота з текстовими полями
- •8.4 Використання перемикачів у сценаріях
- •8.5. Застосування списків
- •8.6. Робота з прапорцями
- •Тест за змістовим модулем 2 «Мова сценаріїв JavaScript»
- •Розділ 3. Розширювана мова розмітки xml, обробка xml – документів
- •Тема 9. Створення xml – документів, опис шаблону документа
- •9.1. Загальні відомості
- •9.2. Структура xml - документа
- •9.3. Опис шаблону документа dtd
- •9.4. Перевірка правильності xml - документів
- •9.5. Демонстрація xml – документів з використанням
- •Тема 10. Простори імен, xml - схеми
- •10.1. Простори імен xml
- •10.2. Розробка xml - схеми
- •10.3. Визначення умов на значення елементів і атрибутів
- •Тема 11. Мова xPath, мова xslt
- •11.1. Мова xPath
- •11.2. Розширювана мова стилів для перетворень xslt
- •Тема 12. Мова xQuery
- •12.1. Призначення мови xQuery, xQuery – процесор Saxon
- •12.2. Формування запитів xQuery
- •12.3. Конструктори, арифметичні операції та функції
- •12.4. Умовний оператор if
- •If (умова) then
- •Тема 13. Xml – аналізатори і перетворення інформації
- •13.2. Об’єктна модель документа, dom - аналізатори
- •13.3. Застосування об’єктної моделі dom
- •Об’єкт ixmldomNamedNodeMap – невпорядкована колекція вузлів, обраних за ім’ям
- •Тема 14. Застосування xml – технологій на практиці
- •14.1. Використання xml податковою адміністрацією України
- •14.2. Мова xbrl - Extensible Business Report Language
- •14.3. Мова ebXml - Electronic Business xml
- •14.4. Мова cXml - Commerce xml
- •Тест за змістовим модулем 3 «Розширювана мова розмітки xml, обробка xml – документів»
- •Теми рефератів
- •Глосарій
- •Література
- •Основні засади розвитку інформаційного суспільства в україні на 2007 - 2015 роки
- •I. Загальні положення
- •II. Завдання, цілі та напрями розвитку інформаційного суспільства в україні
- •III. Національна політика розвитку інформаційного суспільства в україні
- •IV. Організаційно-правові основи розвитку інформаційного суспільства в україні
- •V. Очікувані результати
- •Множина кольорів у html
12.2. Формування запитів xQuery
Запит XQuery обов’язково зачиняється у фігурні дужки {}. Запит може вміщувати умовний вираз, що визначає критерій пошуку. Результат обчислення умовного виразу може бути істинним або ні. Якщо для певного тегу вираз є істинним, виконується дія запиту.
Умовний вираз використовується всередині виразу FLWOR, який є акронімом (абревіатурою) для речень for, let, where, order by і return.
Речення for і let використовується для привласнення значень змінним у межах XQuery. Наприклад, речення
for $x in doc("firms.xml")/firms/firm/income
визначає, що для кожного значення тегу income XQuery – процесор привласнює текстове значення (дохід) змінній $x.
Речення order by виконує сортування значення, що зберігаються у змінній. За допомогою ключових слів можна визначити порядок сортування: ascending – за зростанням, descending – за убиванням. Наприклад, речення
order by $x ascending
упорядковує значення змінної $x за зростанням.
Речення let привласнює певне значення деякій змінній. Наприклад, речення
let $x:= "XML - технології"
привласнює нове значення змінній $x.
Речення where використовується для визначення критерію фільтрації за допомогою умовного виразу. Наприклад, потрібно обрати дані про фірму за адресою «83020, м.Донецьк, вул.Щорса, 43». Такий запит виглядатиме так:
for $x in doc("firms.xml")/firms/firm
where doc("firms.xml")/firms/firm/address="83020, м.Донецьк, вул.Щорса, 43"
order by $x ascending
Речення return визначає інформацію, яку XQuery – процесор записує у вихідний файл. Речення return може виводити текстове значення, уміст тегу XML – документа або значення змінних, що використовуються у запиті XQuery. При виведенні значень змінних може використовуватися функція data(), що виводить текст, пов’язаний зі змінною. Таким чином, для виведення результатів вибору даних про конкретне підприємство за адресою слід записати інструкцію:
return data($x)
12.3. Конструктори, арифметичні операції та функції
Інформація, що міститься у XML – документі, зберігається як послідовність символів, тобто має тип даних string. Для виконання операцій над даними часто потребується перетворення інформації на інші типи даних. Наприклад, для виконання обчислень потрібно текстові дані перетворити на дані числового типу. Такі перетворення виконуються за допомогою конструкторів. Конструктор намагається значення тегу привести до певного типу даних. При невдалій спробі виводиться повідомлення про помилку. Аргументом конструктору є ім’я тегу, дані якого перетворюються. Конструктори можуть використовуватися при привласненні значень змінним або в умовних виразах.
Таблиця 13.1 – Деякі конструктори XQuery
Конструктор |
Опис |
xs:decimal |
Створює із рядка десяткове число |
xs:date |
Створює із рядка дату за шаблоном YYYY-MM-DD (наприклад, 2009-12-21) |
xs:double |
Створює із рядка число з плаваючою крапкою подвійної точності |
xs:float |
Створює із рядка число з плаваючою крапкою |
xs:int |
Створює із рядка ціле число |
xs:time |
Створює із рядка час |
Наприклад, файл з запитом XQuery, який обирає із файлу firms.xml усі данні про підприємства з доходом, більшим 1500 од, і видає їх у вигляді списку може бути таким:
<HTML>
<BODY>
<H2>Перелік підприємств з найбільшим доходом</H2>
<UL>
{
for $x in doc("firms.xml")/firms/firm
where xs:decimal($x/income)>1500
order by $x ascending
return <li>{data($x)}</li>
}
</UL>
</BODY>
</HTML>
На рис. 12.1 надано результат виконання запиту – HTML – документ, який розчинено у вікні ІЕ.
Рисунок 12.1 – Результат виконання запиту XQuery
У запитах XQuery можна використовувати такі арифметичні операції:
+ |
- додавання |
- |
- віднімання |
* |
- множення |
div |
- ділення |
mod |
- залишок від ділення |
Арифметичні операції застосовуються до числових даних, які мають один с таких типів даних: integer, decimal, float або double.
Також можна застосовувати функції, зокрема такі:
sum |
- розрахунок суми послідовності значень |
avg |
- розрахунок середнього значення |
count |
- розрахунок кількості значень |
max |
- визначення максимального значення у послідовності |
min |
- визначення мінімального значення у послідовності |
Наприклад, можна створити запит XQuery, за допомогою якого із файлу firms.xml обираються найменування підприємств, дохід кожного підприємства та кількість працюючих, обчислюється значення доходу на одного працюючого, результати запиту видаються у HTML – документ у вигляді таблиці. Такий запит матиме вид:
<HTML>
<BODY>
<H2>Розрахунок доходу на одного працюючого </H2>
<TABLE BORDER="1">
<TR> <TD>Найменування підприємства</TD>
<TD>Дохід</TD>
<TD>Кількість працюючих</TD>
<TD>Дохід на одного працюючого</TD></TR>
{
for $f in doc("firms.xml")/firms/firm
let $in := xs:float($f/income)
let $nn := xs:float($f/number_of_the_working)
return <TR><TD>{data($f/@title)}</TD>
<TD ALIGN="CENTER">{$in}</TD>
<TD ALIGN="CENTER">{$nn}</TD>
<TD ALIGN="CENTER">{$in div $nn}</TD></TR>
}
</TABLE>
</BODY>
</HTML>
Звернення до значення атрибуту title, як це прийнято в мові XPath, починається з символу @.
Результат формування запиту наведено на рис. 12.2.
Рисунок 12.2 – Результат виконання запиту XQuery