
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.
Спеціальні символи. Для того, щоб включити в документ символ, що використовується для визначення яких-небудь конструкцій мови (наприклад, символ кутової дужки) і не викликати при цьому помилок в процесі розбору такого документа, потрібно використовувати його спеціальний символьний або числовий ідентифікатор. Наприклад&lt;&gt;&quot; або$(десяткова форма запису)(шестнадцатеричная) і т.д.