Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
01.03.2016
Размер:
358.4 Кб
Скачать

9. Технології xml

Мова XML – Extensible Markup Language (Розширювана Мова Розмітки),з'явилася відносно недавно, але фактично перетворилась в невід’ємну технологію уніфікованих форматів обміну даними та структурованого подання електронних документах в різних інформаційних системах. Мова XML стала основою WEB технологій, технологій електронного бізнесу, універсальним механізмом взаємодії програмних систем і способом представлення інформації в СКБД.

Зовні мова XML схожа на мову HTML (тегові операторні дужки), але функціонально має більш широку сферу застосування. На базі XML завдяки її універсальності з'явилося багато новітніх технологій обміну даними між додатками, зберігання даних в БД і універсалізації доступу до даних в WEB-додатках.

9.1. Основи та компоненти xml

XML був створений в World Wide Web Consortium (W3C) для подолання обмежень мови HTML, Hypertext Markup Language (Гіпертекстова Мова Розмітки), яка є основою всіх Web-сторінок.

Як і HTML, XML базується на SGML - Standard Generalized Markup Language (Стандартна Узагальнена Мова Розмітки). Хоча SGML десятиліттями використовувався у видавничій справі, він є складним, що відлякує багато людей, які могли б його використовувати (SGML також розшифровується як "Sounds great, maybe later" - "Звучить прекрасно, можливо пізніше"). XML був розроблений з прицілом на Web.

Мова HTML - дозволяє проглянути прості теги HTML практично на будь-якому пристрої від PDA до мейнфрейма і підтримує перетворення розмітки HTML в голос і в інші формати за допомогою відповідних інструментів. Але HTML володіє суттєвою вадою, яка полягає в тому, що HTML був розроблений з метою лише розмітки електронних документів для їх візуалізації та візуального подання користувачам. Для розуміння сутності вади розглянемо документ:

<p><b>Mrs. Mary McGoon</b>

<br>

1401 Main Street

<br>Anytown, NC 34829</p>

Щоб відобразити HTML, браузер просто слідує інструкціям в HTML-документі. Тег параграфа (<p>) повідомляє браузеру, що потрібно відобразити новий рядок, звичайно, з пропуском рядка перед ним, а два тега розриви (<br>) повідомляють браузеру, що потрібно перейти на новий рядок без пропусків між рядками. Браузер чудово форматує документ, але програма все ж таки не знає, що це адреса

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

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

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

<address>

  <name>

    <title>Mrs.</title>

              <first-name> Mary</first-name>

              <last-name> McGoon</last-name>

  </name>

  <street>1401 Main Street</street>

  <city>Anytown</city>

  <state>NC</state>

  <postal-code>34829</postal-code>

</address>

Наприклад, для виділення поштового коду з цього документа достатньо знайти вміст, яке обрамлено тегами <postal-code> і </postal-code>, або контейнер, званий елементом <postal-code>.

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

Документ XML містить декілька компонентів, проте найбільш головними є три компонента, що використовуються для породження складових структурованого XML-документа:

  • теги;

  • елементи;

  • атрибути.

Тег – це текст (заголовок) між лівою кутовою дужкою (<) та правою кутовою дужкою (>).У прикладі Початкові теги (такі, як <name>) та Кінцеві теги (такі, як </name>). .

Елемент – це структурна одиниця XML-документа, що визначається початковим тегом, кінцевим тегом і всім, що є між ними. Опис елементів обов'язково включає ключові тегі (заголовки) початковий і кінцевий, які повинні співпадати по найменуванню <address></address>. Наявність слова між тегами визначає непорожній елемент. Елемент може мати довільне число атрибутів (властивостей). Елементи можуть містити інші елементи, які можуть розташовуватися в довільному порядку, але написані за визначеними правилами. У прикладі елемент <name> містить два дочірні елементи: <title>, <first-name> і <last-name>.

В XML документі обов'язково повинен бути головний елемент (root - address). Допускається елемент без вмісту: </address >.

Атрибут - це пара ім'я="значення" усередині початкового тега елементу. Атрибути задають унікальні властивості елементів і можуть бути отриманий при обробці документа. Наприклад <city state="NC">Anytown</city>. У прикладі state є атрибутом елементу <city>; у попередньому прикладі <state> був елементом. Атрибути мають значення і тип.

Крім атрибутів в елементи може бути включений звичайний текст, наприклад: 1401 Main Street

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

Коментарі. Коментарі можуть з'являтися де завгодно в документі; вони можуть навіть з'являтися перед кореневим елементом. Коментар починається з <!-- і закінчується -->. Коментар не може не містити подвійного дефіса (--) ніде, окрім як в кінці; за цим виключенням, коментар може містити що завгодно. Коментарі пропускаються парсером (аналізатором) і тому при розборі структури документа як значуща інформація не розглядаються.

