Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Трансформація документів XML

РефератДопомога в написанніДізнатися вартістьмоєї роботи

HTML має нескладним набором команд і геть успішно справляється завдання описи текстовій інформації та відображенням в екрані програми перегляду — браузери. Проте самі що відобразяться дані неможливо пов’язані з тими тэгами, що використовуються форматування, тому в программ-анализаторов немає можливості використовувати теги HTML на допомогу пошуку потрібних нам фрагментів документа. Тобто… Читати ще >

Трансформація документів XML (реферат, курсова, диплом, контрольна)

року міністерство освіти Російської Федерации.

Саратовський державний университет.

Імені Н. Г. Чернышевского.

Кафедра мат моделювання процесів і систем управления.

Трансформація XML документов.

Найменування курсової работы.

___________________________________________________________________________ прописними буквами.

КУРСОВА РАБОТА.

Студента 4 курсу механіко-математичного факультета.

_____________________Фроолова Миколи Васильевича___________________.

Прізвище, ім'я отчество Научный руководитель Доцент, к.ф.м.н.

Ковальов А. Д. Посада, уч ступінь підпис, дата ініціали, фамилия Зав. Кафедрой Доцент, к.ф.м.н. Мозжилкин В.В.

подпись, дата.

САРАТОВ 2003.

Саратовський державний университет.

Імені Н. Г. Чернышевского.

УТВЕРЖДЕНО.

На засіданні кафедри мат моделювання процесів і системам управління протокол від г.

ЗАДАНИЕ.

НА КУСОВУЮ РАБОТУ.

За фахом 10 200______________.

Шифр Тема___________Трансформация XML документов________________.

Найменування курсової работы.

__________________________________________________ прописними буквами.

Студента 4 курсу механіко-математичного факультета.

_____________________Фроолова Миколи Васильевича___________________.

Прізвище, ім'я отчество Перечень питань, які підлягають розробці в курсової работе:

1. Моделювання XML-документов.

2. Структура XML-документа.

3. Documents Type Definitions (DTD).

4. Схеми данных Дата видачі ____________________________________________________.

Кількість, месяц Срок виконання ______________________________________________.

Кількість, місяць Преподаватель Доцент, к.ф.м.н.

Ковальов А. Д. Посада, уч ступінь підпис, дата ініціали, фамилия Содержание.

1.

Введение

.

2. Структура XML-документа.

3. Моделювання XML-документов.

4. Documents Type Definitions (DTD).

5. Схеми данных.

6. Ілюстративний пример

1.

Введение

.

За недовгий час свого офіційного існування мову XML привернула до вже досить багато уваги з боку розроблювачів і користувачів Інтернету. Сьогодні кількість прибічників нової технології зростає дуже стрімко. Попри те що, що XML дуже молодий (міжнародна організація W3C затвердила специфікацію «Extensible.

Markup Language (XML) 1.0 «на початку 1998 р) й окремі компоненти цієї мови є ще на стадії доопрацювання, вже нині з’являються нову мову, створені з урахуванням XML, виникають численні Webсерверу, використовують цю технологію в організацію що зберігається ними информации.

Коли восени 1991 року Інтернет уперше почув про нову технологію, під назвою WWW, майже хто б міг собі, що завоювання її виявляться настільки глобальними. Сьогодні багатьом користувачів слово.

Інтернет міцно асоціюється з WWW і з вуст фахівців не сходить тема майбутнього інформаційних систем і сфери впливу цього майбутнє всесвітньої мережевий паутины.

Популярність World Wide Web і невід'ємною її частки, HTML, безумовно, спричинилася до підвищеної зацікавленості до систем гіпертекстової розмітки документів. Хоча поняття гіпертексту було запроваджено В. Бушем ще в.

1945 року і від 1960;х років почали з’являтися перші докладання, використовують гіпертекстові дані, сплеск активності довкола цієї технології почався буде лише тоді, коли реальна потреба у механізмі об'єднання безлічі інформаційних ресурсів, забезпечення можливість створення, перегляду нелінійного тексту. І прикладом цього механізму послужила павутиння WWW.

Мова розмітки документів — це набір спеціальних інструкцій, званих тэгами, виділені на формування як іабо структури та визначення відносин між різними елементами цієї структури. Теги мови, чи, як його іноді називають, управляючі дескриптори, в документах виділяються щодо основного вмісту документи й служать як інструкцій для програми, що виконує показ вмісту документа за клієнта. У перших системах для позначення цих команд використовувалися символи ««, всередині яких поміщалися назви інструкцій та його параметри. Зараз я такої спосіб позначення тэгов є стандартным.

Використання гіпертекстової розбивки текстового документа у сприйнятті сучасних інформаційних системах багато в чому пов’язана з тим, що гіпертекст дозволяє створювати механізм нелінійного перегляду информации.

У цих системах дані видаються над вигляді безперервного потоку текстовій інформації, а набором взаємопов'язаних компонент, перехід якими здійснюється за допомогою гиперссылок.

Найпопулярніший нині мову гіпертекстової розмітки -.

HTML, створили спеціально в організацію інформації, розподіленої у мережі Інтернет, і є одним із ключових складових технології WWW.

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

HTML є спрощеної версією стандартного спільної мови разметки.

