ГОСТ Р ИСО/МЭК 8825-2-2003
б) он получен из типа SEQUENCE (образованием подтипа, типом, ссылкой на тип или тегированием) и имеется маркер расширения в продукциях «ComponentTypeLists» или «Sequence-Type», или
в) он получен из типа SET (образованием подтипа, ссылкой на тип или тегированием) и имеется маркер расширения в продукциях «ComponentTypeLists» или «SetType», или
г) он получен из типа CHOICE (образованием подтипа, ссылкой на тип или тегированием) и имеется маркер расширения в продукции «AltemativeTypeLists».
9.4 Модель типа и значения, используемая для кодирования
9.4.1 Тип АСН. 1 является либо простым, либо построен с использованием других типов. Нотация допускает использование ссылок на тип и тегирование типов. Для настоящих правил кодирования использование ссылок на тип и тегирование не влияет на кодирование и не видно в модели, за исключением требований, установленный в 9.2. Нотация также допускает применение ограничений и спецификаций ошибок. Видимые для PER ограничения представлены в модели как ограничения значений типа. Другие ограничения и спецификации ошибок не влияют на кодирование и не видны в модели типа и значения PER.
9.4.2 Значение, которое должно быть закодировано, может рассматриваться либо как простое, либо как составное, построенное с помощью метода структурирования из компонентов, которые являются простыми или составными значениями, подобно структуре определения типа АСН. 1.
9.5 Структура кода
9.5.1 Настоящие правила кодирования специфицируют:
а) кодирование простого значения в список полей, и
б) кодирование составного значения в список полей, используя списки полей, порожденные применением настоящих правил кодирования к компонентам составного значения, и
в) преобразование списка полей самого внешнего значения в полное кодирование значения абстрактного синтаксиса (см. 10.1).
|
Преам- |
Длина |
Содер- |
|
Преам- |
Длина |
Содер- |
|
була |
|
жимое |
|
була |
|
жимое |
|
|
Содержимое |
Преам
була
Примечание — Преамбула, длина и содержимое являются «полями», которые, сцепленные вместе, образуют «список полей». Список полей составного типа, отличного от выборочного, может состоять из полей нескольких значений, сцепленных вместе. Либо преамбула, либо длина и (или) содержимое любого значения могут быть опущены.
Рисунок 1 — Кодирование составного значения в список полей
9.5.2 Кодирование значения компонента данных либо:
а) состоит из трех частей, показанных на рисунке 1, которые появляются в следующем порядке:
1) преамбула (см. разделы 18, 20 и 22);
2) детерминант длины (см. 10.9);
3) содержимое, либо
б) (когда содержимое большое) состоит из произвольного числа частей, как показано на рисунке 2, первая из которых является преамбулой (см. разделы1 18, 20 и 22), а последующие являются парами выровненный по октету битовый полей: первое поле — детерминант длины1 для фрагмента содержимого, второе — фрагмент содержимого; последняя пара полей идентифицируется частью детерминанта длины, как определено в 10.9.
|
|
|
|
|
|
|
|
Содер- |
|
Преам
була |
Длина |
Содер
жимое |
Длина |
Содер
жимое |
• • • |
Длина |
жимое
(может
отсут
ствовать) |
|
|
Рисунок 2 — Кодирование значения длинных данных |
9