Примечание. Правилами кодирования обеспечивается передача строк битов произвольной длины и с произвольным чередованием битов в строке,

  1. Обозначения вида «{СписокИдентификаторов}» и «{}» для последовательности «Значение-СтрокаБитов» могут использо­ваться только в том случае, когда присутствие или отсутствие за­мыкающих нулевых битов несущественно. Этот вариант обозначе­ния задает строку битов с единицами в битовых позициях с номе­рами, задаваемыми последовательностями «Идентификатор», и со всеми остальными битами, равными нулю.

  1. Примечание, Последовательность «{ }» используется для обозначения значения строки битов, не содержащей ни одного бита, равного единице.При описании правил кодирования для строк битов при ссылках на соответствующие биты используются термины «первый бит» и «замыкающий бит», определенные выше.

  2. При использовании обозначения «b-строка» первый бит записывается слева, а замыкающий бит — справа.

  3. При использовании обозначения вида «h-строка» стар­ший бит каждой шестнадцатеричной цифры соответствует на­чальному (первому слева) биту в представляющей ее строке би­тов.

Примечание. Описание обозначения не ограничивают способа разме- щения строки битов по октетам для передачи, который реализуется правилами кодирования.

  1. Обозначение «h-строка» может использоваться только в следующих случаях:

  1. если значение строки битов состоит из количества битов, кратного четырем, или

  2. присутствие или отсутствие последних нулевых битов несу­щественно.

Пример

'А98А'Н и '1010100110001010'В являются эквивалентными обо­значениями одного и того же значения битовой строки.

  1. ОБОЗНАЧЕНИЯ ТИПА «СТРОКА ОКТЕТОВ»

    1. Для ссылки на тип «строка октетов» должно использо­ваться обозначение «Тип-СтрокаОктетов»:

Тип-СтрокаОктетов : : = OCTET STRING

  1. Этот тип имеет тег универсального класса с номером 4.

  2. Значение типа «строка октетов» должно определяться обозначением вида «Значение-СтрокаОктетов»:

Значение-СтрокаОктетов : : = b-строка |

h-строка

  1. При описании правил кодирования для строк октетов на соответствующие октеты используются термины «первый октет» и «замыкающий октет», а для ссылок на соответствующие биты внут­ри октета используются термины «старший бит» и «младший бит».

  2. При использовании обозначения вида «b-строка» самый левый бит является старшим битом первого октета. Если «Ь-стро- ка» состоит из некоторого количества битов, не кратного восьми, она должна интерпретироваться таким образом, как если бы она содержала такое наименьшее количество дополнительных замы­кающих нулевых битов, которое требуется для обеспечения крат­ности восьми.

При использовании обозначения вида «h-строка» крайня

ялевая шестнадцатеричная цифра является старшим полуоктетом первого октета. Если «h-строка» состоит из нечетного числа шест­надцатеричных цифр, то она должна интерпретироваться таким об­разом, как если бы она содержала еще одну дополнительную замы­кающую нулевую шестнадцатеричную цифру.

  1. ОБОЗНАЧЕНИЯ ВЫРОЖДЕННОГО ТИПА

    1. Для ссылки «а вырожденный тип (п. 3.19) следует исполь­зовать обозначение «ВырожйнныйТип»:

ВырождейныйТип : : - NULL

  1. Этот тип имеет тег универсальнЪго класса с номером 5.

  2. Для ссылок на значение вырожденного типа должно ис­пользоваться обозначение «ВырожденноеЗначение»:

ВырожденноеЗначение : : = NULL

  1. ОБОЗНАЧЕНИЯ ТИПОВ «ПОСЛЕДОВАТЕЛЬНОСТЬ»

    1. Для построения типа «последовательность» (п. 3.20) из других типов используется определяемое ниже обозначение «Тип- Последовательность»:

Тип-Последовательность : : — SEQUENCE{CiincoKTnnoB-KoMnoHeHTOB) | SEQUENCE { }

СписокТипов-Компонентов : : = *

Тип-Компонент I

СписокТипов-Компонентов, Тип-Компонент .

Тип-Компонент : : = . ,

ПоименованныйТип

ПоименованныйТип OPTIONAL ПоименованныйТип DEFAULT Значение COMPONENT, OF Тип

  1. «Тип» в четвертом варианте продукции «Тип-компонент» должен быть типом «последовательность». Использование вари- анта «COMPONENTS OF Тип» определяет включение в этом мес­те в «СписокТипов-Компонентов» всех последовательностей «Тип- Компонент», имеющихся в типе, заданном обозначением «Тип».

При м е ч а н и е. Это преобразование считается логически завершенным до удонж творения требований, описанных в последующих пунктах.

