Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






DTD схема






Схема DTD надає шаблон розмітки документа, в якому зазначаються наявність, порядок проходження і розташування елементів та їх атрибутів в документі XML.

 

Кожний елемент документа може мати один з типів:

Зміст Синтаксис Коментар
Дані <! ELEMENT Ім’я (#PCDATA)> Вміщує тільки текстові дані
Інші елементи <! ELEMENT Ім’я (дочірний елемент 1, дочірний елемент2)> Вміщує тільки дочірні елементи
Змішане <! ELEMENT Ім’я (#PCDATA, дочірний елемент)*> Вміщує і текст і дочірні
EMPTY <! ELEMENT Ім’я EMPTY> Нічого не вміщує
ANY <! ELEMENT Ім’я ANY> Або текст, або дочірні

Атрибути, що знаходяться всередині тегів документа окремо з допомогою синтаксиса:

<! ATTList Ім’я елемента ім’я атрибута 1 (тип) значення по замовчуванню ……………………………………………………… Ім’я елемента ім’я атрибута 1 (тип) значення по замовчуванню
 

При цьому атрибут в DTD може мати один з трьох типів:

- рядок;

- маркірований атрибут;

- атрибут з перечислюванням.

 

Можна також задавати і модальність атрибута

 

Значення Опис
#REQUIRED Атрибут обов’язковий
#FIXED Не повинно відрізнятись
#IMPLIED Необов’язкове значення

 

Для прикладу атрибут рядкового типу:

 

<! ATTLIST message number CDATA #REQUIRED date CDATA #REQUIRED from CDATA #FIXED status CDATA #IMPLIED>

 

Якщо є атрибут з перечисленням:

 

<! ATTLIST message number ID #REQUIRED from CDATA #REQUIRED alert (low | normal | urgent) “normal”>

 

Чотири типи маркірованих атрибутів:

Значення Опис
ID Унікальний ідентифікатор
IDREF Посилання не елемент, що містить ІД
ENTITIES Посилання на зовнішній елемент
NMTOKEN Містить букви, цифри, знаки підкреслення, переноси, двокрапки, але не пробіли

 

Індикатори входження послідовностей:

 

Символ Приклад Опис
, (a, b, c) Послідовне використання елементів списка
| (a | b | c) Використовується один з членів списка
  date Використовується тільки один елемент
? subject? Необов’язкове використання
+ paragraph+ Використовується один або декілька раз
* brother* Використовується 0 або декілька раз

 

Схема, що описує структуру поштового ящика

<! ELEMENT mailbox (message*)> <! ELEMENT message (head, body)> <! ATTLIST message uid CDATA #REQUIRED> <! ELEMENT head (from, to+, subject?, CC*, notify?) > <! ELEMENT from (#PCDATA)> <! ELEMENT to (#PCDATA)> <! ELEMENT subject (#PCDATA)> <! ELEMENT CC (#PCDATA)> <! ELEMENT notify EMPTY> <! ELEMENT body (#PCDATA)>

 

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

 

<? xml version=" 1.0"? > <! DOCTYPE mailbox SYSTEM " mailbox.dtd" > < mailbox> < message uid=" 1" > < head> < from> user1@myhp.edu< /from> < to> user2@myhp.edu< /to> < subject> Re: < /subject> < /head> < body> What's up! < /body> < /message> < message uid=" 2" > < head> < from> user3@myhp.edu< /from> < to> user2@myhp.edu< /to> < subject> Remind< /subject> < CC> user1@myhp.edu < /CC> < notify/> < /head> < body> Remind me about meeting. < /body> < /message> < /mailbox>

 

Зверніть увагу на 2-й рядок документа, в якій вказується зовнішнє посилання на файл, що містить DTD схему.

В принципі, DTD допускає два способи використання в XML документі.

- Оголошення внутрішньої схеми:

<! DOCTYPE кореневий_елемент [

<! ELEMENT кореневий_елемент (модель змісту)>

]>

 

- Оголошення зовнішньої схеми:

<! DOCTYPE кореневий_елемент SYSTEM " name.DTD" >

На закінчення вкажемо на такі недоліки DTD схем:

- не є екземплярами XML. Потрібно вивчення абсолютно іншої мови;

- чи не надають контроль за типами даних, за винятком найпростіших текстових даних;

- не є екземплярами XML, тому їх не можна легко розширити або перетворити до інших мов розмітки - HTML або DHTML;

- не забезпечують підтримки просторів імен XML.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.