ПРИЛОЖЕНИЕ G
«справочное)
ГОСТ Р ИСО/МЭК 8824-1-2001
Руководство по модели расширения типа АСН.1
G.1 Обзор
G.E1 Может случиться гак. что тип АСН.1 с течением времени выходит за корень расширения с помо
щью серии расширений, называемых расширяющими дополнениями.
G.1.2 Тип АСН.1. доступный конкретной рсалтгзашш. может быть типом корня расширения или типом
корня расширения плюс одно или несколько расширяющих дополнений. Каждый тип АСН.1. содержащий
расширяющее дополнение, содержит и все ранее определенные расширяющие дополнения.
G.1.3 Говорят, что определения типов АСН.1 в згой последовательности являются связанными расши
рением (более точное определение понятия "связанные расширением" см. в 3.8.32). и требуется, чтобы прави ла
кодирования применились к связанным расширением тинам таким образом, что если две системы исполь зуют
два разных связанных расширением типа, то между ними будут успешно переданы те части информации
содержимого этих типов, которая является общей для двух систем. Кроме того, требуется, чтобы части, нс
являющиеся общими для обеих систем, могли быть выделены и в последующем ретранслированы (возможно,
третьей стороне) при условии использовании того же синтаксиса передачи.
П р и м с ч а и и с — Отправитель может использовать тип, который находится в последовательности
расширяющих дополнений как раньше, так и позже.
C I N I C U L K .
с
)
b BOOLEAN,
cINTEGER
b BOOLEAN,
c INTEGER,
dSEQUENCE{
G.I.4 Последовательность типов, полученная добавлениями к корневому типу, называется серией рас
ширений. Для того чтобы правила кодировании могли обеспечить соответствующую передачу связанных рас
ширением типов (которая может потребовать больше битов в строке), такие типы (включая корень расшире
ния) должны быть отмечены синтаксически. Признаком является многоточие ( ...) и называется маркером
расширения.
Г1 р и м с р
Корень расширенияI-с расширение2-е расширение3-с расширение
A ::-SEQ U EN CE)А : : - SEQUENCE)
А : : - SEQUENCE{
A : : - SEQUENCE{
a INTEGER. a INI EGER. a INTEGER.
a INTEGER.
b BOOLEAN,
c INTEGER,
d SEQUENCE)
...!
flASString
g BOOLEAN OPTIONAL.
h BMPString.
)
\
f IA5Stnng
)
)
G.1.5 Bee расширяющие дополнения вставляются между парами маркеров расширения. Единственный
маркер расширения допустим, если в корне расширения он стоит последним элементом типа; в этом случае
принимается, что парный ему маркер расширения стоит непосредственно перед закрывающей фигурной скобкой
тина, а расширяющие дополнения вставляются в коней типа.
G.1.6 Тип, имеющий маркер расширения, может быть вложен либо в тип. нс имеющий такого маркера,
либо в тип в корне расширения, либо в тип расширяющего дополнения. В таких случаях серии расширений
трактуются независимо друг от друза и вложенный тип с маркером расширения нс влияет на тип. в который
он вложен. В любой конкретной конструкции может быть только одна точка вставки расширения (в койне
типа, если используется единственный маркер расширения, или непосредственно перед вторым маркером
расширения, если используется пара маркеров расширения).
G.1.7 Новое расширяющее дополнение в серии расширений определяется в терминах расширяющей
дополнительной группы (из одного или нескольких типов, заключенных между "|[" и "Ц") или единственного
типа, добавленного в точке вставки расширении. Вследующем примере первое расширение определяет расши
ряющую дополнительную группу, когда Ь. с должны олновременно присутствовать или отсутствовать в значе нии
типа А. Второе расширение определяет единственный зип компонента d. который может отсутствовать в
значении тина А. Третье расширение определяетрасширяющуюдополнительную группу, в которой компонент h
должен присутствовать в значении тина А всякий раз. когда в нем есть новая расширяющая допантигольная
группа.
7 - 2 *
95