3. Варианты с использованием ключевых слов «OPTIONAL» и «DEFAULT» допускаются только в тех случаях, когда все типы в последовательности «СписокТипов-Компонентов» имеют разные теги (р-аэд. 24). ,левая шестнадцатеричная цифра является старшим полуоктетом первого октета. Если «h-строка» состоит из нечетного числа шест­надцатеричных цифр, то она должна интерпретироваться таким об­разом, как если бы она содержала еще одну дополнительную замы­кающую нулевую шестнадцатеричную цифру.

  1. ОБОЗНАЧЕНИЯ ВЫРОЖДЕННОГО ТИПА

    1. Для ссылки на вырожденный тип (п. 3.19) следует исполь­зовать обозначение «ВырождёиныйТип»:

ВырождейныйТип : : - NULL

  1. Этот тип имеет тег универсальнЬго класса с номером 5.

  2. Для ссылок на значение вырожденного типа должно ис­пользоваться обозначение «ВырожденноеЗначение»:

ВырожденноеЗначенис : : = NULL

  1. ОБОЗНАЧЕНИЯ ТИПОВ «ПОСЛЕДОВАТЕЛЬНОСТЬ»

    1. Для построения типа «последовательность» (п. 3.20) из других типов используется определяемое ниже обозначение «Тип- Последовательность»:

Тип-Последовательность : : —

SEQUENCE{CnncoKTnnoB-Компонентов) | SEQUENCE { }

СписокТипов-Компонентов : : = «

Тип-Компонент I

СписокТипов-Компонентов, Тип-Компонент .

Тип-Компонент : : = . , ■

ПоименованныйТип

ПоименованныйТин OPTIONAL ПоименованныйТип DEFAULT Значение COMPONEN T, OF Тип

  1. «Тип» в четвертом варианте продукции «Тип-компонент» должен быть типом «последовательность». Использование варн- ані.т «COMPONENTS OF Тип» определяет включение в этом мес­те в «СписокТипов-Компонентов» всех последовательностей «Тип- Компонент», имеющихся в типе, заданном обозначением «Тип».

Примечание. Это преобразование считается логически завершенным до удон.кпнорення требований, описанных в последующих пунктах.

  1. 3. Варианты с использованием ключевых слов «OPTIONAL» и «DEFAULT» допускаются только в тех случаях, когда все типы в последовательности «СписокТипов-Компонентов» имеют разные теги (рээд. 24).

  2. Если используются ключевые слова «OPTIONAL» или «DEFAULT», то при формировании значения нового типа, а так­же при формировании, в соответствии с правилами кодирования, информации для передачи значение соответствующего типа-ком­понента может быть опущено.

Примечания:

  1. Если элементы «Идентификатор» присутствуют не в каждой последова­тельности «ПоименованныйТип», то обозначение значения для нового типа мо­жет оказаться неоднозначным.

  2. Правилами кодирования гарантируется, что кодирование значения-пос­ледовательности, в котором был опущен элемент, заданный с использованием' ключевых слов «DEFAULT» или «OPTIONAL», будет совпадать с кодировани­ем такого значения-последовательности, для которого соответствующий тип- компонент был опущен при описании типа. Это может оказаться полезным при определении подмножеств.

  1. Пропуск значения типа, заданного как «DEFAULT», в точности эквивалентен включению значения, определенного пос­ледовательностью «Значение», которая должна быть допустимой последовательностью для обозначения значения типа, опреде­ленного последовательностью «Тип» в последовательности «По­именованныйТип».

  2. Элементы «Идентификатор» (если они заданы) должны быть различными во всех последовательностях вида «Поименован­ныйТип», входящих в последовательность «СписокТипов-Компо- нентов».

  3. Все типы «последовательность» имеют тег универсально­го класса с номером 16.

Примечание. Типы «последовательность из» имеют тот же самый тег.

  1. Обозначения для определения значения типа «последова­тельность» должны иметь вид «Значение-Последовательность»:

Значение-Последовательность: : =

{СписокЗначений-Компонентов} |

{ }

СписокЗначений-Компонентов : : =

ПоименованноеЗначение |

СписокЗначений-Компонентов, ПоименованноеЗначение

  1. Обозначение «{ }» используется лишь в следующих слу­чаях:

  1. все последовательности вида «Тип-Компонент» в последова­тельности «Тип-Последовательность» отмечены как «DEFAULT» или «OPTIONAL», и все значения опущены, или

  2. обозначение типа имело вид «SEQUENCE{ }».

  1. Для каждой последовательности «ПоименованныйТип», входящей в «Тип-Последовательность», которая не отмечена как «DEFAULT» или «OPTIONAL», в записи значения типа «последо-

вательность» должно быть включено некоторое значение этого поименованного типа в порядке следования последовательностей «ПоименованныйТип».

