ГОСТ Р ИСО 24610-2—2013
Каждая ветвь этого дерева просто указывает на экземпляр отношения «подтип — супертип»;
обозначение top или Т часто используется в качестве имени типа, присваиваемого каждой структуре
элементов. Выделенныекурсивомтипыlistиstringявляютсявстроеннымиэлементами, которыевсогла
сованной FSD (показанной ниже) недолжны присутствоватьявным образом. Типы, заключенные в скоб
ки. могут декларироваться, однакодля представления относящихся к ним ограничений вданном случае
используются дизъюнкции над их подтипами с символическим кодированием (обозначенные одиноч
ными кавычками). Следует также иметь в виду, что показываемые здесь списки не являются
полиморфными.
Различие между системой типов, фактически декларируемой в FSD, и иерархией типов состоит в
том, что системы типов определяют не только отношения присваивания подтипов, но еще и разрешен
ные элементы, ограничения подопустимым значениям разрешенных элементов и прочие ограничения
по типам и значениям относящихся к ним элементов.
7.2.3 Декларирование ограничений по типам
В следующем примере нет ограничений типов, не говоря уже обограничениях подопустимым зна
чениям элементов; поэтому нетникакой необходимости в использовании элементов <cond> и <bicond>
(см. раздел 8.5). Начнем егорассмотрение с неформального представления разрешенныхэлементов и
ихдопустимыхзначений (см. рисунок 10). Здесьв каждойструктуреэлементов показываются разрешен
ные элементы и минимальнодопустимые значения длясоответствующего ей типа.
и)
Г
рм
]
[AORigr-oatJ
б)
а Гадг<«1
PER{’1«r, -гпсг.-згхг)
|_NUM {•Untf, ’plufji
PER Snf
к1. ГМ1
NUM
’
■abifl’J
cs.
Гпогьа»*1
PER {’1ЯГ, Ч М ’}
NUM-j’dntf. ’ptur}J
Рисунок 10 — Разрешенные элементы и их допустимые значения
Обозначения 3s и non-3sуточняютограничения подопустимым значениям элементов PERи NUM,
суживаядизъюнкцию, которая представляет ограничение.
Эта система типов, взятая в целом, кодируется так. как показано ниже.
Пример — Система типов
<fsOecl
1
уре=*зфп’>
<(аОезсг>Базовый тип для лингвистических символов</fsOescr>
<fDecl name=Hhead">
<(Оезсг>Указывает синтаксическое оформление симаола<.’Юезсг>
<vRange>
<ts type=*pos*/>
•^vRangev
</fDecl>
<fDecl пате=“8рг’ >
•-IDescr-Покаэывает спецификаторы символа</(0езсг>
<vRange>
<vCollorg=*llst7>
</vRange>
<.’fDecl>
<
1
Decl name=*comps,’>
19