— SGML (Standart Generalised Markup Language), який затвердили ISO як стандарт ще 80-ті роки. Її призначений до створення інших мов таки розмітки, він визначає припустимий набір тэгов, їх атрибути і внутрішню структуру документа. Контроль над правильністю використання дескрипторів здійснюється за допомогою спеціального набору правил, званих DTD-описаниями, що використовуються програмою клієнта при розборі документа. До кожного класу документів визначається свій набір правил, що описують граматику відповідного мови розмітки. З допомогою SGML можна описувати структуровані дані, організовувати інформацію, що є в документах, представляти цю інформацію у певному стандартизованном форматі. Однак у виду деякою свою складність, SGML використовувався, переважно, для описи синтаксису інших языков (наиболее відомим із яких є HTML), та деякі докладання працювали з SGMLдокументами напрямую.

Набагато більше простий і зручний, ніж SGML, мову HTML дозволяє визначати оформлення елементів документи й має якийсь обмежений набір інструкцій — тэгов, з яких здійснюється процес розмітки. Інструкції HTML, насамперед, призначені керувати процесом виведення вмісту документа на екрані программы-клиента визначають цим самим спосіб подачі документа, але з його структуру. Як елемента гіпертекстової бази даних, описываемой.

HTML, використовується текстовий файл, котрі можуть легко передаватися через мережу з допомогою протоколу HTTP. Ця особливість, як і того, что.

HTML є відкритим стандартом і кількість користувачів має можливість застосовувати можливості цієї мови для оформлення своїх документів, безумовно, вплинули до зростання популярності HTML і сьогодні головний механізм подання в Web.

Проте сучасні докладання потребують у мові уявлення даних на екрані клієнта, а й у механізмі, що дозволяє визначати структуру документа, описувати що їх містить элементы.

HTML має нескладним набором команд і геть успішно справляється завдання описи текстовій інформації та відображенням в екрані програми перегляду — браузери. Проте самі що відобразяться дані неможливо пов’язані з тими тэгами, що використовуються форматування, тому в программ-анализаторов немає можливості використовувати теги HTML на допомогу пошуку потрібних нам фрагментів документа. Тобто. зустрівши, наприклад, таке опис rose програма перегляду знатиме, яким кольором відобразити текст, що міститься всередині тэгов і, мабуть, відобразить його правильно, але їй байдуже, де документа зустрівся цей тэг, у які інші теги укладено поточний фрагмент, чи існують спрямовані на нього фрагменти, правильно чи побудовані стосунки між об'єктами. Таке «байдужість «до структури документа призводить до того, що пошук чи аналізують інформацію усередині нього нічим нічого очікувати відрізнятиметься від роботи з суцільним, не розбитим на елементи текстовим файлом. І це, як відомо, не найефективніший спосіб роботи з информацией.

Іншим істотним недоліком HTML може бути обмеженість набору його тэгов. DTD-правила для HTML визначають фіксований набір дескрипторів і тому в розробника немає можливості вводити власні, спеціальні теги. Хоча раз у раз з’являються нові розширення мови, але довгий шлях їх стандартизації, супроводжуваний постійними розбіжностями між основними виробниками браузерів роблять практично неможливою швидку адаптацію мови, його використання для відображення спеціалізованої информации (например, мультимедійної, математичних, хімічних формул і т.д.).

Підсумовуючи всього сказаного, можна стверджувати, що HTML вже нині не задовольняє повною мірою вимогам, які висуваються сучасними розробниками мови такого роду. І змінюють було запропоновано новий мову гіпертекстової розмітки, потужний, гнучкий, і водночас із цим, зручний мову XML.

XML (Extensible Markup Language) — це мову розмітки, описує цілий клас об'єктів даних, званих XML-документами. Її використовують у ролі засобів для описи граматики інших і контролю за правильністю складання документів. Тобто. сам собою XML зовсім позбавлений ніяких тэгов, виділені на розмітки, він визначає порядок їх створення. Отже, якщо, наприклад, ми вважаємо, що з позначення елемента rose у документі необхідно використовувати тэг; то XML дозволяє вільно використовувати визначається нами тэг і ми можемо включати у документ фрагменти, подібні наступному: rose.

Набір тэгов то, можливо легко розширено. Якщо, припустимо, хочемо зазначити, що описування квітки має за змістом йти всередині описи оранжереї, де він цвіте, то просто задаємо нові теги і вибираємо порядок їх прямування: rose.

Процес створення XML документа дуже проста і потребує лише базових знаний.

HTML й розуміння тих завдань, які потрібно виконати, використовуючи XML як мовою розмітки. Отже, у розробників з’являється можливість визначати власні команди, які дозволяють найефективніше визначати дані, які у документі. Автор документа створює його структуру, будує необхідні зв’язок між елементами, використовуючи ті команди, які задовольняють його до вимог, і домагається подібного типу розмітки, що слід йому до виконання операцій перегляду, пошуку, аналізу документа.

