& introduction;
&body;
&sidebar;
&conclusion;
&resources;
article>
Найпростіший XML-документ може виглядати так, як це показано в прикладі 1
xml version = "1.0"?>
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-документом, буде абсолютно безглуздим:
Для того, щоб забезпечити перевірку коректності XML-документів, необхідно використовувати аналізатори, що роблять таку перевірку і називаються веріфікованімі.
На сьогоднішній день існує два способи контролю правильності XML-документа: DTD - визначення (Document Type Definition) і схеми даних (Semantic Schema). Визначення DTD-правил у XML не є необхідністю.
Конструкції мови
Вміст XML-документа являє собою набір елементів, секцій CDATA, директив аналізатора, коментарів, спецсімволів, текстових даних.
Елементи даних
Елемент - це структурна одиниця XML-документа. Вкладаючи слово rose в у теги Любий непорожній елемент повинний складатися з початкового, кінцевого тегов і даних, між ними заключених. Наприклад, наступні фрагменти будуть бути елементами:
, а ці - ні:
rose
набором всіх елементів, що містяться в документі, задається його структура і визначаються всі ієрархічні співвідношення. Плоска модель даних перетворюється з використанням елементів у складну ієрархічну систему з множиною можливих зв'язків між елементами. Наприклад, у такому прикладі ми описуємо місце розташування Новосібірськіх університетів (вказуємо, що Новосибірський Університет розташований у місті Новосибірську, що, у свою чергу, знаходиться в Росії), використовуючи для цього вкладеність елементів XML:
university>
university>
universities-list>
city>
cities-list>
country>
Проводячи пошук у цьому документі, програма клієнта буде спиратися на інформацію, закладену в його структуру - використовуючи елементи документа. Тобто, якщо, наприклад, потрібно знайти потрібний університет у потрібному місті, використовуючи приведений фрагмент документа, то необхідно буде переглянути вміст конкретного елемента У XML документі, як правило, визначається хоча б один елемент, назв кореневим і з нього програми-аналізатори починають перегляд документа. У наведеному прикладі цим елементом є У деяких випадках теги можуть змінювати й уточнювати семантику тих або інших фрагментів документа, по різному визначаючи ту саму інформацію, тим самим надаючи додатку-аналізатору цього документа зведення про контекст використання описуваних даних.
У випадку, якщо елемент не має вмісту, тобто немає даних, які він повинний визначати, він називається порожнім. Необхідно тільки пам'ятати, що початковий і кінцеві теги порожнього елемента ніби об'єднується в один, і треба обов'язково ставити косу ризику перед кутовою закриваючи (наприклад , Коментар
Коментарями є будь-яка область даних, поміщена між послідовностямі символів Коментар пропускаються аналізатором і тому при розборі структури документа в якості значущої інформації не розглядається.
Атрибути
Якщо при визначенні елементів необхідно задати якісь параметри, що уточнюють його характеристики, то є можливість використовувати атрибути елемента. Атрибут - це пару "назва" = "значення", що треба задавати при визначенні елемента в початковому тегу. Приклад:
або
Прикладом використання атрибутів у HTML є опис елемента :
Black font>
Cпеціальні символи
Для того, щоб включити в документ символ, використовуваний для визначення яких-небудь конструкцій мови і не викликати при цьому помилок у процесі розбору такого документа, потрібно використовувати його спеціальний символьної або числовий ідентифікатор. Наприклад, <,> "або $ (десяткового форма запису), (шістнадцяткова) і т.д.
Директиви аналізатора
Інструкції, призначені для аналізаторів мови, описуються в XML документі за допомогою спеціальних тегів - і? >;. Програма клієнта використовує ці інструкції для керування процесом розбору документа. Найбільше часто інструкції використовуються при визначенні типу документа (наприклад, Xml version = "1.0"?>) Або створенні простору імен.
CDATA
Розділи символьних даних - це частини документа, аналізовані винятково як символьні дані, що не піддаються розборові, але, у відмінності від коментарів, використовуються застосуванням, виглядають так:
Цей текст, навіть якщо він містить інструкції JavaScript або елементи коду HTML, такі, як жірнийшріфт B> або ]]>
Таблиці стилів
Таблиці стилів узагалі, і Каскадні таблиці стилів (Cascading Style Sheets, CSS) зокрема, дозволяють відокремити структуру й вміст документа від рівня представлення. У застосуванні до Web і HTML це означає, що мова HTML не містить у собі презентаційних можливостей: характер представлення формується окремими інструментальними засобами.
Технологія CSS помітно спрощує упорядкування і супровід документів. Створивши одну таблицю стилів, ви зможете використовувати її в сотнях документів. Вже в CSS1, першої версії CSS, були передбачені елементи уявлення, узагалі немислимі в HTML (наприклад, регулювання фізичних розмірів шрифтів).
XML/CSS як метод публікації можна зіставіті з використанням програмного засобу опрацювання текстів, що підтримує стилі або дії: XML/CSS здійснює структурування документів, але виникаючих структура не має незалежну загальнодоступну семантику.
CSS можуть служити і для форматування документів XML, але це не дуже Удалий вибір. Головна перевага XML у тому, що вона подає формат документа, для можливого маніпуляцій, у виді деревоподібної структури. На жаль, CSS не спроможні взаємодіяти з деревом і можуть тільки форматувати документи XML "як вони є". Ви можете вивести документ на екран у будь-якому форматі, але не можете здійснити якесь вибіркове представлення його даних без застосування мови сценаріїв.
Дані обмеження призвели до створення XSL. Найбільше важлива особливість XML і супутньої йому технології розшірюваної мови таблиці стилів (Extensible Stylesheet Language, XSL) складається у відділенні форматування від інформаційного наповнення.
Таблиці стилів XSL описують, як документи XML повинні перетворюватися в інші формати, такі, як HTML або RTF. Але таблиці стилів XML - це щось більше, ніж просто перетворювачі форматів; вони також надають механізм для маніпулювання даними. Наприклад, дані можна сортувати, робити по ним пошук, видаляти або додавати прямо з браузера.
XSL спроможна також здійснювати умовну трансформацію виведення в залежності від значень різноманітних елементів або атрибутів. Більш того, вона дозволяє запитувати дані з використанням множини різноманітних операторів шаблонів, символів підстановкі, фільтрів, булевих операторів і виражену множини. XML і XSL ніяким чином не призначені для заміни SQL, до того ж навряд чи знайдеться багато бажаючих берегти свої бази даних безпосередньо у форматі XML. Проте XSL відчиняє можливість різноманітного пошуку по даним після їх завантаження в браузер. Вам ніколи вже не знадобиться використовувати для пошуку інформації примітивну вмонтованим команду браузера Find.
Значний потенціал XML у якості проміжного програмного забезпечення підкріплюється об'єктною моделлю документа (Document Object Model, DOM), версія 1.0 якіа була прийнята в якості рекомендації W3C у жовтні 1998 року.
Визначення Типу Документів (DTD)
Якщо теги й елементи XML використовуються винятково заради зручності на вашому власному вузлі Web, то не має ніякого значення, що ви даєте цим елементам і тегам імена, зміст яких відрізняється від стандартного і відомий тільки вам. Якщо ж, з іншого боку, ви хочете надавати дані зовнішньому світу й одержувати інформацію від партнерів по бізнесу, те ця обставина набуває величезне значення. Елементи й атрибути повинні вживатися вами точно так само, як і всіма іншими людьми, або принаймні ви повинні документувати те, що робите.
Для цього використовується визначення типів документів (Document Type Definition - DTD). Збережені на початку файла XML або назовні у виді файла *. DTD, ці визначення описують інформаційну структуру документа. DTD перераховують можливі імена елементів, визначають наявні атрибути для кожного типу елементів і описують сполучуваність одних елементів з іншими.
Кожний рядок у визначенні типу документа може містити декларацію типу елемента, іменувати елемент і визначати тип даних, що елемент може містити. Вона має такий вигляд
(тіп_даніх)>
Наприклад, декларація визначає елемент з ім'ям publication, що містить сімвольні дані (тобто текст).
Декларація визначає елемент з ім'ям special_report, що містить піделементі article_1, article_2 і article_3 у зазначеному порядку, наприклад:
special_report>
Після визначення елементів DTD можуть також визначати атрибути за допомогою команди! ATTLIST. Вона вказує
елемент, іменує пов'язаний із ним атрибут і потім описує його припустимі значення.! ATTLIST дозволяє управляти атрибутами і багатьма іншими засобами: задавати значення по замовченню, знищувати пробіли і т.д. DTD можуть також містити декларації! ENTITY, де визначаються посилання на об'єкти, а також декларації! NOTATION, що вказують, що робити з двійковімі файлами не у форматі XML.
Серйозне і дещо надзвичайне обмеження DTD полягає в тому, що вони не припускають типізації даних, тобто обмежують дані конкретним форматом (таким, як дата, ціле число або число з плаваючою точкою). DTD використовують інший синтаксис, ніж XML, і не дуже-то інтуїтивно зрозумілі. По названих причинах DTD будуть, напевно, замінені на більш потужні і прості у використанні схеми XML, робота над який ведеться в даний час.
Схеми даних
Схеми даних (Schemas) є альтернативним засобом створення правил побудови XML-документів. У порівнянні з DTD, схеми мають більш потужні засоби для визначення складних структур даних, забезпечують більш зрозумілий засіб опису граматики мови, спроможні легко модернізуватіся і розширюватися. Безумовною перевагою схем є також те, що вони дозволяють описувати правила для XML-документа засобами самого ж XML.
Проте це не означає, що схеми можуть цілком замінити DTD-описи - цей засіб визначення грамматики мови використовується зараз практичними всіма веріфікуючімі аналізаторамі, XML і, більш того, самі схеми, як звичайні XML-елементи, теж описуються DTD. Але серйозні можливості нової мови і її відносної простоти, безумовно, дають підстави підтверджувати, що майбутній стандарт знайде широке застосування в якості зручного й ефективного засобу перевірки коректності упорядкування документів.
В даний час у W3 консорціумі йде робота над першою специфікацією схем даних.
Консорціум World Wide Web (W3C) не збирається давати своє благословення ніяким додатком XML (у термінології XML "додатком" називається опис галузевих термінів за допомогою деякого набору тегов XML). Іншими словами, конкретні вертикальні ринки повинні самостійно узгодити усередині галузі імена для своїх об'єктів. Щоб сприяти відкритості і передбачуваності при упорядкуванні схем XML у вертикальних галузях, Microsoft висунула ініціативу, названу BizTalk. За станом на серпень 1999 року цю ініціативу підтримало понад 25 компанії.
Почасти BizTalk являє собою не що інше, як суспільний сервер Web, де публікуються всі схеми, запропоновані для використання в різноманітних галузях. Проте BizTalk не ставить своєю ціллю об'єднати всі галузі в спробі скласти одну гігантську схему для усіх використовуваних у якому б то ні було бізнесі даних.
BizTalk складається з трьох окремих елементів. По-перше, це сховище на сервері Web разом із рекомендаціями і тегами XML, використовуваними для додавання нових схем у сховище. По-друге, це розробка програмного продукту, серверу BizTalk. І по-третє, це будуть інтерактивні послуги на базі технології BizTalk.
Відмова від DTD
У тому, що стосується відображення галузевих даних, BizTalk виходить із безперспективності визначень типів документів (Document Type Definition, DTD). Замість того щоб заохочувати розробку XML DTD, прихильники BizTalk описують свої ієрархії даних за допомогою XML Schema (як передбачається, цей стандарт повинний прийти на зміну DTD).
В даний час W3C намагається узгодити різноманітні підходи до схем, але запропонована версія стандарту - XML Schema - дає достатньо ясне уявлення про те, як буде виглядати заміна DTD. XML Schema має значно більш широкі можливості, ніж DTD, причому описи даються за допомогою безпосередньо XML, без створення ще однієї системи розмітки, як того потребує DTD.
DTD цілком достатньо для базового визначення документа, але вони мають декілька недоліків. По-перше, вони даються не на XML. З огляду на високий ступінь адаптованості і розшірюваність XML, наявність ще одного формату для визначення документів є зайвою.
По-друге, елементи DTD усередині документа XML потребують повного визначення усього, що знаходиться усередині цих елементів. Іншими словами, ніякі піделементі "на перспективу" не припускаються - якщо такі будуть присутні в документі, те, по визначенню, документ не буде бути правильно складеним. Тим часом визначення XML Schema використовують модель відкритого інформаційного наповнення, у котрої невизначені елементи цілком припустимі.
По-третє, DTD обмежуються тільки граматикою і синтаксисом (тобто відношенням одного елемента до іншого), тоді як XML Schema може також задавати безпосередні обмеження на тип даних, що елемент може містити. Це значно спрощує реалізацію передачі даних додатка в порівнянні з більш традиційним текстовим документом. Наприклад, точно так само, як це роблять розроблювачі в мовах програмування, ви можете явно зазначити, що дана область збереження може містити тільки цілочисельні дані. Нарешті, розроблювачам, що працюють у середовищах Wintel, буде дуже зручно те обставина, що XML Schema легко відображається на Microsoft Document Object Model. Таким чином, що працює з документами XML програма може запросити у відповідної схеми наявне визначення для елемента документа по своєму виборі. Код виглядає в такий спосіб:
var bookNode = doc. documentElement
Проте як же буде виглядати сам документ, що містить схему, зсередини? По-перше, він буде містити теги XML, що повідомляють, що це схема, на зразок:
... вміст схеми
Schema>
Кожний пункт усередині схеми об'являється потім індивідуально, причому особливості кожного елемента розшифровуються за допомогою вкладених тегів, наприклад:
визначає елемент Подібні схеми можуть виявитися дуже важкі для читання, але вони легко піддаються розборові за допомогою інструментів XML. Іншими словами, вам не буде потрібно спеціальний редактор для роботи з документом XML Schema, як у випадку DTD.
У випадку правил на базі XML для форматів комерційних даних можна використовувати для відображення однієї схеми на другу вмонтовані функціональні можливості перетворення XML - розширювана мова таблиць стилів (Extensible Stylesheet Language, XSL).
На загальному рівні BizTalk Framework потребує, щоб видавці XML Schema притримувались визначених рекомендацій. Так, тегам пропонується давати осмислені імена зі зрозумілим нескороченім написанням; ці імена повинні відповідати функціональному призначенню ін?? ормації, а не її місцю в приватній структурі даних (наприклад, "PartLocation" замість "PartFieldFourteen"), а інформація, що міститься в тегу, не повинна потребувати спеціального, відмінного від XML, декодування (наприклад, позначення валюти грошової суми повинно зберігатися у виді елемента XML, а не приєднуватися до суми як у "$ 30US").
Необхідними складовими BizTalk Framework є спеціальні, загальні для всіх галузей теги XML. Ці теги покликані звільнити розроблювачів від турбот із приводу трьох найважливіших проблем взаємодії додатків. По-перше, від того, як дані передаються з одного додатка в інший; по-друге, від того, як "викликати" інший додаток - відправлення додатку даних у форматі XML повинно бути достатньо; по-третє, від того, у якому порядку повинні випливати елементи даних.
Один із тегів визначає код, за допомогою якого XML програма, що приймає дані у форматі, може встановити, що за схема BizTalk використовується. За допомогою інших тегів додаток може з'ясувати, хто є відправником даних, що відправник від нього хоче і кому дані повинні бути потім передані.
Для забезпечення сумісності документ BizTalk повинний починатися і, відповідно, закінчуватися тегом BizTalk, щоб одержувач знав, що він вступив у сектор BizTalk. Тег MsgType задає простір імен XML (вашу конкретну схему), що визначає припустимі елементи документа. Тому що ваша схема використовує формат даних XML, то тип даних, котрими ви наповняєте свій документ, буде легко встановити. Нарешті, ви можете також вставити блок маршрутних документів, наприклад:
process = "" path = "" handle = "3" />
process = "" path = ""
handle = "23CF15" />
Route>
BizTalk Framework нічого не говорить про те, які дані повинні входити в чотирьох атрибута тегів і Бізнес-модель BIZTALK
Microsoft випустить серверний продукт для регулювання обміну BizTalk-сумісними повідомленнями XML між партнерами по бізнесу (бета-версія наприкінці осені 1999 року; готовий продукт повинний вийти після Windows 2000).
Як це виглядає
Інструкції в схемах складають набір правил, використовуючи який, програма-клієнт буде робити висновок про те, коректний документ або ні. Схема даних, наприклад, може виглядати таким чином:
elementType>
elementType>
elementType>
schema>
Якщо ми включімо приведені правила всередину XML-документа, програма-клієнт зможе використовувати їх для перевірки. Тобто, вона тепер зможе визначити, що правильним буде бути такий фрагмент
заголовок H1>, не піддається граматичного розборові. Замість цього він відображається як їсти.