ity PCDATA>
Dixon
p>
Jorge nationality>
...
Визначення атрибутів
Списки атрибутів елемента визначаються за допомогою ключового слова! ATTLIST . Усередині нього задаються назви атрибутів, типи їх значень і додаткові параметри. Наприклад, для елемента можуть бути визначено такі атрибути:
number ID # REQUIRED
type (goalkeeper | back | halfback | forward) # IMPLIED
>
У даному прикладі для елемента player визначаються три атрибути: number і type , які мають типи ID (ідентифікатор) і список можливих значень відповідно. Всього існує шість можливих типів значень атрибуту:
В· CDATA - вмістом документа можуть бути будь-які символьні дані
В· ID - визначає унікальний ідентифікатор елементу в документі
В· IDREF (IDREFS) - вказує, що значенням атрибута має виступати назва (або декілька таких назв, розділених пробілами у другому випадку) унікального ідентифікатора визначеного в цьому документі елемента
В· ENTITY (ENTITIES - значення атрибута повинно бути назвою (або списком назв, якщо використовується ENTITIES) компонента (Макроозначення), визначеного в документі
В· NMTOKEN (NMTOKENS) - вмістом елемента може бути тільки одне окреме слово (тобто цей параметр є обмеженим варіантом CDATA)
В· Список допустимих значень - визначається список значень, які може мати даний атрибут. p> Також у визначенні атрибута можна використовувати такі параметри:
В· # REQUIRED - визначає обов'язковий атрибут, який повинен бути заданий у всіх елементах даного типу
В· # IMPLIED - атрибут не є обов'язковим
В· # FIXED "значення" - вказує, що атрибут повинен мати тільки вказане значення, однак саме визначення атрибута не є обов'язковим, але в процесі розбору його значення в будь-якому випадку буде передано програмі-аналізатору
В· Значення - задає значення атрибуту за замовчуванням
Визначення компонентів (макровизначень)
Компонент (Entity) являє собою визначення, вміст яких може бути повторно використано в документі. В інших мовах програмування подібні елементи називаються макровизначень. Створюються DTD-компоненти за допомогою інструкції ! ENTITY:
Програма-аналізатор, переглядаючи в першу чергу вміст області DTD-визначень, обробить цю інструкцію і при подальшому розборі документа буде використовувати вміст DTD-компонента в тому місці, де буде зустрічатися його назву. Тобто тепер в документі ми можемо використовувати вираз &hello;, яке буде замінено на рядок "М...