Ще однією з очевидних достоїнств XML є зокрема можливість використання його як універсальної мови запитів до сховищам інформації. Сьогодні у W3C перебуває в розгляді робочий варіант стандарту XML-QL (или XQL), який, можливо, у майбутньому становитиме серйозної конкуренції SQL. З іншого боку, XML-документы можуть в ролі унікального способу зберігання даних, що включає у собі одночасно кошти на розбору інформації й представлення в боці клієнта. У цій сфері однією з перспективних напрямів є Java і XML — технологій, дозволяє себе використовувати міць обох технологій при побудові машинно-независимых додатків, використовують, ще, універсальний формат даних під час обміну информации.

XML дозволяє також здійснюватиме контроль над коректністю даних, які у документах, виробляти перевірки ієрархічних співвідношень всередині документи й встановлювати єдиний стандарт на структуру документів, вмістом яких можуть бути різні дані. Це означає, що може бути використовувати при побудові складних інформаційних систем, у яких дуже важливим є питання обміну інформацією між різними додатками, які працюють у однієї системі. Створюючи структуру механізму обміну інформацією на самому початку роботи над проектом, менеджер може врятувати себе у майбутньому багатьох проблем, що з несумісністю використовуваних різними компонентами системи форматів данных.

Одним із достоїнств XML і те, що програмиоброблювачі XML-документов не складні, і вже нині з’явилися б і вільно поширюються різноманітні програмні продукти, призначені до роботи з XML-документами. XML підтримується в IE5. Заявлено про її підтримку у наступних версіях Netscape Communicator, СУБД Oracle, DB-2, в додатках MS-Office. Усе це дає підстави вважати, що, швидше за все, у майбутньому XML стане основним мовою обміну інформації для інформаційних систем, замінивши собою, цим, HTML. За підсумками XML вже нині створено такі спеціалізовані мови розмітки, як SMIL, CDF, MathML, XSL, і список робочих проектів нових мов, що є у W3C, постійно пополняется.

2. Структура XML-документа.

Хоча XML, дуже відрізняється за своїми можливостями і призначенню від мови гіпертекстової розмітки, обидві ці мови є подмножествами.

SGML, і, отже, успадковують його базові принципы.

Найпростіший XML-документ може бути так:

Первый.

Другий підпункт 1.

Третий.

Последний.

Документ дуже нагадує звичайну HTML-страницу. Також, як й у HTML, інструкції, укладені кутові дужки називаються тэгами і служать для розмітки основного тексту документа. У XML існують що відкривали, які зачиняють і порожні теги (в HTML поняття порожнього тэга теж існує, але спеціального його позначення не требуется).

Тіло документа XML складається з елементів разметки (markup) так і безпосередньо вмісту документа — данных (content). XML — теги призначені визначення елементів документа, їх атрибутів та інших конструкцій языка.

Будь-який XML-документ повинен завжди починатися з інструкції, усередині якої теж можна ставити номер версії мови, номер кодовою сторінки та інші параметри, необхідні программе-анализатору у процесі розбору документа.

У випадку XML-документы повинні задовольняти наступним требованиям:

. У заголовку документа поміщається оголошення XML, де вказують мову розмітки документа, номер його версії додаткова информация;

. Кожен відкриває тэг, визначальний деяку область даних у документі обов’язково має мати закриває тэг;

. У XML враховується регістр символів ;

. Усі значення атрибутів, які у визначенні тэгов, повинні прагнути бути укладено в кавычки;

. Вкладеність тэгов в XML суворо контролюється, тож необхідно ознайомитися з порядком прямування відкривають і закривають тэгов;

. Уся інформація, розміщена між початковим і кінцевими тэгами, у XML як дані, і тому враховуються все символи форматування (тобто. прогалини, переклади рядків, табуляції не ігноруються, як і HTML).

Якщо XML-документ не порушує наведені правила, він називається формально-правильным і всі аналізатори, призначені для розбору XMLдокументів, зможуть працювати з нею коректно. Проте, крім перевірки на формальне відповідність граматиці мови, у документі можуть бути присутні засіб контролю над змістом документа, над виконанням правил, визначальних необхідні співвідношень між елементами і формують структуру документа. А, щоб забезпечити перевірку коректності XMLдокументів, необхідно використовувати аналізатори, що виробляють таку перевірку і звані верифицирующими. Сьогодні існує два способу контролю правильності XML-документа: DTD — определения (Document Type Definition) і схеми данных (Semantic Schema). На відміну від SGML, визначення DTD-правил в XML перестав бути необходимостью.

Конструкції языка.

Вміст XML-документа є набір елементів, секций.

CDATA, директив аналізатора, коментарів, спецсимволов, текстових данных.

Елементи данных.

Елемент — це структурна одиниця XML-документа. Підсумовуючи слово rose в в теги, ми визначаємо непорожній елемент, называемый.

вмістом якого є rose. У випадку як вмісту елементів можуть виступати як просто якийсь текст, і інші, вкладені, елементи документа, секції CDATA, інструкції з обробки, коментарі, — тобто. практично будь-які частини XML-документа.

Будь-який непорожній елемент має складатися з початкового, кінцевого тэгов і передачею даних, з-поміж них ув’язнених. Наприклад, такі фрагменти будуть елементами: rose.

Saratov.

