ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Трансформація XML документів
         

     

    Інформатика, програмування


    Міністерство освіти Російської Федерації

    Саратовский державний університет

    Ім'я Н.Г. Чернишевського

    Кафедра мат моделювання процесів і систем управління

    Трансформація XML документів

    Найменування курсової роботи

    ___________________________________________________________________________ прописними літерами < p> Курсова робота

    Студента 4 курсу механіко-математичного факультету

    _____________________Фроолова Миколи Васільевіча___________________

    Прізвище, ім'я по батькові

    Науковий керівник

    Доцент, к.ф.м.н.

    Ковальов А.Д.
    Посада, уч ступінь підпис, дата ініціали, прізвище

    Зав. Кафедрою

    Доцент, к.ф.м.н.
    Мозжілкін В.В.

    підпис, дата

    САРАТОВ 2003

    Саратовский державний університет

    Ім'я Н.Г. Чернишевського

    ЗАТВЕРДЖЕНО

    На засіданні кафедри мат моделювання процесів і систем управління протокол від пана

    ЗАВДАННЯ

    НА Кусов РОБОТУ


    За фахом
    010200______________

    Шифр

    Тема___________Трансформація XML документов________________

    Найменування курсової роботи

    __________________________________________________ прописними літерами

    Студента 4 курсу механіко -математичного факультету

    _____________________Фроолова Миколи Васільевіча___________________

    Прізвище, ім'я по батькові

    Перелік питань, що підлягають розробці в курсовій роботі:

    1. Моделювання XML-документів

    2. Структура XML-документа

    3. Documents Type Definitions (DTD)

    4. Схеми даних

    Дата видачі
    ____________________________________________________

    Число, місяць

    Термін виконання ______________________________________________

    Число, місяць
    Викладач

    Доцент, к.ф.м.н.

    Ковальов А.Д.
    Посада, уч ступінь підпис, дата ініціали, прізвище

    Зміст

    1. Введення

    2. Структура XML-документа

    3. Моделювання XML-документів

    4. Documents Type Definitions (DTD)

    5. Схеми даних

    6. Ілюстративний приклад

    1. Введення.

    За недовгий час свого офіційного існування мову XML привернув до себе вже досить багато уваги з боку розробників і користувачів Інтернет. Сьогодні кількість прихильників цієї нової технології зростає дуже стрімко. Незважаючи на те, що XML дуже молодий (міжнародна організація W3C затвердила специфікацію "Extensible

    Markup Language (XML) 1.0" на початку лютого 1998 г) і окремі компоненти цієї мови знаходяться ще в стадії доробки, уже сьогодні з'являються нові мови, створені на основі XML, виникають численні Web-сервера, що використовують цю технологію для організації, яка на них інформації.

    Коли восени 1991 року Інтернет вперше почув про нову технологію, під назвою WWW, майже ніхто не міг уявити собі, що завоювання її виявляться настільки глобальними. Сьогодні для багатьох користувачів слово

    Інтернет міцно асоціюється з WWW і з вуст фахівців не сходить тема майбутнього інформаційних систем і впливу на це майбутнє всесвітньої мережевої павутини.

    Популярність World Wide Web і невід'ємною її частини, HTML, безумовно, стала причиною підвищеної уваги до систем гіпертекстової розмітки документів. Хоча поняття гіпертексту було введено В. Бушем ще в

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

    Мова розмітки документів - це набір спеціальних інструкцій, називаних тегами, призначених для формування в документах якоїсь структури і визначення відношень між різноманітними елементами цієї структури. Теги мови, або, як їх іноді називають, управляючі дескриптори, у таких документах виділяються щодо основного вмісту документа і служать у якості інструкцій для програми, що виробляє показ вмісту документа на стороні клієнта. У самих перших системах для позначення цих команд використовувалися символи "", усередині яких містилися назви інструкцій та їх параметри. Зараз такий спосіб позначення тегів є стандартним.

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

    У таких системах дані представляються не у вигляді безперервного потоку текстової інформації, а набором взаємопов'язаних компонентів, перехід за якими здійснюється за допомогою гіперпосилань.

    Самий популярний на сьогоднішній день мова гіпертекстової розмітки -

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

    З використанням гіпертекстової моделі документа спосіб подання різноманітних інформаційних ресурсів в мережі став більш впорядкований, а користувачі отримали зручний механізм пошуку та перегляду потрібної інформації.

    HTML є спрощеною версією стандартного спільної мови розмітки

    - SGML (Standart Generalised Markup Language), який був затверджений ISO як стандарт ще в 80-х роках. Ця мова призначена для створення інших мов розмітки, він визначає припустимий набір тегів, їхні атрибути і внутрішню структуру документа. Контроль над правильністю використання дескрипторів здійснюється за допомогою спеціального набору правил, які називаються DTD-описами, які використовуються програмою клієнта при розборі документа. Для кожного класу документів визначається свій набір правил, що описують граматику відповідної мови розмітки. За допомогою SGML можна описувати структуровані дані, організовувати інформацію, що міститься в документах, представляти цю інформацію в деякому стандартизованих форматів. Але на увазі деякій своїй складності, SGML використовувався, в основному, для опису синтаксису інших мов (найбільш відомим з яких є HTML), і деякі програми працювали з SGML-документами безпосередньо.

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

    HTML, використовується текстовий файл, який може легко передаватися по мережі з використанням протоколу HTTP. Ця особливість, а також те, що

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

    Однак сучасні програми потребують не тільки в мові представлення даних на екрані клієнта, але й у механізмі, що дозволяє визначати структуру документа, описувати що містяться в ньому елементи.

    HTML володіє нескладним набором команд і цілком успішно справляється з завданням опису текстової інформації та відображенням її у вікні програми перегляду - браузера. Однак самі відображаються дані ніяк не пов'язані з тими тегами, які використовуються для форматування, тому у програм-аналізаторів немає можливості використовувати теги HTML для пошуку потрібних нам фрагментів документа. Тобто зустрівши, наприклад, такий опис rose програма перегляду буде знати, яким кольором відобразити текст, що міститься всередині тегів і, ймовірно, відобразить його правильно, але їй абсолютно байдуже, в якому місці документа зустрівся цей тег, в які інші теги укладений поточний фрагмент, існують Чи вкладені в нього фрагменти, чи правильно побудовані відносини між об'єктами. Таке "байдужість" до структури документа призводить до того, що пошук або аналіз інформації усередині нього нічим не буде відрізнятися від роботи із суцільним, не розбитим на елементи текстовим файлом. А це, як відомо, не самий ефективний спосіб роботи з інформацією.

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

    Підводячи підсумок усьому сказаному, можна стверджувати, що HTML вже сьогодні не задовольняє повною мірою вимогам, що пред'являються сучасними розробниками до мов подібного роду. І йому на зміну був запропонований новий мова гіпертекстової розмітки, потужний, гнучкий, і, одночасно з цим, зручний мова XML.

    XML (Extensible Markup Language) - це мова розмітки, що описує цілий клас об'єктів даних, називаних XML-документами. Ця мова використовується в якості засобу для опису грамматики інших мов і контролю над правильністю складання документів. Тобто сам по собі XML не містить ніяких тегів, призначених для розмітки, він просто визначає порядок їх створення. Таким чином, якщо, наприклад, ми вважаємо, що для позначення елемента rose у документі необхідно використовувати тег; то XML дозволяє вільно використовувати обумовлений нами тег і ми можемо включати в документ фрагменти, подібні до наступного: rose

    Набір тегів може бути легко розширений. Якщо, припустимо, ми хочемо також зазначити, що опис квітки має за змістом йти усередині опису оранжереї, в якій він цвіте, то просто задаємо нові теги і вибираємо порядок їх прямування: rose

    Процес створення XML документа дуже простий і вимагає лише базових знань

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

    Ще одним з очевидних переваг XML є можливість використання його в якості універсальної мови запитів до сховищ інформації. Сьогодні в W3C знаходиться на розгляді робочий варіант стандарту XML-QL (або XQL), який, можливо, у майбутньому складе серйозну конкуренцію SQL. Крім того, XML-документи можуть виступати в якості унікального способу зберігання даних, що містить у собі одночасно засоби для розбору інформації й представлення її на стороні клієнта. У цій області одним із перспективних напрямків є інтеграція Java і XML - технологій, що дозволяє використовувати міць обох технологій при побудові машинно-незалежних додатків, що використовують, крім того, універсальний формат даних при обміні інформацією.

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

    Також одним з переваг XML є те, що програми - обробники XML-документів не складні і вже сьогодні з'явилися і вільно розповсюджуються всілякі програмні продукти, призначені для роботи з XML-документами. XML підтримується в IE5. Було заявлено про його підтримку в наступних версіях Netscape Communicator, СУБД Oracle, DB-2, в додатках MS-Office. Все це дає підстави припускати, що, швидше за все, у найближчому майбутньому XML стане основною мовою обміну інформації для інформаційних систем, замінивши собою, тим самим, HTML. На основі XML уже сьогодні створені такі відомі спеціалізовані мови розмітки, як SMIL, CDF, MathML, XSL, і список робочих проектів нових мов, що знаходяться на розгляді W3C, постійно поповнюється.

    2. Структура XML-документа

    Хоча XML, сильно відрізняється за своїми можливостями і призначенням від мови гіпертекстової розмітки, обидва ці мови є підмножинами

    SGML, і, отже, успадковують його базові принципи.

    Найпростіший XML-документ може виглядати так:

    Перший

    Другий підпункт 1

    Третій

    Останній

    Цей документ дуже схожий на звичайну HTML-сторінку. Так само, як і в HTML, інструкції, укладені в кутові дужки називаються тегами і служать для розмітки основного тексту документа. У XML існують відкривають, закривають і порожні теги (у HTML поняття порожнього тега теж існує, але спеціального його позначення не потрібно).

    Тіло документа XML складається з елементів розмітки (markup) і безпосередньо вмісту документа - даних ( content). XML - теги призначені для визначення елементів документа, їхніх атрибутів і інших конструкцій мови.

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

    У загальному випадку XML-документи повинні задовольняти наступним вимогам:

    . У заголовку документа поміщається оголошення XML, у якому вказується мова розмітки документа, номер її версії і додаткова інформація;

    . Кожен відкриває тег, що визначає деяку область даних у документі обов'язково повинен мати закриває тег;

    . У XML враховується регістр символів;

    . Всі значення атрибутів, використовуваних у визначенні тегів, повинні бути укладені в лапки;

    . Вкладеність тегів у XML строго контролюється, тому необхідно стежити за порядком проходження відкривають і закривають тегів;

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

    Якщо XML -документ не порушує приведені правила, то він називається формально-правильним і всі аналізатори, призначені для розбору XML-документів, зможуть працювати з ним коректно. Проте крім перевірки на формальну відповідність граматиці мови, у документі можуть бути присутнім засоби контролю над вмістом документа, за дотриманням правил, що визначають необхідні співвідношень між елементами і формують структуру документа. Для того, щоб забезпечити перевірку коректності XML-документів, необхідно використовувати аналізатори, що роблять таку перевірку і звані веріфіціруют. На сьогоднішній день існує два способи контролю правильності XML-документа: DTD - визначення (Document Type Definition) і схеми даних (Semantic Schema). На відміну від SGML, визначення DTD-правил у XML не є необхідністю.

    Конструкції мови

    Вміст XML-документа являє собою набір елементів, секцій

    CDATA, директив аналізатора, коментарів, спецсимволів, текстових даних.

    Елементи даних

    Елемент - це структурна одиниця XML-документа. Укладаючи слово rose в в теги, ми визначаємо непорожній елемент, який називається

    , вмістом якого є rose. У загальному випадку в якості вмісту елементів можуть виступати як просто якийсь текст, так і інші, вкладені, елементи документа, секції CDATA, інструкції з обробки, коментарі, - тобто практично будь-які частини XML-документа.

    Будь-який непорожній елемент повинен складатися з початкового, кінцевого тегів і даних, між ними ув'язнених. Наприклад, наступні фрагменти будуть бути елементами: rose

    Saratov

    набором всіх елементів, що містяться в документі, задається його структура, і визначаються всі ієрархічне співвідношення. Плоска модель даних перетворюється з використанням елементів у складну ієрархічну систему з множиною можливихзв'язків між елементами. Здійснюючи надалі пошук у цьому документі, програма клієнта буде спиратися на інформацію, закладену в його структуру - використовуючи елементи документа. Пошук при цьому, природно, буде набагато більш ефективним, ніж знаходження потрібної послідовності по всьому документу. У XML документі, як правило, визначається хоча б один елемент, який називається кореневим і з нього програми-аналізатори починають перегляд документа. У деяких випадках теги можуть змінювати й уточнювати семантику тих або інших фрагментів документа, по різному визначаючи ту саму інформацію і тим самим надаючи додатку-аналізатору цього документа зведення про контекст використання описуваних даних. Наприклад, прочитавши фрагмент Holliwood ми можемо здогадатися, що мова в цій частині документу йде про місто, а ось у фрагменті Holliwood - про забігайлівці. У випадку, якщо елемент не має вмісту, тобто немає даних, які він повинен визначати, він називається порожнім. Прикладом порожніх елементів в HTML можуть служити такі теги HTML, як,,.

    Коментарі

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

    Атрибути

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

    "значення", яку треба задавати при визначенні елемента в початковому тегу. Приклад:

    # ff08ff white або

    Ivan Petrov

    Спеціальні символи

    Для того, щоб включити в документ символ, використовуваний для визначення яких-небудь конструкцій мови (наприклад, символ кутовий дужки) і не викликати при цьому помилок у процесі розбору такого документа, потрібно використовувати його спеціальний символьний або числовий ідентифікатор. Наприклад, <,> "або $ (десяткова форма запису), (шістнадцяткова) і т.д. рядкові позначення спецсимволів можуть визначатися в XML документі за допомогою компонентів

    (entity).

    Директиви аналізатора

    Інструкції, призначені для аналізаторів мови, описуються в

    XML документі за допомогою спеціальних тегів -;. Програма клієнта використовує ці інструкції для керування процесом розбору документа.

    Найбільш часто інструкції використовуються при визначенні типу документа

    (наприклад,) або створенні простору імен.

    CDATA

    Щоб задати область документа, яку при розборі аналізатор буде розглядати як простий текст, ігноруючи будь-які інструкції та спеціальні символи, але, на відміну від коментарів, мати можливість використовувати їх в програмі, необхідно використовувати теги. Всередині цього блоку можна розміщувати будь-яку інформацію, що може знадобиться програмі-клієнту для виконання будь-яких дій (в область CDATA, можна поміщати, наприклад, інструкції JavaScript).

    Природно, треба стежити за тим, щоб в області, обмеженої цими тегами не було послідовності символів ]].

    3. Моделювання XML-документів

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

    Однак поки не можна визначити мову формальним чином, обмежити словник елементів і атрибутів піддається управлінню множиною і керувати граматикою елементів. Процес формального визначення мови в XML називається моделюванням документів. На сьогоднішній день існує два способи моделювання документів: визначення типу документа (DTD), які описують структуру документа за допомогою декларативних правил, і

    XML Schema, що описує структуру документа на прикладі за допомогою шаблонів елементів.

    Модель визначає документи, які можна створити за допомогою мови; або, в рамках термінології XML, модель документа встановлює, які документи узгоджуються (conform) з мовою. Модель документа відповідає на такі питання, як «Чи може бути заголовок у цього елемента?» або

    «Чи повинна бути вказана ціна для цього елемента?» Модель є документом особливого роду, написаним за правилами синтаксису, призначеного для опису мов XML, і явно описує граматику і словник окремої мови розмітки. Іноді мова, яку вона описує, називають типом документа ( document type) або додатком XML (XML application). За допомогою такої моделі можна визначити, чи відповідає певний документ XML з даним типом документа.

    Фактично написані кимось документи, що називаються примірниками документа < p> (document instances), можуть узгоджуватися з мовою, описаним у моделі документа або не узгоджуватися. узгоджуються документи називають дійсними (valid) в контексті мови; інші документи називають недійсними (invalid).

    Модель документа може бути зайвим вантажем, якщо треба супроводжувати лише один-два документи, але якщо документів багато, а вимоги до якості високі, її створення може окупитися. Ось деякі ситуації, в яких модель документа в змозі полегшити життя:

    ? Документи створюються людьми і є даними для комп'ютерної програми. Програми особливо вередливі щодо форматів даних, тому що важко створювати програми, здатні справлятися з відхиленнями від формату. Обмеживши застосовується шаблон передбачуваним форматом, набагато легше писати програми, а ймовірність помилок зменшується. Порівняння кожного примірника документа з моделлю гарантує, що ви не зіштовхнетеся з проблемою невідповідності.

    ? У документі обов'язково повинні бути поля. Наприклад, в бланку замовлення виробу необхідно вказати поштову адресу, щоб знати, куди відправляти посилку. Застосування моделі документа забезпечує присутність всіх необхідних полів.

    ? Ви запитуєте документи у людей, не знайомих з використовуваним додатком XML. Так як модель сама є документом, вона може бути відкритим ресурсом, доступним для завантаження, посилань і передачі. Модель документа може виступати в якості даних в середовищах створення структурованих документів, наприклад, в редакторі XML. У такій програмі редактор може автоматично вставляти потрібні поля і пропонувати розробнику документа списки допустимих груп елементів.

    ? Розробнику потрібна надійна структура для розвивається мови або родини мов. Модель документа надає простий спосіб створення стандарту, такого, наприклад, як HTML Version 4.0. Відстеження нових версій мови життєво важливо для програм XML, оскільки старі програми можуть виявитися несумісними з більш новими версіями мови. Моделі документів можна об'єднати для створення складових мов. Наприклад,

    DocBook використовує модель таблиць CALS, а не намагається визначити свою.

    Звичайно, можуть бути підстави і не використовувати модель документів.

    Супровід моделі може виявитися незручним, особливо на початку, коли мова піддається тестування та подальшої розробки. Вона може сповільнити обробку, наприклад, якщо браузери XML повинні завантажувати модель документа з мережі. Нарешті, наявність авторитарної моделі, яка вказує, які елементи можна використовувати, а які - ні, може просто зламати стиль роботи. А, крім того, потрібно витратити сили на те, щоб розробити модель або знайти готову, що відповідає потребам. Зрештою, автор сам вирішує, використовувати модель документа чи ні: XML спроектований так, що дозволяє працювати в будь-якому разі .

    Деякі моделі документів (а саме, DTD) не дуже добре працюють з просторами імен (простору імен є способом угруповання елементів з різних джерел, наприклад, вбудовування рівнянь MathML всередину документів HTML). Це створює проблеми, якщо DTD намагаються обмежити застосовуються автором елементи передбачуваним кінцевим безліччю. На даний момент вичерпного вирішення цієї дилеми немає.

    Неможливо передбачити всі види просторів імен і оголосити їх елементи та атрибути усередині свого DTD - їх може бути нескінченне число.

    4. Documents Type Definitions (DTD)

    У XML-документах DTD визначає набір дійсних елементів, ідентифікує елементи, які можуть перебувати в інших елементах, і визначає дійсні атрибути для кожного з них. Синтаксис DTD вельми своєрідний і від автора-розробника потрібні додаткові зусилля при створенні таких документів (складність DTD є однією з причин того, що використання SGML, що вимагає визначення DTD для будь-якого документа, не набуло такого широкого розповсюдження як, наприклад, HTML). Як вже зазначалося , в XML використовувати DTD не обов'язково - документи, створені без цих правил, будуть правильно оброблятися програмою-аналізатором, якщо вони задовольняють основним вимогам синтаксису XML. Однак контроль над типами елементів і коректністю відносин між ними в цьому випадку буде повністю покладатися на автора документа. До тих пір, поки граматика нашої нової мови не описана, його може використовувати тільки його автор, і для цього застосовувати спеціально розроблене програмне забезпечення, а не універсальні програми-аналізатори. У DTD для XML використовуються такі типи правил: правила для елементів та їх атрибутів , опису категорій (макроозначень), опис форматів бінарних даних. Всі вони описують основні конструкції мови - елементи, атрибути, символьні константи зовнішні файли бінарних даних. Для того, щоб використовувати DTD в документі, можна або описати його в зовнішньому файлі і при описі DTD просто додати посилання на цей файл або ж безпосередньо всередині самого документа виділити область, в якій визначити потрібні правила. У першому випадку в документі вказується ім'я файлу, що містить DTD-описи:

    ... < p> Всередині ж документа DTD-декларації включаються в такий спосіб:

    ...

    ...

    У тому випадку, якщо використовуються одночасно внутрішні і зовнішніопису, то програмою-аналізатором будуть спочатку розглядатисявнутрішні, тобто їх пріоритет вище. При перевірці документа XML-процесор упершу чергу шукає DTD усередині документа. Якщо правила всередині документа невизначені і не заданий атрибут standalone = "yes", то програма завантажитьзазначений зовнішній файл і правила, що знаходяться в ньому, будуть прочитані звідти.
    Якщо ж атрибут standalone має значення "yes", то використання зовнішніх
    DTD описів буде заборонено.

    Визначення елемента

    Елемент в DTD визначається за допомогою дескриптора! ELEMENT, в якомувказується назва елемента і структура його вмісту. Наприклад, дляелемента можна визначити наступне правило:

    Ключове слово ELEMENT вказує, що даною інструкцією будеописуватися елемент XML. Всередині цієї інструкції задається назваелементу (coach) і тип його вмісту. У визначенні елемента ми вказуємоспочатку назву елементу (coach), а потім його модель вмісту --визначаємо, які інші елементи або типи даних можуть зустрічатися всерединінього. У даному випадку вміст елемента name буде визначатися придопомогою спеціального маркера PCDATA (що означає parseable character data --будь-яка інформація, з якою може працювати програма-аналізатор).
    Існує ще дві інструкції, що визначають тип вмісту: EMPTY, ANY.
    Перша вказує на те, що елемент повинен бути порожнім (наприклад,),другий - на те, що вміст елемента спеціально не описується.
    Послідовність дочірніх для поточного елемента об'єктів задається у виглядісписку розділених комами назв елементів. При цьому для того, щобвказати кількість повторень включений цих елементів можуть використовуватисясимволи +, *,? :

    У цьому прикладі зазначається, що всередині елемента повинні бутивизначені елементи coach, player і assistant, причому елемент titleє обов'язковим елементом і може зустрічатися лише одного разу, елементplayer може зустрічатися декілька разів, а елемент assistant єопціональним, тобто може бути відсутнім. У тому випадку, якщо існуєкілька можливих варіантів вмісту визначається елемента, їхслід розділяти за допомогою символу "|":

    Символ * в цьому прикладі вказує на те, що обумовленапослідовність внутрішніх елементів може бути повторена кілька разівабо ж зовсім не використовуватися. Якщо у визначенні елемента вказується
    "змішане" вміст, тобто текстові дані або набір елементів, тонеобхідно спочатку вказати PCDATA, а потім розділений символом "|" списокелементів. Приклад коректного XML-документа:

    ]>

    ...

    John

    Dixon

    Jorge

    Woods

    English

    ...

    Визначення атрибутів

    Списки атрибутів елемента визначаються за допомогою ключового слова
    ! ATTLIST. Всередині нього задаються назви атрибутів, типи їх значень ідодаткові параметри. Наприклад, для елемента можуть бутивизначені наступні атрибути:

    У даному прикладі для елементу player визначаються три атрибута: number іtype, які мають типи ID (ідентифікатор) та список можливих значеньвідповідно. Всього існує шість можливих типів значень атрибуту:

    . CDATA - вмістом документа можуть бути будь-які символьні дані

    . ID - визначає унікальний ідентифікатор елемента в документі

    . IDREF (IDREFS) - вказує, що значенням атрибута повинно виступати назву (або декілька таких назв, розділених пробілами в другому випадку) унікального ідентифікатора визначеного в цьому документі елемента

    . ENTITY (ENTITIES - значення атрибута повинно бути назвою (або списком назв, якщо використовується ENTITIES) компонента (макровизначеннями), визначеного в документі

    . NMTOKEN (NMTOKENS) - вмістом елемента може бути тільки одне окреме слово (т. тобто цей параметр є обмеженим варіантом

    CDATA)

    . Список допустимих значень - визначається список значень, які може мати даний атрибут.

    Також у визначенні атрибута можна використовувати такі параметри:

    . # REQUIRED - визначає обов'язковий атрибут, який повинен бути заданий в усіх елементах даного типу

    . # IMPLIED - атрибут не є обов'язковим

    . # FIXED "значення" - вказує, що атрибут повинен мати тільки вказане значення, однак саме визначення ознаки не є обов'язковим, але в процесі розбору його значення в будь-якому випадку буде передано програмі-аналізатору

    . Значення - задає значення атрибуту за замовчуванням

    Визначення компонентів (макроозначень)

    Компонент (entity) являє собою визначення, вміст якихможе бути повторно використано в документі. В інших мовахпрограмування подібні елементи називаються макровизначеннями. Створюються
    DTD-компоненти за допомогою інструкції! ENTITY:

    Програма-аналізатор, переглядаючи в першу чергу вміст області
    DTD-визначень, опрацює цю інструкцію і при подальшому розглядідокумента буде використовувати вміст DTD-компонента в тому місці, дезустрічатиметься його назву. Тобто тепер в документі ми можемовжити вислів &hello;, яке буде замінено на рядок "Ми радівітати Вас "

    У загальному випадку, усередині DTD можна задати три типи макроозначень:

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

    У XML існує п'ять попередньо встановлених внутрішніх символьних констант:

    . <- Символ "- символ ">"

    . & - Символ "&"

    . '- Символ апострофа "'"

    ." -- символ подвійної лапки """

    Зовнішні макровизначеннями - вказують на вміст зовнішнього файлу, причомуцим вмістом можуть бути як текстові, так і двійкові дані. У першувипадку в місці використання макросу будуть вставлені текстові рядки, піддругий - бінарні дані, які аналізатором не розглядаються івикористовуються зовнішніми програмами

    макровизначеннями правил - макровизначеннями параметрів можутьвикористовуватися тільки всередині області DTD і позначаються спеціальнимсимволом%, що вставляються перед назвою макросу. При цьому вмісткомпоненту буде вміщено безпосередньо в текст DTD-правила

    Наприклад, для наступного фрагмента документа: можна використовувати більш коротку форму запису:

    макровизначеннями часто використовуються для опису параметрів в правилахатрибутів. У цьому випадку з'являється можливість використовувати однаковівизначення атрибутів для різних елементів:

    типізації

    Досить часто при створенні XML-елементу розробнику потрібновизначити, дані якого типу можуть використовуватисятися як йоговмісту. Тобто якщо ми визначаємо елемент 10.10.98, то хочемо бути впевненими, що в документі в цьому місці будезнаходитися рядок, що представляє собою дату, а не кількість або довільнупослідовність символів. Використовуючи типізацію даних, можна створюватиелементи, значення яких можуть використовуватися, наприклад, в якостіпараметрів SQL-запитів. Програма клієнт в цьому випадку повинна знати, доякого типу даних відноситься поточне значення елемента і в разівідповідності формує SQL-запит. Якщо в якості програми на стороніклієнта використовується веріфіціруют XML-процесор, то інформацію про типможна передавати за допомогою спеціально створеного для цього атрибутуелемента, що має відповідну DTD-визначення. У процесі розборупрограма-аналізатор передасть значення цього атрибута клієнтськогододатку, яке зможе використати цю інформацію належним чином.
    Наприклад, щоб вказати, що вміст елемента має бути довгим цілим,можна використовувати наступне DTD-визначення:

    Поставивши атрибуту значення за замовчуванням LONG і визначивши його як FIXED, мидозволили тим самим програмі-клієнту отримати необхідну інформацію протипі вмісту цього елемента, і тепер вона може самостійновизначити відповідність типу цього вмісту вказаною в DTD -визначенні.

    Приклад XML-документа, в якому визначаються і використовуються декількаелементів з різними типами даних:

    ...

    5

    2

    32.5 true

    18346

    100 р. 00 к.

    ...

    Як видно з прикладу, механізм створення елементів документа при цьомуанітрохи не змінився. Все необхідна для перевірки типів данихінформація закладена в визначення елементів усередині блоку DTD.

    DTD досить зручний механізм здійснення контролю за вмістомдокумента. На сьогоднішній день, практично всі програми переглядудокументів Інтернет використовують DTD-правила. Однак це не єдинийспосіб перевірки коректності документа. На даний момент у W3 консорціумізнаходиться на розгляді новий стандарт мови опису структуридокументів, що зветься схемами даних.
    5. Схеми даних
    Схеми даних (Schemas) є альтернативним засобом створення правилпобудови XML-документів. У порівнянні з DTD, схеми мають більш потужнимизасобами для визначення складних структур даних, забезпечують більшзрозумілий спосіб опису граматики мови, здатні легко модернізуватисята розширюватися. Безумовним достоїнством схем є також те, що вонидозволяють описувати правила для XML-документа засобами самого ж XML.
    Однак це не означає, що схеми можуть цілком замінити DTD-описи --цей спосіб визначення граматики мови використовується зараз практичнимивсіма веріфіціруют аналізаторами XML і, більш того, самі схеми, якзвичайні XML-елементи, теж описуються DTD. Але серйозні можливості новогомови та її відносна простота, безумовно, дають підстави стверджувати,що майбутній стандарт знайде широке застосування в якості зручного іефективного засобу перевірки коректності з

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status