Примечание. Правилами кодирования обеспечивается передача строк битов произвольной длины и с произвольным чередованием битов в строке,
Обозначения вида «{СписокИдентификаторов}» и «{}» для последовательности «Значение-СтрокаБитов» могут использоваться только в том случае, когда присутствие или отсутствие замыкающих нулевых битов несущественно. Этот вариант обозначения задает строку битов с единицами в битовых позициях с номерами, задаваемыми последовательностями «Идентификатор», и со всеми остальными битами, равными нулю.
Примечание, Последовательность «{ }» используется для обозначения значения строки битов, не содержащей ни одного бита, равного единице.При описании правил кодирования для строк битов при ссылках на соответствующие биты используются термины «первый бит» и «замыкающий бит», определенные выше.
При использовании обозначения «b-строка» первый бит записывается слева, а замыкающий бит — справа.
При использовании обозначения вида «h-строка» старший бит каждой шестнадцатеричной цифры соответствует начальному (первому слева) биту в представляющей ее строке битов.
Примечание. Описание обозначения не ограничивают способа разме- щения строки битов по октетам для передачи, который реализуется правилами кодирования.
Обозначение «h-строка» может использоваться только в следующих случаях:
если значение строки битов состоит из количества битов, кратного четырем, или
присутствие или отсутствие последних нулевых битов несущественно.
Пример
'А98А'Н и '1010100110001010'В являются эквивалентными обозначениями одного и того же значения битовой строки.
ОБОЗНАЧЕНИЯ ТИПА «СТРОКА ОКТЕТОВ»
Для ссылки на тип «строка октетов» должно использоваться обозначение «Тип-СтрокаОктетов»:
Тип-СтрокаОктетов : : = OCTET STRING
Этот тип имеет тег универсального класса с номером 4.
Значение типа «строка октетов» должно определяться обозначением вида «Значение-СтрокаОктетов»:
Значение-СтрокаОктетов : : = b-строка |
h-строка
При описании правил кодирования для строк октетов на соответствующие октеты используются термины «первый октет» и «замыкающий октет», а для ссылок на соответствующие биты внутри октета используются термины «старший бит» и «младший бит».
При использовании обозначения вида «b-строка» самый левый бит является старшим битом первого октета. Если «Ь-стро- ка» состоит из некоторого количества битов, не кратного восьми, она должна интерпретироваться таким образом, как если бы она содержала такое наименьшее количество дополнительных замыкающих нулевых битов, которое требуется для обеспечения кратности восьми.
При использовании обозначения вида «h-строка» крайня
ялевая шестнадцатеричная цифра является старшим полуоктетом первого октета. Если «h-строка» состоит из нечетного числа шестнадцатеричных цифр, то она должна интерпретироваться таким образом, как если бы она содержала еще одну дополнительную замыкающую нулевую шестнадцатеричную цифру.
ОБОЗНАЧЕНИЯ ВЫРОЖДЕННОГО ТИПА
Для ссылки «а вырожденный тип (п. 3.19) следует использовать обозначение «ВырожйнныйТип»:
ВырождейныйТип : : - NULL
Этот тип имеет тег универсальнЪго класса с номером 5.
Для ссылок на значение вырожденного типа должно использоваться обозначение «ВырожденноеЗначение»:
ВырожденноеЗначение : : = NULL
ОБОЗНАЧЕНИЯ ТИПОВ «ПОСЛЕДОВАТЕЛЬНОСТЬ»
Для построения типа «последовательность» (п. 3.20) из других типов используется определяемое ниже обозначение «Тип- Последовательность»:
Тип-Последовательность : : — SEQUENCE{CiincoKTnnoB-KoMnoHeHTOB) | SEQUENCE { }
СписокТипов-Компонентов : : = *
Тип-Компонент I
СписокТипов-Компонентов, Тип-Компонент .
Тип-Компонент : : = . ,
ПоименованныйТип
ПоименованныйТип OPTIONAL ПоименованныйТип DEFAULT Значение COMPONENT, OF Тип
«Тип» в четвертом варианте продукции «Тип-компонент» должен быть типом «последовательность». Использование вари- анта «COMPONENTS OF Тип» определяет включение в этом месте в «СписокТипов-Компонентов» всех последовательностей «Тип- Компонент», имеющихся в типе, заданном обозначением «Тип».
При м е ч а н и е. Это преобразование считается логически завершенным до удонж творения требований, описанных в последующих пунктах.
3. Варианты с использованием ключевых слов «OPTIONAL» и «DEFAULT» допускаются только в тех случаях, когда все типы в последовательности «СписокТипов-Компонентов» имеют разные теги (р-аэд. 24). ,левая шестнадцатеричная цифра является старшим полуоктетом первого октета. Если «h-строка» состоит из нечетного числа шестнадцатеричных цифр, то она должна интерпретироваться таким образом, как если бы она содержала еще одну дополнительную замыкающую нулевую шестнадцатеричную цифру.
ОБОЗНАЧЕНИЯ ВЫРОЖДЕННОГО ТИПА
Для ссылки на вырожденный тип (п. 3.19) следует использовать обозначение «ВырождёиныйТип»:
ВырождейныйТип : : - NULL
Этот тип имеет тег универсальнЬго класса с номером 5.
Для ссылок на значение вырожденного типа должно использоваться обозначение «ВырожденноеЗначение»:
ВырожденноеЗначенис : : = NULL
ОБОЗНАЧЕНИЯ ТИПОВ «ПОСЛЕДОВАТЕЛЬНОСТЬ»
Для построения типа «последовательность» (п. 3.20) из других типов используется определяемое ниже обозначение «Тип- Последовательность»:
Тип-Последовательность : : —
SEQUENCE{CnncoKTnnoB-Компонентов) | SEQUENCE { }
СписокТипов-Компонентов : : = «
Тип-Компонент I
СписокТипов-Компонентов, Тип-Компонент .
Тип-Компонент : : = . , ■
ПоименованныйТип
ПоименованныйТин OPTIONAL ПоименованныйТип DEFAULT Значение COMPONEN T, OF Тип
«Тип» в четвертом варианте продукции «Тип-компонент» должен быть типом «последовательность». Использование варн- ані.т «COMPONENTS OF Тип» определяет включение в этом месте в «СписокТипов-Компонентов» всех последовательностей «Тип- Компонент», имеющихся в типе, заданном обозначением «Тип».
Примечание. Это преобразование считается логически завершенным до удон.кпнорення требований, описанных в последующих пунктах.
3. Варианты с использованием ключевых слов «OPTIONAL» и «DEFAULT» допускаются только в тех случаях, когда все типы в последовательности «СписокТипов-Компонентов» имеют разные теги (рээд. 24).
Если используются ключевые слова «OPTIONAL» или «DEFAULT», то при формировании значения нового типа, а также при формировании, в соответствии с правилами кодирования, информации для передачи значение соответствующего типа-компонента может быть опущено.
Примечания:
Если элементы «Идентификатор» присутствуют не в каждой последовательности «ПоименованныйТип», то обозначение значения для нового типа может оказаться неоднозначным.
Правилами кодирования гарантируется, что кодирование значения-последовательности, в котором был опущен элемент, заданный с использованием' ключевых слов «DEFAULT» или «OPTIONAL», будет совпадать с кодированием такого значения-последовательности, для которого соответствующий тип- компонент был опущен при описании типа. Это может оказаться полезным при определении подмножеств.
Пропуск значения типа, заданного как «DEFAULT», в точности эквивалентен включению значения, определенного последовательностью «Значение», которая должна быть допустимой последовательностью для обозначения значения типа, определенного последовательностью «Тип» в последовательности «ПоименованныйТип».
Элементы «Идентификатор» (если они заданы) должны быть различными во всех последовательностях вида «ПоименованныйТип», входящих в последовательность «СписокТипов-Компо- нентов».
Все типы «последовательность» имеют тег универсального класса с номером 16.
Примечание. Типы «последовательность из» имеют тот же самый тег.
Обозначения для определения значения типа «последовательность» должны иметь вид «Значение-Последовательность»:
Значение-Последовательность: : =
{СписокЗначений-Компонентов} |
{ }
СписокЗначений-Компонентов : : =
ПоименованноеЗначение |
СписокЗначений-Компонентов, ПоименованноеЗначение
Обозначение «{ }» используется лишь в следующих случаях:
все последовательности вида «Тип-Компонент» в последовательности «Тип-Последовательность» отмечены как «DEFAULT» или «OPTIONAL», и все значения опущены, или
обозначение типа имело вид «SEQUENCE{ }».
Для каждой последовательности «ПоименованныйТип», входящей в «Тип-Последовательность», которая не отмечена как «DEFAULT» или «OPTIONAL», в записи значения типа «последо-
вательность» должно быть включено некоторое значение этого поименованного типа в порядке следования последовательностей «ПоименованныйТип».
Примечание. Использование последовательностей «ПоименованныйТип», не содержащих идентификатор, не запрещается, но в случае использования «DEFAULT» или «OPTIONAL» может привести к неоднозначным обозначениям.
ОБОЗНАЧЕНИЯ ТИПОВ «ПОСЛЕДОВАТЕЛЬНОСТЬ ИЗ»
Обозначения для построения типа «последовательность из» (п. 3.21) из другого типа должны иметь вид «Тип-Последова- тельностьИз»:
Тип-ПоследовательностьИз : : = SEQUENCE OF Тип ( SEQUENCE
Обозначение «SEQUENCE» эквивалентно обозначению «SEQUENCE OF ANY» (разд. 25).
Все типы «последовательность из» имеют тег универсального класса с номером 16.
Примечание. Типы «последовательность» имеют тот же самый тег (п. 18.7).
Для задания значения типа «последовательность из» используется определяемое ниже обозначение «Значение-Последо- вательностьИз»:
Значение-ПоследовательностьИз : : =
{СписокЗначений} | { }
СписокЗначений : : = Значение |
СписокЗначений, Значение
Обозначение «{ }» используется в тех случаях, когда в значении типа «последовательность из» нет ни одного значения-компонента.
Каждая последовательность «Значение» входящая в «СписокЗначений», должна быть обозначением некоторого значения того «Типа», который задан определением типа «последовательность из».
Примечание. Порядку следования этих значений может соответствовать некоторый семантический смысл.
ОБОЗНАЧЕНИЯ ТИПА «МНОЖЕСТВО»
Обозначения для определения типа «множество» на основе других типов должны иметь вид «Тип-Множество»:
Тип-Множество : : = 5ЕТ{СписокТипов-Компонентов}:
SET { }
«СписокТнпов-Компонентов» определен В II. 18.1.
«Тип» в четвертом варианте продукции «Тип-Компонент» (л. 18.1) должен быть типом «множество». Использование варианта «COMPONENTS OF Тип» определяет включение в «Список- Типов-Компонентов» всех последовательностей «Тип-Компонент», имеющихся в типе «множество».
Примечание. Это преобразование считается логически завершенным до удовлетворения требований, описанных р последующих пунктах.
Все «Типы-компоненты» в типе «множество» должны иметь • разные теги (разд. 24).
Для типов «множество» применимы формулировки пп. 18.4, 18.5 и 18.6.
Все типы «множество» имеют тег универсального класса с номерам 17.
Примечание. Типы «множество из» имеют тог же самый тег (п. 21.3).
Порядку следования значений-компонентов в типе «мно- ' жество» не придается никакого семантического значения.
Обозначения для определения значения типа «множество» должны иметь вид «Значение-Множество»:
Значение-Множество : : = {СписокЗначений-Компонентов} |
-А ' ■ ■ {)
Последовательность «СписокЗначений-Компонентов» определен в п. 18.8.
. 20.8. Вариант }» в продукции «Значение-множество» мо
жет быть применен только в следующих случаях:
а) все последовательности «Тин-Компонент» в продукции «Тип-Множество» заданы как «DEFAULT» или «OPTIONAL», и все зяачёния-компоненты опущены, или
.6) тип был задан последовательностью «SET{ }».
Для каждого «ГТоимёнованногоТипа» в «Типе-Множестве», который не был задан как «OPTIONAL» или «DEFAULT», в •. запрей значения должна присутствовать соответствующая последовательность «ПонменованноеЗначенис».
П р и ме Ч а н Ия:
«ПоименованныеЭначения» могут следовать в произвольном порядке.
Использование последовательностей «ПонйеноваиныйТип», в которых отсутствует идентификатор, нс запрещается, но может привести к неоднозначности.
ОБОЗНАЧЕНИЯ ТИПОВ «МНОЖЕСТВО ИЗ»
Обозначения для определения типа «множество из» (см. р. 3.23) на основе' другого типа должны иметь вид «Тип-Мно- жествоИз»-Тип-МножествоИз : : = SET OF Тип | 'SET
Обозначение «SET» эквивалентно обозначению «SEI OF ANY» (разд. 25).
Все тины «множество' из» имеют тег универсального класса с. номером 17.
П р и м е ч а п не. Типы «множество» яйеют тот же самый тег (см. п. 20.5).
Обозначения для опрёделеннд значений Типа «множество из» должны иметь вид «Значение-МножествоИз»:
Значиение-МножествоИз : .: — {СпиеокЗначений) I { } Последовательность «СписокЗначений» определена в п. 19.4. Обозначение «{ }» используется в том случае, когда значения- компоненты в значении-множестве отсутствуют.