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
   144   145   146   147   148   149   150   151   152   153   154