Примечание. Использование последовательностей «Поименованный­Тип», не содержащих идентификатор, не запрещается, но в случае исполь­зования «DEFAULT» или «OPTIONAL» может привести к неоднозначным обо­значениям.

  1. ОБОЗНАЧЕНИЯ ТИПОВ «ПОСЛЕДОВАТЕЛЬНОСТЬ ИЗ»

    1. Обозначения для построения типа «последовательность из» (п. 3.21) из другого типа должны иметь вид «Тип-Последова- тельностьИз»:

Тип-ПоследовательностьИз : : = SEQUENCE OF Тип ( SEQUENCE

  1. Обозначение «SEQUENCE» эквивалентно обозначению «SEQUENCE OF ANY» (разд. 25).

  2. Все типы «последовательность из» имеют тег универсаль­ного класса с номером 16.

Примечание. Типы «последовательность» имеют тот же самый тег (п. 18.7).

  1. Для задания значения типа «последовательность из» ис­пользуется определяемое ниже обозначение «Значение-Последо- вательностьИз»:

Значение-ПоследовательностьИз : : =

{СписокЗначений} | { }

СписокЗначений : : = Значение |

СписокЗначений, Значение

Обозначение «{ }» используется в тех случаях, когда в значе­нии типа «последовательность из» нет ни одного значения-компо­нента.

  1. Каждая последовательность «Значение» входящая в «СписокЗначений», должна быть обозначением некоторого значе­ния того «Типа», который задан определением типа «последова­тельность из».

Примечание. Порядку следования этих значений может соответство­вать некоторый семантический смысл.

  1. ОБОЗНАЧЕНИЯ ТИПА «МНОЖЕСТВО»

    1. Обозначения для определения типа «множество» на ос­нове других типов должны иметь вид «Тип-Множество»:

Тип-Множество : : = 5ЕТ{СписокТипов-Компонентов}:

SET { }

«СписокТнпов-Компонентов» определен В II. 18.1.

  1. «Тип» в четвертом варианте продукции «Тип-Компонент» (л. 18.1) должен быть типом «множество». Использование вари­анта «COMPONENTS OF Тип» определяет включение в «Список- Типов-Компонентов» всех последовательностей «Тип-Компонент», имеющихся в типе «множество».

Примечание. Это преобразование считается логически завершенным до удовлетворения требований, описанных р последующих пунктах.

  1. Все «Типы-компоненты» в типе «множество» должны иметь • разные теги (разд. 24).

  2. Для типов «множество» применимы формулировки пп. 18.4, 18.5 и 18.6.

  3. Все типы «множество» имеют тег универсального класса с номерам 17.

Примечание. Типы «множество из» имеют тог же самый тег (п. 21.3).

  1. Порядку следования значений-компонентов в типе «мно- ' жество» не придается никакого семантического значения.

  2. Обозначения для определения значения типа «множест­во» должны иметь вид «Значение-Множество»:

Значение-Множество : : = {СписокЗначений-Компонентов} |

-А ' ■ ■ {)

Последовательность «СписокЗначений-Компонентов» опреде­лен в п. 18.8.

. 20.8. Вариант }» в продукции «Значение-множество» мо­

жет быть применен только в следующих случаях:

а) все последовательности «Тин-Компонент» в продукции «Тип-Множество» заданы как «DEFAULT» или «OPTIONAL», и все зяачёния-компоненты опущены, или

.6) тип был задан последовательностью «SET{ }».

  1. Для каждого «ГТоимёнованногоТипа» в «Типе-Множест­ве», который не был задан как «OPTIONAL» или «DEFAULT», в •. запрей значения должна присутствовать соответствующая после­довательность «ПонменованноеЗначенис».

П р и ме Ч а н Ия:

  1. «ПоименованныеЭначения» могут следовать в произвольном порядке.

  2. Использование последовательностей «ПонйеноваиныйТип», в которых отсутствует идентификатор, нс запрещается, но может привести к неоднознач­ности.

  1. ОБОЗНАЧЕНИЯ ТИПОВ «МНОЖЕСТВО ИЗ»

Обозначения для определения типа «множество из» (см. р. 3.23) на основе' другого типа должны иметь вид «Тип-Мно- жествоИз»-Тип-МножествоИз : : = SET OF Тип | 'SET

  1. Обозначение «SET» эквивалентно обозначению «SEI OF ANY» (разд. 25).

  2. Все тины «множество' из» имеют тег универсального клас­са с. номером 17.

П р и м е ч а п не. Типы «множество» яйеют тот же самый тег (см. п. 20.5).

  1. Обозначения для опрёделеннд значений Типа «множество из» должны иметь вид «Значение-МножествоИз»:

Значиение-МножествоИз : .: — {СпиеокЗначений) I { } Последовательность «СписокЗначений» определена в п. 19.4. Обозначение «{ }» используется в том случае, когда значения- компоненты в значении-множестве отсутствуют.