Таким чином, у розробників з'являється унікальна можливість визначати власні команди, що дозволяють їм найбільш ефективно визначати дані, що зберігаються в документі. Автор документа створює його структуру, будує необхідні зв'язки між елементами, використовуючи ті команди, що задовольняють його вимогам і домагається такого типу розмітки, що необхідно йому для виконання операцій перегляду, пошуку, аналізу документа.
Ще одною з очевидних переваг XML є можливість використання її в якості універсальної мови запитів до сховищ інформації. Сьогодні в глибинах W3C знаходиться на розгляді робочий варіант стандарту XML-QL (або XQL), що, можливо, у майбутньому складе серйозну конкуренцію SQL. Крім того, XML-документи можуть виступати в якості унікального засобу збереження даних, що містить у собі одночасно засоби для розбору інформації й представлення її на стороні клієнта. У цій області одним із перспективних напрямків є інтеграція Java і XML - технологій, що дозволяє використовувати міць обох технологій при побудові машинно-незалежних додатків, що використовують, крім того, універсальний формат даних при обміні інформацією.
XML дозволяє також здійснювати контроль за коректністю даних, що зберігаються в документах, робити перевірки ієрархічних співвідношень усередині документа і встановлювати єдиний стандарт на структуру документів, умістом яких можуть бути самі різноманітні дані. Це означає, що його можна використовувати при побудові складних інформаційних систем, у котрих дуже важливим є питання обміну інформацією між різноманітними додатками, що працюють в одній системі. Створюючи структуру механізму обміну інформації на самому початку роботи над проектом, менеджер може позбути себе в майбутньому від багатьох проблем, пов'язаних із несумісністю використовуваних різноманітними компонентами системи форматів даних.
На основі XML уже сьогодні створені такі відомі спеціалізовані мови розмітки, як SMIL, CDF, MathML, XSL, і список робочих проектів нових мов, що знаходяться на розгляді W3C, постійно поповнюється.
Структура документа
Не обмежуючи автора яким-небудь фіксованим набором тегів, XML дозволяє йому вводити будь-які імена. Ця можливість є ключовою для активного маніпулювання даними.
Приклад для порівняння представлення списку імен і адрес на HTML і на XML.
От фрагмент HTML:
<H1>Еditor Сontacts</H1>
<H2>Ім'я: Джонатан Эйнджел</H2>
<P>Посада: старший редактор</P>
<P>Видання: Network Magazine</P>
<P>Вулиця і будинок: Гарісона, 600 </P>
<P>Місто: Сан-Франциско</P>
<P>Штат: Каліфорнія</P>
<P>Індекс: 94107</P>
<P>Електронна пошта:
jangel@mfi. com</P>
Теги розміщають дані на екрані, але нічого не повідомляють про їхню структуру.
У випадку XML той же самий фрагмент буде поданий у такий спосіб (і збережений у файлі EDITORS. XML).
<?xml version = '1.0' ?>
<?xml-stylesheet type='text/xsl' href='editors.xsl' ?>
<editor_contacts>
<editor>
<first_name>Jonatan</first_name>
<last_name>Andjel</last_name>
<title>chif editor</title>
<publication>Network
Magazine</publication>
<address>
<street>Garissona, 600 </street>
<city>San-Francisko</city>
<state>California</state>
<zip>94107</zip>
</address>
<e_mail>jangel@mfi.com</e_mail>
</editor>
</editor_contacts>
У XML теги не можуть накладатися, як у HTML, проте вони можуть бути вкладені один в одний. Насправді, вкладення навіть рекомендується як засіб створення ієрархії даних (підпорядковані або рівноправні відношення). Як очевидно з приведеного приклада, такі елементи, як <first_name> і <e_mail>, містять дані, у той час як інші (<address>) присутні тільки з метою структурування.
Теги початку і кінця елемента є основними використовуваними в XML розмітками, але ними справа не вичерпується. Наприклад, елементам можуть бути привласнені атрибути. Ця можливість аналогічна наявній в HTML, де, наприклад, елементу <table> може бути привласнений атрибут align=”center”. У XML елемент може мати один або більше пов'язаних із ним атрибутів, причому при упорядкуванні документа ви можете видумати їх стільки, скільки побажнете, наприклад <publication topic=”networking” circulation=”controlled”>.
Документи XML можуть містити посилання на інші об'єкти. Посилання являють собою рядок, що починається з амперсанта і закінчується “;”. Ці посилання дозволяють, зокрема, вставити в документ спеціальні символи. Посилання XML на об'єкти надають набагато більше можливостей, тому що вони можуть посилатися на визначені автором розділи тексту в тому ж самому або в іншому документі.
Наприклад, посилання на об'єкти дозволяють застосувати об'єктно-орієнтований підхід при створенні журнальної статті:
<article>
&introduction;
&body;
&sidebar;
&conclusion;
&resources;
</article>
Найпростіший XML- документ може виглядати так, як це показано в Прикладі 1
<?xml version="1.0"?>
<list_of_items>
<item id="1"><first/>Перший</item>
<item id="2">Другий <sub_item>підпункт 1</sub_item></item>
<item id="3">Третій</item>
<item id="4"><last/>Останній</item>
</list_of_items>
У XML існують відкриваючі, закриваючі і порожні теги (у HTML поняття порожнього тэга теж існує, але спеціального його позначення не потрібно).
Тіло документа XML складається з елементів розмітки (markup) і безпосередньо вмісту документа - даних (content). XML - теги призначені для визначення елементів документа, їхніх атрибутів і інших конструкцій мови.
Любий XML-документ повинний завжди починатися з інструкції <? xml? >, усередині якої також можна задавати номер версії мови, номер кодової сторінки й інші параметри, необхідні програмі-аналізатору в процесі розбору документа.
Правила створення XML- документа
У загальному випадку XML- документи повинні задовольняти таким вимогам:
У заголовку документа поміщається оголошення XML, у якому вказується мова розмітки документа, номер її версії і додаткова інформація
Кожний відкриваючий тег, що визначає деяку область даних у документі обов'язково повинний мати відповідний закриваючий тег
У XML враховується регістр символів
Всі значення атрибутів, використовуваних у визначенні тегів, повинні бути взяті в лапки
Вкладеність тегів у XML строго контролюється, тому необхідно стежити за порядком слідування відкриваючих і закриваючих тегів
Вся інформація, що розташовується між початковим і кінцевими тегами, розглядається в XML як дані і тому враховуються всі символи форматування
Якщо XML- документ не порушує приведені правила, то він називається формально-правильним і всі аналізатори, призначені для розбору XML- документів, зможуть працювати з ним коректно.
З XML-документом пов'язані три рівні коректності:
Правильно побудований XML-документ - це такий, у якому елементи правильно структуровані у вигляді дерева з коректно розставленими відкриваючих і закриваючих тегами.
Діючий XML-документ правильно побудований і містить теги, що відповідають оголошенню типу документа. Він містить тільки елементи і значення атрибутів, що відповідають DTD. Хоча XML-документ може підготовлятися і читатися без DTD, DTD істотно для встановлення дієвості.
Синтаксически коректний XML-документ знаходиться поза контролем XML. Розробник такого документа відповідає за його логічну структуризацію.
Проте крім перевірки на формальну відповідність граматиці мови, у документі можуть бути присутнім засоби контролю над вмістом документа, за дотриманням правил, що визначають необхідні співвідношення між елементами і формуючою структурою документа. Наприклад, наступний текст, будучи цілком правильним XML- документом, буде абсолютно безглуздим:
<country><title>Russia</title><city><title>Novosibirsk</country></title></city>
Для того, щоб забезпечити перевірку коректності XML-документів, необхідно використовувати аналізатори, що роблять таку перевірку і називаються верифікованими.
На сьогоднішній день існує два способи контролю правильності XML-документа: DTD - визначення (Document Type Definition) і схеми даних (Semantic Schema). Визначення DTD- правил у XML не є необхідністю.
Конструкції мови
Вміст XML- документа являє собою набір елементів, секцій CDATA, директив аналізатора, коментарів, спецсимволів, текстових даних.
Елементи даних
Елемент - це структурна одиниця XML- документа. Вкладаючи слово rose в у тэги <flower> </flower> , ми визначаємо непустий елемент, названий <flower>, вмістом якого є rose. У загальному випадку в якості вмісту елементів можуть виступати як простий текст, так і інші, вкладені, елементи документа, секції CDATA, інструкції з опрацювання, коментар, - тобто практично будь-які частини XML- документа.
Любий непустой елемент повинний складатися з початкового, кінцевого тегов і даних, між ними заключених. Наприклад, наступні фрагменти будуть бути елементами:
<flower>rose</flower>
<city>Novosibirsk</city>
,а ці - ні:
<rose>
<flower>
rose
Набором всіх елементів, що містяться в документі, задається його структура і визначаються всі ієрархічні співвідношення. Плоска модель даних перетворюється з використанням елементів у складну ієрархічну систему з множиною можливих зв'язків між елементами. Наприклад, у такому прикладі ми описуємо місце розташування Новосибірських університетів (вказуємо, що Новосибірський Університет розташований у місті Новосибірську, що, у свою чергу, знаходиться в Росії), використовуючи для цього вкладеність елементів XML :
<country id="Russia">
<cities-list>
<city>
<title>Новосибірськ</title>
<state>Siberia</state>
<universities-list>
<university id="2">
<title>Новосибірський Державний Технічний Університет</title>
<noprivate/>
<address URL="www.nstu.ru"/>
<description>дуже гарний інститут</description>
</university>
<university id="2">
<title>Новосибірський Державний Університет</title>
<noprivate/>
<address URL="www.nsu.ru"/>
<description>теж не поганої</description>