Набором всіх елементів, які у документі, задається його структура, і визначаються все ієрархічне співвідношення. Пласке модель даних перетворюється з допомогою елементів в складну ієрархічну систему з безліччю можливих перетинів поміж елементами. Виробляючи згодом пошук у цьому документі, програма клієнта спиратиметься на інформацію, закладену у його структуру — використовуючи елементи документа. Пошук у своїй, природно, буде значно більше ефективний, ніж перебування потрібної послідовності з усього документа. У XML документі, зазвичай, визначається хоча б тільки елемент, званий кореневим і від нього програмианалізатори починають перегляд документа. У окремих випадках теги можуть змінювати й уточнюватимемо семантику тих чи інших фрагментів документа, по-різному визначаючи те інформацію і тим самим надаючи приложению-анализатору Основних напрямів інформацію про контексті використання описуваних даних. Наприклад, прочитавши фрагмент Holliwood ми можемо здогадатися, що щодо них документа про місті, тоді як у фрагменті Holliwood — про забегаловке. Що стосується, якщо елемент немає вмісту, тобто. немає даних, які має визначати, вона називається порожнім. Прикладом порожніх елементів в HTML можуть бути такі теги HTML, як, , .

Комментарии.

Коментарями є будь-яка область даних, ув’язнена між послідовностями символів Коментарі пропускаються аналізатором і тому при розборі структури документа як значущою інформації не рассматриваются.

Атрибуты.

Якщо за визначенні елементів що необхідно дати будь-які параметри, уточнюючі його характеристики, те є можливість вільно використовувати атрибути елемента. Атрибут — це пара «назва «=.

" значення ", і треба ставити щодо елемента у початковому тэге. Пример:

#ff08ff white или.

Ivan Petrov.

Спеціальні символы.

А, аби включити до документа символ, використовуваний визначення будь-яких конструкцій мови (наприклад, символ кутовий дужки) і викликати у своїй помилок у процесі розбору цього документу, потрібно використати його спеціальний символьний або числової ідентифікатор. Наприклад, <, > «чи $(десяткова форма записи), (шестнадцатеричная) тощо. Строковые позначення спецсимволов можуть визначатися в XML документі з допомогою компонентов.

(entity).

Директиви анализатора.

Інструкції, призначені для аналізаторів мови, описуються в.

XML документі з допомогою спеціальних тэгов — ;. Програма клієнта використовує ці інструкції керувати процесом розбору документа.

Найчастіше інструкції використовуються щодо типу документа.

(наприклад,) або запровадженні простору имен.

CDATA.

Щоб поставити область документа, яку за розборі аналізатор розглядатиме як простий текст, ігноруючи будь-які інструкцією, і спеціальні символи, але, на відміну від коментарів, матимуть можливість використовувати в додатку, необхідно використовувати теги. Всередині цієї блоку можна поміщати будь-яку інформацію, яка може знадобиться програміклієнту до виконання будь-яких дій (до області CDATA, можна поміщати, наприклад, інструкції JavaScript).

Природно, треба стежити, щоб у області, обмеженою цими тэгами був послідовності символів ]].

3. Моделювання XML-документов.

Однією з найсильніших властивостей XML є можливість створювати власні мови розмітки, у яких визначаються елементи і атрибути, найкраще відповідні инкапсулируемой інформації, і знімаються обмеження, викликані малопридатним мовою загального назначения.

Але що не можна визначити мову формальним чином, обмежити словник елементів і атрибутів здатною піддатися управлінню безліччю й управляти ними граматикою елементів. Процес формального визначення мови в XML називається моделюванням документів. Сьогодні існує два способу моделювання документів: визначення типу документа (DTD), які описують структуру документу з допомогою декларативних правил, и.

XML Schema, описує структуру документа з прикладу з допомогою шаблонів элементов.

Модель визначає документи, які можна створити з допомогою мови; чи, у межах термінології XML, модель документа встановлює, які документи узгоджуються (conform) із мовою. Модель документа відповідає такі запитання, як «Чи може бути заголовок цього елемента?» или.

«Чи повинна існувати зазначена ціну цього елемента?» Модель є документом особливий, написаним за правилами синтаксису, покликаного забезпечити описи мов XML, та вочевидь описує граматику і словник окремого мови розмітки. Іноді мову, і його описує, називають типом документа (document type) чи додатком XML (XML application). З допомогою такий моделі можна визначити, чи узгоджується певний документ XML з цим типом документа.

Фактично написані кимось документи, звані екземплярами документа.

(document instances), можуть узгодитися з мовою, описаним в моделі документа або погодитися. Узгоджувалися документи називають дійсними (valid) у тих мови; інших документів називають недійсними (invalid).

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

? Документи створюються людьми і є для комп’ютерної програми. Програми особливо вимогливі щодо форматів даних, оскільки важко створювати програми, здатні справлятися з відхиленнями від формату. Обмеживши застосовуваний шаблон передбачуваним форматом, набагато легше писати програми, а ймовірність помилок зменшується. Порівняння кожного примірника документу з моделлю гарантує, що ви зіштовхнетеся з проблемою несоответствия.

? У документі обов’язково мали бути зацікавленими поля. Наприклад, в бланку замовлення вироби необхідно вказати поштову адресу, аби знати, куди відправляти посилку. Застосування моделі документа забезпечує присутність усіх полей.