Найважливіше, що будь-яка розмітка усередині коментаря ігнорується; якщо ви хочете видалити великий розділ з XML-документа, просто укладете цей розділ в коментар. (Щоб відновити закоментований розділ, просто видалите теги коментаря.)

<!-- Це PI для Cocoon: -->

<?cocoon-process type="sql"?>

Інструкції обробки. Інструкції, призначені для аналізаторів мови, є розміткою призначеної для певного коду, описуються в XML документі за допомогою спеціальних тегів - <? і ?>. Програма клієнта використовує ці інструкції для управління процесом розбору документа. Найбільш часто інструкції використовуються при визначенні типа документа (наприклад <? Xml version=”1.0”?>) або створенні простору імен[11].

У прикладі вище це інструкція обробки (іноді звана PI) для Cocoon, бібліотеки обробки XML від Apache Software Foundation. Коли Cocoon обробляє XML-документ, він шукає інструкції обробки які починаються з cocoon-process, а потім обробляє XML-документ відповідно до них. У даному прикладі атрибут type="sql" повідомляє Cocoon, що the XML-документ містить оператора SQL.

Спеціальні символи. Для того, щоб включити в документ символ, що використовується для визначення яких-небудь конструкцій мови (наприклад, символ кутової дужки) і не викликати при цьому помилок в процесі розбору такого документа, потрібно використовувати його спеціальний символьний або числовий ідентифікатор. Наприклад &amplt; &ampgt; &ampquot; або &#036;(десяткова форма запису) &#x1a (шестнадцатеричная) і т.д.

Простори імен.

Потужність XML походить від його гнучкості, з того факту, що будь хто з мільйонів інших людей може визначати власні теги, щоб описувати дані. У прикладі XML-документа для імені і адреси людини елемент <title> для ввічливого іменування людини, цілком відповідний вибір для елементу імені. Якщо ж ви працюєте з книгосховищем, онлайна, ви можете створити елемент <title> для назви книги. Якщо ж ви працюєте із заставною компанією, онлайна, ви можете створити елемент <title> для частини заставного документа. Все це розумні варіанти, але всі вони створюють елементи з одним і тим же ім'ям. Як ви повідомите, що даний елемент <title> відноситься до людини, книги або частини застави? За допомогою просторів імен.

Щоб використовувати простір імен, ви визначаєте префікс простору імен і відображаєте його на певний рядок. От так ви можете розрізнити префікси простору імен для наших трьох елементів <title>:

<?xml version="1.0"?>

<customer_summary

    xmlns:addr="http://www.xyz.com/addresses/"

    xmlns:books="http://www.zyx.com/books/"

    xmlns:mortgage="http://www.yyz.com/title/"

    >

... <addr:name><title>Mrs.</title> ... </addr:name> ...

... <books:title>Lord of the Rings</books:title> ...

... <mortgage:title>NC2948-388-1983</mortgage:title> ...

В даному прикладі три префікси простору імен: addr, books, і mortgage. Відмітьте, що визначення простору імен для певного елементу означає, що всі його дочірні елементи належать до того ж простору імен. Перший елемент <title> належить до простору імен, оскільки до нього належить його батьківський елемент <addr:Name> .

Одне останнє зауваження: Рядок у визначенні простору імен є тільки рядком. Так, ці рядки виглядають як URL, але ними не є. Ви можете визначити xmlns:addr="mike", і це також працюватиме. Тільки одне важливо відносно рядка простору імен: воно має бути унікальним; от чому більшість просторів імен виглядають як URL. XML-парсер не звертається до http://www.zyx.com/books/, щоб знайти DTD або схему, він просто використовує цей текст як рядок. Це дещо збиває з пантелику, але саме так працюють простори імен.

На рисунку, розташованому нижче, представлений вид найпростішого XML документа. Він складається із заголовка і тексту документа, якій включає інші елементи і їх атрибути (в прикладі елементи: article, part, picture; атрибути: version, file). Крім того, в документі може розташовуватися звичайний текст.

Рис. 1. Приклад простого XML документа.

Фактично, XML є новою технологію інтеграції програмних компонент. Основними перевагами використання XML відповідно до задач кадастрових систем є:

  1. Інтеграція даних з різних джерел. XML можна використовувати для об'єднання різнорідних структурованих даних на середньому рівні трьохрівневих Web-систем, баз даних.

  2. Локальна обробка даних. Отримані дані у форматі XML можна розбирати, обробляти і відображати безпосередньо на клієнті без додаткових звернень до серверу.

  3. Перегляд і маніпулювання даними в різних розрізах. Отримані дані можуть оброблятися і бути видимим клієнтом різними способами залежно від потреб кінцевого користувача.

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

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