- •Міністерство освіти і науки україни
- •Донецьк - 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
9.3. Опис шаблону документа dtd
У прологовій частині XML – документа може знаходитися опис шаблону документа або посилання на файл, у якому такий опис зберігається. Опис шаблону документа DTD (Document Type Definition) визначає структуру документа, містить відомості про набір XML – тегів розмітки, що використовуються документом. У DTD визначається структура та взаємовідносини тегів розмітки, що описують дані у документі.
У DTD визначається кореневий елемент, елементи верхнього рівня, дочірні елементи.
Структура документа описується таким чином:
<!DOCTYPE кореневий_елемент [
<!ELEMENT кореневий_елемент (список_елементів_першого_рівня)>
<!ELEMENT елемент_першого_рівня (список_елементів_другого_рівня)>
. . .
<!ELEMENT елемент_нижчого_рівня (тип_елемента)>
. . .
]>
Тип умісту елемента можна визначити як #PCDATA – рядкові дані. PCDATA (від англ. parsed character data) визначає, що вміст елементу є розібраними символьними даними, або частіше використовується термін «текстовий уміст» (text content) або «текстовий вузол» (text node). При введенні значення елементу типу PCDATA можна використовувати будь-які символи, крім зарезервованих < і &. Для того, щоб вставити ці символи у значення елементу або інші спеціальні символи, як і у мові HTML, використовуються управляючі послідовності.
Наприклад, такий запис буде коректним:
<company> Procter & Gamble </company>
Існують також такі типи елементів, як EMPTY – порожній і ANY – будь-який. Тип EMPTY визначає, що у елемента відсутній вузол-нащадок і він не містить будь-якої інформації. Прикладом елементу типу EMPTY може бути зображення, оскільки воно само по собі не містить жодних даних. Наприклад, можна оголосити порожній елемент таким чином:
<!ELEMENT img EMPTY>
У XML – документі цей елемент може використовуватися, наприклад, так:
<img src=”image.jpg”>
Тип ANY практично знімає усі обмеження на вміст елемента, тому застосовується рідко.
Елемент можна оголосити як такий, що має змішаний уміст. Такі елементи можуть вміщувати символьні данні та будь-яку комбінацію елементів.
DTD надає можливість визначити порядок і число вкладень для дочірніх елементів. У списку вкладених елементів комою розділяються елементи, які лише один раз можуть слідувати за елементом вищого рівня. Вибір одного з декількох елементів задається символом |.
Наприклад, запис
<!ELEMENT dessert (icecream | cake)>
означає, що для елемента dessert може бути визначеним елемент нижчого рівня icecream або елемент cake, однак не обидва разом.
Припустимим є також об’єднання послідовностей і вибору елементів. Це виконується за допомогою груп, які створюються застосуванням круглих дужок. Наприклад, таке оголошення елементу
<!ELEMENT student (name | (first_name, last_name)>
означає, що елемент може включати елемент нижчого рівня name або два елементи first_name і last_name.
Число вкладень елемента визначається за допомогою символу - індикатору вкладень, який вводиться після імені елемента у списку вкладених елементів.
Індикатор вкладень |
Опис |
+ |
елемент може з’являтися будь-яке число раз, однак не менше одного разу |
* |
елемент є необов’язковим, якщо використовується, то може з’являтися будь-яке число раз |
? |
елемент є необов’язковим, якщо використовується, то може з’являтися тільки один раз |
Наприклад, запис
<!ELEMENT book (chapter+)>
означає що у елементі book може бути декілька елементів chapter, однак не менше одного елемента.
Елементи можуть мати атрибути, які призначені для надання додаткової інформації про елементи. Оголошення атрибутів у DTD задає список атрибутів для елемента за допомогою тегу:
<!ATTLIST елемент атрибут тип_даних значення_за_замовчуванням>
Як тип даних найчастіше визначається тип - рядкові дані за допомогою ключового слова CDATA, тобто дані які можуть включати будь-які символи крім символів <, >, &, і (для них слід використовувати посилання на сутності – escape-послідовності).
Існують також так звані перелічуючи типи атрибутів. Їх використання надає змогу на місці типу атрибуту ввести у круглих дужках перелік припустимих значень.
<!ATTLIST phone type (Home | Work) #IMPLIED >
У наведеному прикладі атрибут type елемента phone може приймати значення Home або Work.
Можна також використовувати тип даних ID, який вказує, що значення атрибута є унікальним, однозначно ідентифікує елемент. У елемента може бути лише один атрибут типу ID.
DTD надає можливість використовувати такі значення атрибутів за замовчуванням:
#IMPLIED – якщо атрибут у елементі відсутній, то додаток, що використовує XML – документ, самостійно визначає значення атрибуту;
#REQUIRED – атрибут для елемента обов’язково повинен бути визначений;
#FIXED – значення атрибуту є константою, яку неможна змінити.
Приклади оголошення атрибутів:
<!ATTLIST x y CDATA #REQUIRED > - для елемента x оголошується обов’язковий атрибут y
<!ATTLIST Tel Code_T CDATA #FIXED 062> - для елемента Tel оголошується атрибут Code_T з фіксованим значенням 062
У основній частині документа привласнення значень атрибутів виконується у розчиняючих тегах відповідних елементів. Значення атрибутів завжди визначаються у лапках, причому можна використовувати як одинарні, так і подвійні лапки.
Документ, у якому містяться відомості про студентів, з вбудованим DTD має вигляд:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE students [
<!ELEMENT students (student+)>
<!ELEMENT student (name, birthday)>
<!ATTLIST student number CDATA #REQUIRED>
<!ELEMENT name (first_name, last_name)>
<!ELEMENT first_name (#PCDATA)>
<!ELEMENT last_name (#PCDATA)>
<!ELEMENT birthday (#PCDATA)>
] >
<students>
<student number="1">
<name><first_name>Іван</first_name>
<last_name>Петренко</last_name></name>
<birthday>8 грудня 1990 року</birthday></student>
<student number="2">
<name><first_name>Марія</first_name>
<last_name>Смірнова</last_name></name>
<birthday>20 липня 1989 року</birthday></student>
</students>
Рисунок 9.4 – Вид XML – документа з вбудованим DTD у вікні браузера ІЕ
DTD також можна помістити у окремий файл з розширенням dtd і посилатися на нього в документі. Такі DTD стають доступними багатьом XML –документам, що дає змогу уніфікувати інформацію, що міститься у цих документах. Наприклад, можна створити DTD документа «Баланс підприємства» і при створенні балансів посилатися на це DTD. Для посилання на зовнішнє DTD у прологовій частині XML – документа слід визначити:
<!DOCTYPE кореневий_елемент SYSTEM файл_з_ DTD>
У розглянутому раніше прикладі вміст DTD можна помістити у файл ZDTD.dtd:
<!ELEMENT students (student+)>
<!ELEMENT student (name, birthday)>
<!ATTLIST student number CDATA #REQUIRED>
<!ELEMENT name (first_name, last_name)>
<!ELEMENT first_name (#PCDATA)>
<!ELEMENT last_name (#PCDATA)>
<!ELEMENT birthday (#PCDATA)>
Тоді власно XML – документ виглядатиме так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE students SYSTEM "ZDTD.dtd" >
<students>
<student number="1">
<name><first_name>Іван</first_name>
<last_name>Петренко</last_name></name>
<birthday>8 грудня 1990 року</birthday></student>
<student number="2">
<name><first_name>Марія</first_name>
<last_name>Смірнова</last_name></name>
<birthday>20 липня 1989 року</birthday></student>
</students>