Стандарт XMLРефераты >> Программирование и компьютеры >> Стандарт XML
Декларація <!ELEMENT special_report (article_1, article_2, article_3)> визначає елемент з ім'ям special_report, що містить піделементи article_1, article_2 і article_3 у зазначеному порядку, наприклад:
<special_report>
<article_1>XML:час прийшов</article_1>
<article_2>XML перевершує саме себе</article_2>
<article_3>Керування мережами і системами за допомогою XML</article_3>
</special_report>
Після визначення елементів DTD можуть також визначати атрибути за допомогою команди !ATTLIST. Вона вказує
елемент, іменує пов'язаний із ним атрибут і потім описує його припустимі значення.!ATTLIST дозволяє управляти атрибутами і багатьма іншими засобами: задавати значення по замовченню, знищувати пробіли і т.д. DTD можуть також містити декларації !ENTITY, де визначаються посилання на об'єкти, а також декларації !NOTATION, що вказують, що робити з двійковими файлами не у форматі XML.
Серйозне і дещо надзвичайне обмеження DTD полягає в тому, що вони не припускають типізації даних, тобто обмежують дані конкретним форматом (таким, як дата, ціле число або число з плаваючою точкою). DTD використовують інший синтаксис, ніж XML, і не дуже-то інтуїтивно зрозумілі. По названих причинах DTD будуть, напевно, замінені на більш потужні і прості у використанні схеми XML, робота над який ведеться в даний час.
4. Схеми даних
Схеми даних (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 name=»schema_sample_1»>
. вміст схеми
</Schema>
Кожний пункт усередині схеми об'являється потім індивідуально, причому особливості кожного елемента розшифровуються за допомогою вкладених тегів, наприклад:
<ElementType name=»PERSONA» content=»textOnly» />
визначає елемент <Inventor> як здатний містити тільки текстові дані.
Подібні схеми можуть виявитися дуже важкі для читання, але вони легко піддаються розборові за допомогою інструментів XML. Іншими словами, вам не буде потрібно спеціальний редактор для роботи з документом XML Schema, як у випадку DTD.
У випадку правил на базі XML для форматів комерційних даних можна використовувати для відображення однієї схеми на другу вмонтовані функціональні можливості перетворення XML - розширювана мова таблиць стилів (Extensible Stylesheet Language, XSL).
На загальному рівні BizTalk Framework потребує, щоб видавці XML Schema притримувалися визначених рекомендацій. Так, тегам пропонується давати осмислені імена зі зрозумілим нескороченим написанням; ці імена повинні відповідати функціональному призначенню інформації, а не її місцю в приватній структурі даних (наприклад, «PartLocation» замість «PartFieldFourteen»), а інформація, що міститься в тегу, не повинна потребувати спеціального, відмінного від XML, декодування (наприклад, позначення валюти грошової суми повинно зберігатися у виді елемента XML, а не приєднуватися до суми як у «$30US»).