? Ви запитуєте документи люди, необізнаних з що використовуються додатком XML. Оскільки модель сама є документом, може бути відкритим ресурсом, доступне завантаження, заслань та передачі. Модель документа може у ролі даних у середовищі створення структурованих документів, наприклад, в редакторі XML. У такій програмі редактор може автоматично вставляти необхідні поля і пропонувати розробникові документа списки допустимих груп элементов.

? Розробникові потрібна надійна структура для що розвивається мови чи сімейства мов. Модель документа надає найпростіший спосіб створення стандарту, такого, наприклад, як HTML Version 4.0. Відстежування нових версій мови життєво важливо задля програм XML, оскільки старі програми може стати несумісними з більш новими версіями мови. Моделі документів можна поєднати до створення складових мов. Например,.

DocBook використовує модель таблиць CALS, а чи не намагається визначити свою.

Звісно, може бути основи, а не використовувати модель документов.

Супровід моделі може бути незручним, особливо на початку, коли мова піддається тестуванню та перспективи подальшої розробці. Вона може уповільнити обробку, наприклад, якщо браузери XML повинні завантажувати модель документа із електромережі. Нарешті, наявність авторитарної моделі, що б, які елементи можна використовувати, а які - немає, може просто зламати стиль роботи. Крім того, потрібно витратити сили те що, щоб розробити модель чи знайти готову, відповідальну потребам. У кінцевому підсумку, автор сама вирішує, використовувати модель документа чи ні: XML спроектований отже дозволяє працювати у будь-якому случае.

Деякі моделі документів (саме, DTD) трохи зле працюють із просторами имен (пространства імен є способом угруповання елементів із джерел, наприклад, вбудовування рівнянь MathML всередину документів HTML). Це створює проблеми, якщо DTD рвуться обмежувати застосовувані автором елементи передбачуваним кінцевим безліччю. Нині вичерпного вирішення цієї дилеми нет.

Неможливо передбачити всі види просторів імен та оголосити їх елементи і атрибути всередині свого DTD — їх то, можливо нескінченне число.

4. Documents Type Definitions (DTD).

У XML-документах DTD визначає набір дійсних елементів, ідентифікує елементи, які можуть перебувати за іншими елементах, яких і визначає справжні атрибути кожного з них. Синтаксис DTD дуже своєрідним і зажадав від автора-разработчика потрібні додаткових зусиль під час створення таких документов (сложность DTD є одним із причин те, що використання SGML, що вимагає визначення DTD нічого для будь-якого документа, не одержало поширення як, наприклад, HTML). Як зазначалося, в XML використовувати DTD необов’язково — документи, створені без цих правил, будуть правильно оброблятися программой-анализатором, якщо вони задовольняють основним вимогам синтаксису XML. Проте контроль над типами елементів і коректністю відносин з-поміж них у разі буде цілком покладатися на автора документа. До того часу, поки граматика нашої нової мови не описана, його використовувати лише його автор, і цього застосовувати спеціально розроблене програмне забезпечення, а чи не універсальні программы-анализаторы. У DTD для XML використовуються такі типи правил: правила для елементів та його атрибутів, описи категорий (макроопределений), опис форматів бінарних даних. Усі вони описують основні конструкції мови — елементи, атрибути, символьні константи зовнішні файли бінарних даних. А, щоб використовувати DTD у документі, можна чи описати його в зовнішньому файлі і за описі DTD просто вказати посилання цей файл або ж безпосередньо всередині самої документа виділити область, у якій визначити потрібні правила. У першому випадку у документі вказується ім'я файла, що містить DTD-описания:

Усередині ж документа DTDдекларації включаються наступним образом:

У разі, якщо використовуються одночасно внутрішні і його зовнішні описи, то программой-анализатором будуть спочатку розглядатися внутрішні, тобто. їх пріоритет вище. Під час перевірки документа XML-процессор в першу чергу шукає DTD всередині документа. Якщо правила всередині документа не визначено й не заданий атрибут standalone = «yes », то програма завантажить зазначений зовнішній файл і правил, перебувають у ньому, будуть лічені звідти. Якщо ж атрибут standalone має значення «yes », то використання зовнішніх DTD описів буде запрещено.

Визначення элемента.

Елемент в DTD визначається за допомогою дескриптора! ELEMENT, у якому вказується назва елемента і структура його вмісту. Наприклад, для елемента можна визначити таке правило:

Ключове слово ELEMENT вказує, що даної інструкцією буде описуватися елемент XML. Усередині цієї інструкції задається назва элемента (coach) і тип його вмісту. У визначенні елемента ми указуємо спочатку назва элемента (coach), та був його модель вмісту — визначаємо, які інші елементи чи типи даних могли трапитися всередині нього. У разі вміст елемента name визначатиметься при допомоги спеціального маркера PCDATA (що означає parseable character data — будь-яка інформація, з якої може працювати программа-анализатор). Є ще дві інструкції, що визначають тип вмісту: EMPTY, ANY. Перша зазначає, що елемент може бути пустым (например,), друга — те що, що вміст елемента спеціально не описується. Послідовність дочірніх для поточного елемента об'єктів поставив у вигляді списку розділених комами назв елементів. У цьому у тому, щоб вказати кількість повторень включень цих елементів можна використовувати символи +,*,? :

