ГОСТ Р НСО/МЭК 8824-1—2001
П р и м е р
Корень расширения
A ::-SEQ U EN
CE!
a INTEGER.
1-е расширение
А :: = SEQUENCE|
a INTEGER.
2-е расширение
А :: - SEQUENCE!
a INTEGER,
3-с расширение
A : : - SEQUENCE{
a INTEGER.
1
II
( Г
II ’
b BOOLEAN.
с INTEGER
b BOOLEAN.
с INTEGER.
b BOOLEAN.
c INTEGER.
IIII,
1
d SEQLENCE{
с INTEGER.
II-
d SEQUENCE(
c INTEGER.
f lASStnng
|
\
11
g BOOLEAN OPTIONAL.
h BMPString,
11
-
f 1А5String
I
}
G.1.8 Хотя обычной практикой должно стать добавление со временем расширяюших дополнений. ис
пользуемые модель и спецификация АСН.1 нс содержат время. Два типа являются связанными расширением,
если один может быть "выршцен’ ид другого расширяющими дополнениями. Таким образом, один тин содер
жит все компоненты другого. Могут быть типы, которые "наращиваются" в противоположном направлении
(хотя это мало вероятно). Эго может произойти, если тип начинается (во времени) с большого количества
расширений, которые последовательно удаляются. Все. что передаст АСН.1 и ее правила кодирования, являет ся
две спецификации типов связанные или нс связанные расширением. Если они связаны, то все правила
кодирования АСН.1 должны обеспечивать взаимодействие между их пользователями.
G.1.9 Обычно начинают с некоторого типа и затем решают, хотят ли взаимодействовать с предшествую
щими версиями, если они были расширены. Если это так. то включают маркер расширения. Затем к типу
можно добавить последующие расширяющие дополнения без изменения битов в строке для более ранних
значений, но с определенной обработкой расширенных значений ранними системами. Существенно отметить,
что добавление маркера расширения к Топу, который ранее сто нс имел, или удаление существующего марке ра
расширения в общем случае изменит биты в строке и будет препятствовать взаимодействию. Такие измене ния
в общем случае потребуют изменения версий всех задействованных протоколов.
G.I.10 В таблице G.1 приведены типы АСН.1, которые могут быть типом корня расширения для после
довательности расширений АСН.1. и виды единичных расширяющих дополнений, допустимых для этого типа
(конечно, кратные расширяющие дополнения могут быть сделаны последовательно или одновременно).
Т а б л и u a G.1 — Расширяющие дополнения
Тип корня расширения
Вил расширяющих дополнений
ENUMERATED
Добавление единичного перечисления в коней "AdditionalEnumeration"
со значением перечисления большим, чем значение любого добавлен
ного ранее перечисления
SEQUENCE и SET
Добавление единичного типа иди расширяющей дополнительной груп
пы в коней ’ExtensionAdditionList". "ComponentType", которые являют
ся расширяющими дополнениями (нс содержащимися в расширяю
щей дополнительной группе) нс обязательно должны быть отмечены
как OPTIONAL или DEFAULT, хотя чаше всего это именно так
CHOICE
Добавление единичного "NamedType" в конец "ExtcnsionAdditionAlter-
rvativcsList*
Нотация ограничении
Добавление единичного "AdditionalElemcntSctSpcc" к нотации “Element-
SetSpecs*
96