- •Міністерство освіти і науки україни
- •Донецьк - 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
Тема 10. Простори імен, xml - схеми
10.1. Простори імен xml
Простори імен у XML – це іменована сукупність імен елементів і атрибутів, яка забезпечує їх унікальність у документі.
Мова XML надає можливість авторам документів створювати свої власні теги – імена елементів. При цьому можуть виникати конфлікти імен, тобто двом різним елементам може бути привласнено одне ім’я. Подібні проблеми можуть виникати як всередині одного документа, так і при роботі з різними XML – документами.
Наприклад, теги
<subject>Геометрія</subject>
і
<subject>Нейрохірургія</subject>
використовуються для розмітки даних і описують різні дані - шкільний предмет і галузь медицини.
Застосування префіксів імен може частково розв’язати такі конфлікти. Префікс імені визначається перед ім’ям елемента, після префікса потрібно ввести двокрапку. Наприклад, у тегах
<school:subject>Геометрія</ school:subject>
і
<medical:subject>Нейрохірургія</medical:subject>
конфлікт імен подолано за рахунок використання префіксів school і medical.
Крім застосування префіксів імен можна використовувати атрибут xmlns (namespace), який визначає простір імен і поміщається у відкриваючий тег із застосуванням такого синтаксису:
хmlns:префікс_імені= "простір_імен"
Простір імен може бути універсальним ідентифікатором ресурсу URI (Uniform Resource Identifier). Універсальний ідентифікатор ресурсу – це рядок символів, який ідентифікує який-небудь ресурс у Інтернет. Найбільш розповсюдженим типом URI є універсальний локатор ресурсу URL (Uniform Resource Locator), що ідентифікує розташовану у Інтернері доменну адресу. Якщо в якості URI застосовується URL, то це надає можливість ввести унікальне ім’я для простору імен оскільки доменні адреси у мережі Інтернет не повторюються, при чому не відбувається ніякого звернення за зазначеною адресою, вона лише надає унікальне ім’я.
Коли простір імен визначається у початковому тегу, усі дочірні елементи з даним префіксом пов’язуються із зазначеним простором імен.
Як приклад можна розглянути документ з відомостями про студентів, у якому додана інформація про батьків кожного студента – ім’я та професія. Для однозначної ідентифікації імен студента, матері та батька, а також, щоб розрізняти професію батька та матері використовуються простори імен, пов’язані з префіксами m і f. Документ представлено на рис. 10.1.
Рисунок 10.1 –XML – документ, у якому використовуються простори імен
Простір імен можна також задати за замовчуванням. Це дає можливість уникнути необхідності визначати префікси імен у всіх дочірніх елементах. Виконати цю операцію можна за допомогою наступного синтаксису:
<element xmlns="namespace">
Рисунок 10.2 – Використання просторів імен за замовчуванням
10.2. Розробка xml - схеми
Для опису структури документа крім DTD можна використовувати схему XML, яка має певні переваги у порівнянні з DTD. Схема – це зовнішній файл, який містить опис елементів і атрибутів XML – документа. Схеми використовують синтаксис мови XML для визначення елементів документа, їх підпорядкування, типів даних елементів, при чому схеми підтримують значно більшу кількість типів даних ніж DTD. Схеми, на відміну від DTD, також підтримують простори імен. Таким чином, після перевірки на відповідність XML - документа схемі обробляюча програма може створити модель даних документа, яка включає:
словник – назви елементів і атрибутів;
модель умісту документа – структура документа, яка відображає відношення між елементами і атрибутами:
типи даних.
На теперішній час існують два основних типа схем: XML – Data Reduced - стандарт, який використовується фірмою Microsoft, і XML – Schema – стандарт W3C. Схеми стандарту XML – Data Reduced є достатньо розповсюдженими, однак, на практиці частіше працюють зі схемами стандарту корпорації W3C XML – Schema, тому даний інструмент роботи з XML – документами буде розглядатися на прикладі стандарту XML – Schema.
Створення схеми виконується за допомогою мови XML – схеми, яка зазвичай називається мовою визначення XML – схеми XSD (XML Schema definition). Стандарт має статус рекомендації W3C з 2 травня 2001 року. Зараз консорціумом розробляється нова версія 1.1 XML – Schema Definition Language (XSD).
XML – схема починається з оголошення XML – документа, далі слідує тег xsd:schema, який є тегом найвищого рівня, що містить у собі всі елементи XML – схеми. Даний тег включає атрибути, що визначають простори імен для схеми. Зазвичай тег schema включає атрибут
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
Цей атрибут вказує на те, що елементи і типи даної схеми визначаються у просторі імен 2001 XMLSchema, яке можна знайти за адресою http://www.w3.org/2001/XMLSchema. Атрибут xmlns має фіксоване значення, у даному випадку його змінювати неможна. Як префікс простору імен можна використовувати будь-яку послідовність символів. Зазвичай використовуються префікс xsd у відповідності до узгодження щодо використання даного іменного простору для визначення елементів XML – схеми. Простір імен використовується у даному випадку для того, щоб ідентифікувати елементи і прості типи даних як такі, що належать словникові мови XML – схем, а не авторові схеми.
Всередині тегу schema описуються елементи XML – документа. Елементи, які містять елементи - нащадки або атрибути, називаються елементами комплексного типу. Елементи, що вміщують лише власно данні, називаються елементами простого типу. Для опису елементів простого типу використовується тег element, що має вид:
<xsd:element name="ім’я_елемента" type="тип_даних"/>
У XML – схемах найчастіше використовуються такі типи даних:
xsd:string |
- будь-які символьні дані |
xsd:boolean |
- логічні значення true або false, 1 або 0 |
xsd:integer |
- ціле число |
xsd:float |
- числове значення |
xsd:date |
- дата |
xsd:dateTime |
- дата і час |
Наприклад, для опису елемента first_name можна в схемі визначити:
<xsd:element name=" first_name " type="xsd:string"/>
Елементи комплексного типу можуть бути описані в схемі двома способами:
Визначається ім’я елемента, комплексний тип даних для конкретного елемента і далі описується послідовність дочірніх елементів.
Наприклад, так можна описати елемент student, який має дочірні елементи name і birthday символьного типу даних.
<xsd:element name="student">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="birthday" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Оголошується елемент – визначається його ім’я і ім’я комплексного типу даних, а далі в схемі описується комплексний тип даних з даним іменем.
Наприклад, елемент student може бути описаний так:
<xsd:element name="student" type="stdata" />
<xsd:complexType name="stdata" >
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="birthday" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
Другий спосіб дає можливість використати комплексний тип даних при оголошенні декількох елементів.
Для опису атрибутів елементів у схемі використовується тег xsd:attribute, який може вміщувати наступні атрибути:
name - ім’я атрибуту елемента;
type – тип даних значення атрибуту;
default – значення за замовчуванням;
fixed – фіксоване значення атрибуту;
use – характер використання атрибуту: required – атрибут є обов’язковим, optional - необов’язковий атрибут.
Наприклад, якщо простий елемент phone має атрибут kind, то це можна описати так:
<xsd:element name="phone" type="xsd:string">
<xsd:attribute name=" kind" type="xsd:string"/>
</xsd:element>
У схемах, як і у DTD, можна визначити припустиму кількість повторень для елементів документа – кількість вкладень. Це виконується за допомогою атрибутів minOccurs і maxOccurs тегу xsd:element.
Атрибут minOccurs визначає мінімальну кількість появ елемента у документі. Можливі значення атрибуту:
0 – елемент є необов’язковим, може з’являтися нуль або більше разів;
1 – елемент повинен бути присутнім мінімум один раз (значення за замовчуванням).
Атрибут maxOccurs визначає максимальну кількість появ елемента у документі. Можливі такі значення атрибуту:
1 – елемент може з’являтися у документі не більше одного разу;
unbounded – число появ елемента у документі не обмежено.
Схему XML – документа можна створити за допомогою текстового редактору, у тому числі програми Блокнот, або з використанням різноманітних XML – редакторів. Файл, у якому зберігається схема документа, повинен мати розширення xsd. Для того, щоб пов’язати XML – документ зі схемою, потрібно у тегу кореневого елемента визначити простір імен схеми і визначити зовнішній файл, у якому знаходиться схема.
Наприклад, XML - документ, у якому знаходяться дані про студентів і для якого створено схему, виглядатиме так:
<?xml version="1.0" encoding="UTF-8"?>
<students xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
xsd:noNamespaceSchemaLocation="SchDoc1.xsd">
<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>
Схема цього документа:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="students" type="sts" />
<xsd:complexType name="sts" >
<xsd:sequence>
<xsd:element name="student" type="stdata" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="stdata" >
<xsd:sequence>
<xsd:element name="name" type="stname" />
<xsd:element name="birthday" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="number" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="stname" >
<xsd:sequence>
<xsd:element name="first_name" type="xsd:string"/>
<xsd:element name="last_name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Для перевірки відповідності документа схемі можна використовувати різні програмні засоби – програми XML – Validator, деякі з них надають можливість перевірити відповідність XML – документа схемі у режимі он-лайн. Наприклад, за адресою http://xmltools.corefiling.com/schemaValidate можна звернутися до такої програми.
На web-сторінці у полі XML Schema потрібно визначити файл зі схемою, у полі XML Instance – файл з XML – документом, натиснути на кнопці Validate, далі для виведення результатів перевірки валідності натиснути на посиланні Click here. Результати перевірки повинні виглядати як на рис. 10.4. У разі виявлення помилок програма виведе перелік причин, з яких документ не є валідним.
Рисунок 10.3 – Вікно діалогу програми перевірки XML – документа на відповідність схемі