У цьому вся прикладі вказується, що в елемента повинні прагнути бути визначено елементи coach, player і assistant, причому елемент title є елементом і може зустрічатися лише один раз, елемент player може зустрічатися кілька разів, а елемент assistant є опциональным, тобто. може відсутні. У разі, якщо є кілька можливих варіантів вмісту що визначається елемента, їх слід розділяти з допомогою символу «| «:

Символ * у цьому прикладі зазначає, що обумовлена послідовність внутрішніх елементів то, можливо повторена кілька разів або ж не використовуватися. Якщо визначенні елемента вказується «змішане «вміст, тобто. текстові дані чи набір елементів, то потрібно спочатку вказати PCDATA, та був розділений символом «| «список елементів. Приклад коректного XMLдокумента:

]>

John.

< l_name>Dixon.

< player number= «1 «>

< f_name >Jorge.

Woods.

English.

Визначення атрибутов.

Списки атрибутів елемента визначаються з допомогою ключового слова! ATTLIST. Усередині нього задаються назви атрибутів, типи їх значень і додаткові параметри. Наприклад, для елемента може бути визначено такі атрибуты:

У цьому прикладі для елемента player визначаються три атрибута: number і type, які мають типи ID (идентификатор) і список можливих значень відповідно. Усього існує шість можливих типів значень атрибута:

. CDATA — вмістом документа можуть бути будь-які символьні данные.

. ID — визначає унікальний ідентифікатор елемента у документе.

. IDREF (IDREFS) — вказує, що значенням атрибута має бути название (или кілька таких назв, розділених прогалинами у другий випадок) унікального ідентифікатора певного у цьому документі элемента.

