Page 148 - 4785
P. 148
часто використовується - #PCDATA. Це скорочення отparsed
character data (розібрані символьні дані), і воно означає, що
описуваний елемент може включати будь-які дозволені символьні
дані. Якщо уявити собі SGML опис у вигляді структури на зразок
генеалогічного дерева, з одним предком нагорі (в нашому випадку,
це буде <anthology>), то майже завжди, якщо слідувати по гілках
дерева вниз (наприклад, від <anthology> до <poem>, <stanza>, <line>
або <title>), ми прийдемо до #PCDATA. У нашому прикладі так
визначені <title> і <line>. Так як в їх моделі вмісту вказано тільки
#PCDATA і не названо жодних включаються елементів, то вони не
можуть містити інші елементи.
Позначення включення
Вищенаведеий опис для <stanza> встановлює, що строфа
складається з однієї чи більше рядків. Воно використовує
позначення включення (occurence indicator) - знак плюс - для
вказівки того, скільки разів може зустрічатися елемент,
пойменований в моделі вмісту. У синтаксисі SGML є три
позначення включення, зазвичай представлених знаком плюс,
знаком питання і зірочкою. (Так само, як і обмежувачі, ці знаки
мають формальні найменування і можуть бути перевизначені
відповідним SGML описом.) Знак плюс означає, що відповідний
елемент може зустрічатися один або більше разів; знак питання
означає, що може бути не більше одного елемента; зірочка означає,
що елемент може або бути відсутнім, або з'являтися один і більше
разів. Так, якби модель вмісту для <stanza> була (LINE *), були б
допустимі строфи без рядків, так само, як і з більш ніж одним
рядком. Якби вона була (LINE?), То порожні строфи були б теж
допустимі, але жодна строфа не могла б мати більш ніж один рядок.
Опис <poem> в прикладі встановлює, що <poem> не може мати
більше одного заголовка (але може не мати жодного) і що воно
повинно мати як мінімум одну <stanza> (і може мати декілька).
Зв'язки
Модель вмісту (TITLE ?, STANZA +) містить більше одного
компонента. Тому потрібно додатково вказати порядок, в якому ці
елементи (<title> і <stanza>) можуть з'являтися. Це впорядкування
визначається зв'язкою (group connector) - коми – використаної між її
компонентами. Існують три можливі зв'язки, зазвичай подаються
146