Page 149 - 4785
P. 149
коми, вертикальної рисою і знаком "&". (Так само, як обмежувачі і
позначення включення, зв'язки мають в стандарті формальні імена і
можуть бути перевизначені відповідним SGML описом.)
Кома означає, що обидва компонента, які вона з'єднує, повинні
зустрічатися в порядку, зазначеному в моделі вмісту. Знак "&"
вказує, що компоненти, які він з'єднує, повинні зустрічатися обидва,
але в довільному порядку. Вертикальна риса означає, що може
зустрічатися тільки один з компонентів, які вона з'єднує. Якби в
нашому прикладі кому замінити на знак "&", то заголовок міг би
з'являтися або перед строфами вірші, або в його кінці (але не між
строфами). Якщо її замінити на вертикальну риску, то вірш могло б
полягати або з заголовка, або тільки з строф - але не з того й іншого.
Групи моделі
До цих пір в нашому прикладі компоненти кожної моделі вмісту
були або єдиним елементом, або #PCDATA. Цілком можна, однак,
визначати моделі вмісту, в яких компонентами є списки елементів,
об'єднані зв'язками. Такі списки, відомі як групи моделі (model
groups), можуть також модифікуватися позначеннями включення і, в
свою чергу, бути об'єднаними зв'язками. Щоб продемонструвати ці
можливості, розширимо наш приклад так, щоб включати
нестрофовие форми стіхов.Для демонстрації класифікуємо вірші на
строфовие (stanzic), двовіршя (couplets), і білі (blank) або ?? (stichic).
Білий вірш складається просто з рядків (ігноруємо поки можливість
віршованих абзаців) (Проникливий читач помітить той факт, що
віршовані абзаци не обов'язково починаються на кордоні рядків, що
серйозно ускладнює життя; див. Далі розділ Альтернативні
структури.), Так що додаткових елементів не потрібно . Двовірш
визначається як <line1>, за якою йде <line2>.
<! ELEMENT couplet O O (line1, line2)>
Елементи <line1> і <line2> (які розрізняються, наприклад, щоб
зробити можливими вивчення схеми римування) мають в точності
ту ж модель вмісту, що й існуючий елемент <line>. Вони, отже,
можуть розділяти один і той же опис. У цій ситуації зручно вказати
групу назв (name group) в якості першого компонента єдиного опису
елемента, а не записувати послідовність описів, що відрізняються
тільки використовуваними іменами. Група назв - це список GI,
з'єднаний зв'язками і взятий у круглі дужки:
147