. ENTITY (ENTITIES — значення атрибута має бути названием (или списком назв, якщо використовується ENTITIES) компонента (макровизначення), певного в документе.

. NMTOKEN (NMTOKENS) — вмістом елемента може лише одне окреме слово (т.е. цей параметр є обмеженим вариантом.

CDATA).

. Список допустимих значень — визначається список значень, що може мати даний атрибут.

Також у визначенні атрибута можна використовувати такі параметры:

. #REQUIRED — визначає обов’язковий атрибут, що має бути заданий переважають у всіх елементах даного типа.

. #IMPLIED — атрибут перестав бути обязательным.

. #FIXED «значення «- вказує, що атрибут повинен мати не лише вказане значення, однак визначення атрибута перестав бути обов’язковим, але у процесі розбору його значення у разі передають программе-анализатору.

. Значення — задає значення атрибута по умолчанию.

Визначення компонентов (макроопределений).

Компонент (entity) є визначення, вміст яких то, можливо повторно використано у документі. За інших мовами програмування подібні елементи називаються макроопределениями. Створюються DTD-компоненты з допомогою інструкції !ENTITY:

Программа-анализатор, переглядаючи насамперед вміст області DTDвизначень, обробить цю інструкцію і за подальшому розборі документа використовуватиме вміст DTD-компонента там, де зустрічатиметься за його назву. Тобто. нині у документі ми можемо вжити вислів &hello;, що буде замінено на рядок «Ми раді вітати Вас «.

У випадку, всередині DTD можна поставити три типу макроопределений:

Внутрішні макровизначення — призначені визначення строковой константи, з допомогою можна організовувати посилання часто змінювану інформацію, роблячи документ більш читабельним. Внутрішні компоненти входять у документ з допомогою амперсанта &.

У XML існує п’ять предустановленных внутрішніх символьних констант:

. < - символ «- символ «> «.

. & - символ «& «.

. ' - символ апострофа «' «.

. «- символ подвійний лапки «» «.

Зовнішні макровизначення — свідчить про вміст зовнішнього файла, причому цим вмістом може бути як текстові, і двоичные дані. У першому разі місці використання макросу будуть вставлені текстові рядки, у другому — бінарні дані, які аналізатором не розглядаються і використовуються зовнішніми программами.

Макровизначення правил — макровизначення параметрів можуть застосовуватися лише всередині області DTD і позначаються спеціальним символом %, вставляемым перед назвою макросу. У цьому вміст компонента буде вміщено у текст DTD-правила.

Наприклад, наступного фрагмента документа: можна використовувати більш коротку форму записи:

Макровизначення часто йдуть на описи параметрів в правилах атрибутів. І тут з’являється можливість вільно використовувати однакові визначення атрибутів щодо різноманітних элементов:

Типізація данных.

Досить часто під час створення XML-элемента розробникові потрібно визначити, дані якого типу можна використовувати у його вмісту. Тобто. коли ми визначаємо елемент 10.10.98, то хочемо бути впевненими, що у документі тут буде перебувати рядок, що є дату, а чи не число чи довільну послідовність символів. Використовуючи типізацію даних, можна елементи, значення яких можна використовувати, наприклад, як параметрів SQL-запросов. Програма клієнт у разі повинна знати, до якому типу даних належить поточне значення елемента у разі відповідності формує SQL-запрос. Якщо ролі програми за клієнта використовується верифицирующий XML-процессор, то інформацію про типі можна передавати з допомогою спеціально створеного при цьому атрибута елемента, має відповідне DTD-определение. У процесі розбору программа-анализатор передасть значення цієї атрибута клієнтському додатку, що зможе використання цієї інформації належним чином. Наприклад, аби вказати, що вміст елемента має бути довгим цілим, можна використовувати таке DTDопределение:

Задавши атрибута значення за умовчанням LONG і визначивши його як FIXED, ми дозволили цим программе-клиенту отримати необхідну інформацію про типі вмісту даного елемента, і нині вона може самостійно визначити відповідність типу цього вмісту зазначеному в DTDопределении.

Приклад XML-документа, у якому визначаються й закони використовують кілька елементів з різними типами данных:

32.5 true.

100 р. 00 к.

Як очевидно з прикладу, механізм створення елементів документа у своїй анітрохи посутньо не змінився. Усі необхідна для перевірки типів даних інформація закладена й у визначення елементів всередині блоку DTD.

DTD дуже зручний механізм здійснення контролю над вмістом документа. Сьогодні, майже всі програми перегляду документів Інтернет використовують DTD-правила. Але це єдиний спосіб перевірки коректності документа. Нині в W3 консорціумі перебуває в розгляді новий стандарт мови описи структури документів, званий схемами даних. 5. Схеми даних Схеми даних (Schemas) є альтернативним способом створення правил побудови XML-документов. У порівняні з DTD, схеми мають більш потужними коштів визначення складних структур даних, забезпечують більш зрозумілий спосіб описи граматики мови, здатні легко модернізуватися і розширюватися. Безумовним гідністю схем є й те, що вони дозволяють описувати правила для XML-документа засобами самого ж XML. Але це значить, що схеми можуть абсолютно замінити DTD-описания — цей спосіб визначення граматики мови використовується зараз практичними усіма верифицирующими анализаторами XML і більше, самі схеми, як звичайні XML-элементы, теж описуються DTD. Але серйозні можливості нового мови та його відносна простота, безумовно, дає підстави стверджувати, що наступний стандарт знайде широке використання у ролі зручного і ефективним засобом перевірки коректності складання документів. У зараз у W3 консорціумі працюємо над першої спецификацией схем даних. Розглянемо основні можливості схем даних, спробуємо використовувати їх задля контролю коректності раніше описуваних XML-документов.

Зовні документи схем немає від документів XML. Документ размечается з допомогою спеціальних елементів, виконують в схемах роль інструкцій. Ці інструкції становлять набір правил, використовуючи які, програма-клієнт робитиме висновок у тому, коректний документ чи ні. Схема даних, наприклад, може бути наступному образом:

Если ми ввімкнемо наведені правила всередину XML-документа, програма-клієнт використовувати їх задля перевірки. Тобто. він тепер зможе визначити, що правильним буде наступний фрагмент:

John Ree Peter Loyd Emil McGeer.

Усі конструкції мови схем описуються правилами «XML DTD for XML-DataSchema ». Область схеми даних Створюючи схеми даних, ми визначаємо у документі спеціальний елемент,; у якому містяться описи правил:

Если використовувати окреме простір імен, то повний XML-документ, яке у собі схему даних, виглядатиме наступним образом:

Опис елементів Для визначення класу елемента, до котрого подальшому придадуться інструкції, описують його вміст і структуру, призначений спеціальний елемент схеми elementType. Назва елемента задається атрибутом id. Усі подальші інструкції, які належать до описуваному класу, визначають його внутрішню структуру й створили набір допустимих даних, містяться всередині блоку, заданого тэгами і. При визначенні класу елемента, можна також ознайомитися використовувати коментар до нього, які у теги.

Атрибуты елемента А, щоб у описі елемента визначити її атрибути і описати властивості цих атрибутів потрібно використовувати елемент attribute:

В даному прикладі елементу визначається атрибут number, значенням якої може бути будь-яка послідовність дозволених символов:

Подібно DTD, схеми даних дозволяють встановлювати обмеження на значення й спосіб використання атрибутів. І тому в дескрипторі необхідно використовувати параметр atttype. Наприклад, якщо ми хочемо вказати, що значення атрибута має використовуватися программой-анализатором як унікальний ідентифікатор, необхідно створити таке правило:

Если ж потрібна поставити список можливих значень атрибута, то приклад виглядатиме наступним образом:

Модель вмісту елемента Під моделлю вмісту у схемі даних розуміють опис всіх допустимих об'єктів XML-документа, використання є всередині даного елемента коректний. Модель вмісту визначається інструкціями, розташованими всередині блоку. Вкладені елементи описуються з допомогою інструкції element, у якій параметром type вказується клас об'єкта — посилання його определение:

Якщо потрібно вказати режим використання вкладеного елемента, треба визначити параметр occurs:

Можливі значення цього параметра таковы:

. REQUIRED — елемент може бути обов’язково определен.

. OPTIONAL — використання елемента перестав бути обязательным.

. ZEROORMORE — вкладений елемент може зустрічатися кілька разів або ні разу.

. ONEORMORE — елемент повинен зустрічатися хоча колись Приклади правильних XML-документов, використовують наведену вище схему:

John Ree English Celtics Portsmut.

или.

John Ree Celtics Portsmut.

Кроме елементів, вмістом XML-документа можуть є також звичайний і області CDATA. Для позначення типів вмісту поточного елемента в схемах використовуються такі инструкции:

. — зазначає, що вмістом елемента є тільки вільна текстова информация (секция PCDATA) :

. — зазначає, що вмістом елемента мають бути лише елементи, без тексту, незаключенного ані за элемент:

. — будь-яке поєднання елементів і текста.

. — порожній елемент. Угруповання елементів Елемент group використовується у тому, аби поставити деяку послідовність вкладених объектов:

Группировка об'єктів дозволяє визначати відразу групу об'єктів різних типів, які можуть опинитися перебуває всередині даного об'єкта. У наведеному прикладі зазначили, що в об'єкта типу conteam можуть бути включені елементи title, player, і assistant, причому атрибутом occurs зазначили, що елементи групи необов’язкові. Коректним для таких схем будуть такі фрагменти документов:

Celtics … …

Celtics.

Celtics …

При допомоги атрибута groupOrder можна також ознайомитися ставити режим використання группированных елементів При встановленому значенні OR можливо використання не всіх елементів групи, а лише декого з тих. Якщо поставлено значення AND, то обидва елемента мають стояти в обов’язковому порядку. Наприклад, для наступній групи правил:

будут вважатися правильними лише такі варианты:

Celtics … …

или.

Celtics …

Закрита й відкритий моделі описи вмісту елемента Коли ми визначаємо модель вмісту поточного елемента, список додаткових допустимих елементів правилами не обмежується — може вільно розширюватися. Наприклад, для наведеного вище правила, крім позначених елементів, і геть можуть використовуватися додаткові елементи, неописані правилами, наприклад, :

Celtics … … …

Однако у разі, якщо ми хочемо обмежити створювані нами правила від включення додаткових елементів, ми повинні йти атрибут content та намагання встановити йому спеціальне значення CLOSED:

Теперь наведений фрагмент XML-документа вважатиметься некоректним, т.к. параметром content заборонено використання всередині елемента team інших об'єктів, крім вказаних у правилі. Ієрархія класів А, щоб за описі класу обмежити список об'єктів, які можуть бути батьківськими для даного елемента, необхідно використовувати елемент схеми domain. Інструкція вказує, що поточний об'єкт має визначатися суворо всередині елемента, заданого цим тэгом. Наприклад, наступного фрагменті вказується, що елемент то, можливо визначено суворо всередині тэга :

Обмеження на значення Значення елементів може бути обмежено з допомогою тэгов і ;:

Використання правил з зовнішніх схем Схема може використовувати елементи і атрибути з деяких інших схем. І тому треба використовувати атрибут href, де вказують назва зовнішньої схеми. Например:

Компоненты схем Компоненти, чи макроопределении, використовують у схемах так само, як і в DTD. Для визначення призначені теги і ;:

goalkeeper.

Типы даних У схемах є можливість ставити той чи інший тип даних, використовуючи щодо елемента директиву із зазначенням конкретного типа:

У DTD ми мали створити атрибут з конкретною назвою, визначальним операцію призначення формату даних, і значенням, певним як fixed. Використання елемента дозволяє вказувати це автоматично, але задля забезпечення програмної незалежності потрібно спочатку домовитися про позначеннях типів данных (значения, які мають передаватися параметру dt елемента datatype), навіщо можна використовувати, наприклад, універсальні ідентифікатори ресурсів URI. У кожному разі, як й раніше, всі необхідні дії, пов’язані з конкретною інтерпретацією даних, які у документі, здійснюються программой-клиентом і визначаються логікою його роботи. У розділі, присвяченому DTD, ми готуємося вже розглядали приклад XML-документа, що реалізовуватиме описані нами можливості. Ось як би цей приклад під час використання схем данных:

5 2 32.5 true 18 346 34.28 …

Підсумовуючи всього сказаного, слід зазначити, що розвитку сучасних інформаційних систем такий динамічний, що тимчасової проміжок між появою новій технології та її практичним використанням в реально діючих додатках сьогодні замалий. На зміну устаревающему стандарту HTML до самого найближчим часом має прийти новий, більш і універсальну мистецьку мову описи даних. І тому факт, що XML як мову ще стандартизовано і її складові досі перебувають у стадії розробки, певне, перестав бути причиною неможливості її використання вже нині, на вирішення конкретних завдань в реальних системах.

Ілюстративний приклад Файл Clients.dtd.

XML документ дійсний при цьому DTD.

John Silver.

*********.

John Fitzerald Silver.

London, Piccadilli st. 467.

3 458 739 p.c. 3487.

[email protected].

172.36.01.12.

12.01.03.

Arthur Swift.

*********.

Arthur J. Swift.

Dublin. Solar st. 463.

65 863 483 p. c 2342.

12.02.02.

1 «000.0 $.

192.23.41.03.

W3C схема еквівалентна попередньому DTD.

1. «Вивчаємо XML» Еге. Рей — Спб: Символ-Плюс, 2001.

2. «Міфи і реальності XML» Сергій Кузнєцов — ІСП РАН, Центр інформаційних технологий.

3. «Semantic Web: ролі XML і RDF» З. Деккер — журнал ‘Відкриті системи' вересень 2001.

4. Матеріали з CIT-forum'a.

Кінець формы.

Показати весь текст
Заповнити форму поточною роботою