« = » type (Local-type-2)
- Здесь ожидается описание второго типа
- АСН.1, которое будет присвоено
- переменной Local-type-2;
VALUE NOTATION : : =
«(»
«X»
« = »
value (Local-value-1 Local-type-1)
- Здесь ожидается описание значения типа,
-определяемого переменной Local-type-1,
- которое будет присвоено переменной
--Local-value-!;
«,»
«У»,
« = »
value (Local-value-2 LocaLtype-2)
- Здесь ожидается описание значения типа,
- определяемого переменной Local-type-2,
- которое будет1 присвоено переменной
- Local-value-2;
<VALUE SEQUENCE {Local-type-1, Local-type-2} : : = {Local-value-1, Local-value-2}>
- Это вложенное определение возвращает
- окончательное значение, являющееся
- значением последовательности,
- состоящей из двух типов.
«)»
END
В этом примере тип возвращаемого значения (в смысле базовой нотации АСН.1) не зависит от подставляемого значения, но зависит от подставляемого типа. В других случаях тип может либо полностью определяться макроопределением, либо может зависеть от подставляемого значения. Отметим, тем не менее, что во всех случаях для определения типа возвращаемого значения следует рассматривать продукцию «VALUE NOTATION». Продукция «TYPE NOTATION» просто определяет синтаксис для определения типа и устанавливает начальные значения локальных переменных, используемых при анализе подставляемой нотации значения.
Использование нотации для определения абстрактных синтаксисов
Для использования услуг уровня представления требуется описание значений, называемых значениями данных уровня представления, и группирование этих значений в множества, называемые абстрактными синтаксисами. Каждому из этих множеств присваивается имя абстрактного синтаксиса, относящееся к определенному в АСН.1 типу «идентификатор объекта».
Нотация АСН.1 может быть использована в качестве единого средства при описании значений данных уровня представления и их группировании в поименованные абстрактные синтаксисы.
Для простейших случаев такого использования в нотации АСН.1 может найтись единственный тип, такой, что все значения данных представления, составляющие поименованный абстрактный синтаксис, будут значениями этого типа. Как правило, этим типом является выборочный тип, и все значения данных представления будут относиться к различным типам-вариантам из этого выборочного типа. В этом случае рекомендуется оформить определяемые данные в виде модуля, в котором первым определяемым типом будет вышеупомянутый выборочный тип, а далее будут приведены определения тех (не универсальных) типов, на которые имеются прямые или косвенные ссылки в определении выборочного типа.
Примечание. Это не означает, что исключаются ссылки на типы, определенные в других модулях.
Ниже приведен пример текста, который мог бы быть частью некоторого стандарта, относящегося к прикладному уровню. Для исключения неоднозначности конец примера явно выделен строкой «Конец примера».
Пример.
ISOxxxx—уууу DEFINITIONS : : =
BEGIN
PDU : : = CHOICE
{connect-pdu . .. , data-pdu CHOICE { ,
},
}
end'
■ Настоящий стандарт присваивает следующее значение АСН.1 идентификатор объекта
{iso standard хххх abstract-syntax (1)}
в качестве имени абстрактного синтаксиса для множества значений данных представления, каждое из которых является значением типа данных АСН.1 «ISOxxxx-yyyy.PDU». Соответствующим описателем объекта АСН.1 устанавливается значение:
« ..... ^... »
В качестве имени синтаксиса передачи, используемого вместе с определенным выше именем абстрактного синтаксиса, могут использоваться значения АСН.1 для идентификатора объекта и описателя объекта.
{joint-iso-ccitt asnl (1) basic-encoding (1)} и
«Basic Encoding of a single ASN.l type»
(присваиваемые информационному объекту в (ГОСТ 34.974).
Конец примера
Стандарт может также потребовать для этого абстрактного синтаксиса обязательной поддержки синтаксиса передачи, получаемого применением правил кодирования.
{joint-iso-ccitt asnl (1) basic-encoding (1)}
ПРИЛОЖЕНИЕ 6
Справочное
СВОДКА СИНТАКСИСА НОТАЦИИ АСН.1
Перечисленные ниже элементы определяются в разд, 8. СсылкаНаТип (. AINY Идентификатор ) EXTERNAL СсылкаНаЗначение [ OBJECT СсылкаНаМодуль ] IDENTIFIER Комментарий - OPTIONAL Пусто BOOLEAN DEFAULT Число INTEGER COMPONENTS b-строка BIT UNIVERSAL h-строка STRING APPLICATION с-строка OCTET PRIVATE «: : = » NULL TRUE { SEQUENCE FALSE 1 OF BEGIN < SET END , IMPLICIT DEFINITIONS CHOICE Ниже приведены продукции, используемые в настоящем стандарте; терминальными символами продукций являются приведенные выше элементы: ОпределениеМодуля : : = СсылкаНаМодуль DEFINITIONS |
|
ТелоМодуля СписокПрисвоений Присвоение : ВнешняяСсылкаНаТип |
BEGIN- ТелоМодуля END : : = СписокПрисвоений : : = Присвоение | СписокПрисвоений Присвоение = ПрисвоениеТипа | ПрисвоениеЗначения : : = СсылкаНаМодуль |
С
ВнешняяСсылкаНаЗначение
ОпределенныйТип ОпределенноеЗначение
ПрисвоениеТипа
ПрисвоениеЗначения
Тип : : = ВстроеныйТип |
сылкаНаТип : : = СсылкаНаМодульСсылкаНаЗначение
: : = ВнешняяСсылкаНаТип I СсылкаНаТип
: : = ВнешняяСсылкаНаЗначение | СсылкаНаЗначение : : = СсылкаНаТип «: : =» Тип
: : = СсылкаНаЗначение Тип «: : =» Значение
ОпределенныйТипВстроенныйТип |
: = БулевскийТип I ЦелочисленныйТип I Тип-СтрокаБитов I Тип-СтрокаОктетов I ВырожденныйТип I Тип-Последовательность I Тип-ПоследовательностьИз 1 Тип-Множество I Тип-МножествоИз I ВыборочныйТип I СелективныйТип I ТегированныйТип I ПроизвольныйТип I Тип-ИдентификаторОбъекта I Тип-СтрокаЗнаков I |
ПоименованныйТип : : = |
ОбщеупотребительныйТип =Идентификатор Тип І Тип I СелективныйТип |
Значение : : =» ВстроенноеЗначение I ОпределенноеЗначение
ВстроенноеЗначение j |
= БулевскоеЗначение I ЦелочисленноеЗначение , .1 Значение-СтрокаБитов I Значение-СтрокаОктетов . .1 ВырожденноеЗначение I Значение-Последовательность I Значение-ПоследовательностьИз I Значение-Множество . , I Значение-МножествоИз I ВыборочноеЗначение I СелективноеЗначение I ТегированноеЗначение I ПроизвольноеЗначение I Значение-ИдентификаторОбъекта Значение-СтрокаЗнаков |
ПоименованноеЗначение |
: : = Идентификатор Значение I Значение |
БулевскийТип БулевскоеЗ начение ЦелочисленныйТип |
: : =BOOLEAN : : = TRUE : FALSE : : = INTEGER I ШТЕОЕВ{СписокПоименованных |
СписокПоименованныхЧисел |
Чисел} : : = ПоименованноеЧисло I |
ПоименованноеЧисло |
СписокПоименованныхЧисел, ПоименованноеЧисло : : = Идентификатор (ЧислоСоЗнаком) I Идентификатор (ОпределенноеЗначе |
ЧислоСоЗнаком ЦелочисленноеЗначение Тип-СтрокаБитов |
ние) : : = Число 1-Число : : ЧислоСоЗнакомІ Идентификатор : = BIT STRING I BIT STRING{CnHCOKnoHMeHOBaHHUX Ht/TAol |
СписокПоименованныхБнтов: |
: ==ПоименованныйБит I СписокПоименованныхБнтов, ПоименованныйБит |
п
ПоименованныйБит
Значение-Строка Битов
СписокИдентификаторов
Тип-СтрокаОктетов Значение-СтрокаОктетов ВырожденныйТип ВырожденноеЗначение Тип-Последовательность
СписокТипов-Компонентов
: := Идентификатор (Число) I
Идентификатор (ОпределенноеЗначе- ние)
: : =Ь-строка I h-строка I {СписокИдентификаторов} I {}
: : = Идентификатор I
СписокИдентификаторов, Идентификатор
: : = OCTET STRING
: : = b-строка I h-строка
: : = NULL
: : = NULL
SEQUENCE {СписокТипов-компонен- тов} I
SEQUENCE { }
СписокТипов-Компонентов, Тип-Ком-
Тип-Компонент
Значение-Последовательность
СписокЗначений-Компонентов
онент: : = ПоименованныйТип 1
ПоименованныйТип OPTIONAL I ПоименованныйТип DEFAULT Зна
чение I
COMPONENTS OF Тип
СписокЗначений-Компонентов I {}
С
ПоименованноеЗначение I
писокЗначений-Компонентов, Поименованное Значение Тип-ПоследовательностьИз : : = SEQUENCE OF Тип ISEQUENCE Значение-ПоследовательностьИз : : ={СписокЗначений} I { } СписокЗначений : : = Значение I
СписокЗначений, Значение
Тип-Множество : ; = 5ЕТ{СписокТипов-Компонентов}
S
Значение-Множество
Тип-МножествоИз Значение-МножествоИз ВыборочныйТип
СписокТипов-Вариантов
ВыборочноеЗначение СелективныйТип СелективноеЗначение ТегированныйТип Тег
НомерВКлассе
Класс
ТегированноеЗначение ПроизвольныйТип
ET{ }: : — {СписокЗначений-Компонен
тов} I { }
: : — SET OF Тип I SET
: : = {СписокЗначений} I {}
: : = CHOICE {СписокТипов-Вари- * антов)
: : = ПоименованныйТип 1
СписокТипов-Вариантов, ПоименованныйТип
: : = ПоименованноеЗначение
: : = Идентификатор < Тип
: : = ПоименованноеЗначение
: : =Тег тип I Тег IMPLICIT Тип
: : = [Класс НомерВКлассе]
: : = Число I ОпределенноеЗначе- ние
: ; = UNIVERSAL |
APPLICATION I
PRIVATE I Пусто
: : = Значение
: : = ANY
NumericString PrintableString TeletexString TBliString Videotexstring |
VisibleString • ISO646String ;IA5String Graphicstring Generalstring |
О
Перечисленные ниже типы «строка знаков» определены;в разд. 29
ПроизвольноеЗначение : : =Тип Значение
Тип-ИдентификаторОбъекта : : =OBJECT IDENTIFIER Значение-ИдОбъекта : : = {СписокКомпонентовИдОбъекта} I {ОпределенноеЗначение СписокКомпонентовИдОбъекта} СписокКомпонентовИдОбъекта : : = КомпонентИдОбъекта I КомпонентИдОбъектаСписокКомпонентовИдОбъекта
КомпонентИдОбъекта |
: : = Именнаяформа I Числоваяформа I Смешаннаяформа |
Именнаяформа Числоваяформа Смешаннаяформа |
: : = Идентификатор : :== Число I ОпределенноеЗначение : : = Идентификатор (Числовая форма) |
Тип-СтрокаЗнаков Значение-СтрокаЗнаков ОбщеупотребительныйТип |
: : =СсылкаНаТип : : =с-строка : : =СсылкаНаТип |
GeneralizedTime EXTERNAL
UTCTime ObjectDescriptor
Перечисленные ниже дополнительные элементы определены в п. 1.2 примечания 1 и используются в макронотации.
макроссылка СсылкаНаПродукцию ЛокальнаяСсылкаНаТип |
«number» «empty» MACRO |
ЛокальнаяСсылкаНаЗначение TYPE
|
NOTATION VALUE |
а-строка «string» «identifier» |
value type |
Ниже приводятся продукции, ными символами этих продукций
используемые в приложении Ш; термииаль- являются приведенные выше элементы, а
также элементы, перечисленные в начале настоящего приложения. Макроопределение : : = макроссылка
MACRO
«: : =»
BEGIN
ТелоМакро
END
ТелоМакро : : = ПродукцияТипа
ПродукцияЗначения
ВспомогательныеПродукции
ПродукцияТипа : : =
TYPE NOTATION
«: : =»
СписокВариантсщМакро ПродукцияЗначения : : =
VALUE NOTATION
«: : =»
СписокВариантовМакро
ВспомогательныеПродукции : : =
СписокПродукций I empty
СписокПродукций : : — Продукция I
СписокПродукций Продукция
Продукция : : =СсылкаНаПродукцию
СписокВариантовМакро
СписокВариантовМакро : : =
ВариантМакро I
СписокВариантовМакро
■' «I»
ВариантМакро
ВариантМакро : : = СписокСимволов СписокСимволов і I «
СимвольныйЭлемент I
СписокСимволов СимвольныйЭлемент
Символьный Элемент : : =
ОпределениеСимвола I
ВложенноеОпределение
МакроТип : : = ЛокальнаяСсылкаНаТип I
Тип
ОпределениеСимвола : : = «а-строка» I
СсылкаНаПродукцию I
«string» «identifier» «number»
«empty»
type
type (ЛокальнаяСсылкаНаТип) I
value (МакроТип) I
value (ЛокальнаяСсылкаНаЗначение МакроТип) I
v
< СписокВложенныхОпределений >
ВложенноеОпределение I
СписокВложенныхОпределений
ВложенноеОпределение
: : 5= ЛокальноеПрисвоениеТипа I ЛокальноеПрисвоениеЗначения : : = ЛокальнаяСсылкаНаТип
alue (VALUE МакроТип) ВложенноеОпределение : : =СписокВложенныхОпределений
ВложенноеОпределение
ЛокальноеПрисвоениеТипа
*: : —»
М
ЛокальноеПрисвоениеЗначения
МакроЗначение
акроТипЛокальнаяСсылкаНаЗначение
МакроТип «: : =» МакроЗначение
: = Значение I
ЛокальнаяСсылкаНаЗначение
ПРИЛОЖЕНИЕ 7
Справочное
Раздел, пункт
8.2, 8.14, 13, 5.2.1
9.4, 10
30, 31
31
31
12.1
12.6
8.14, 22, П5.2.9
8.14, 17, П5.2.5
29.6, П2, ПЗ
3.8, 7
3.1
8.3
8.2, 8.14, 26
3.14, 8.14
7.3, 8.6
8.2, 8.14, 18
8.2, 8.14 П1.І— П1.4, П5.3
8,14, 20, П5.2.7
8.14, 21
9
8.14, 18, 20
24
30
28, 30, 31, 32, 33
33
29
29, 29.4
5.8, 24
8.2, 8.14, 18, 5.2.6
8.2, 8.14, 19, 5.2.6
5.8, 24
5.1—5.3
8.12
11.1
5.1
8.2, 8.14, 19.2, 25, 5.2.11
3.3
8.2.2
6
26, 12.4, 23
8.4
8.5
8.2
8.2, 8.14, 15, 5.2.3
3.17, 27, 29
АЛФАВИТНЫЙ УКАЗАТЕЛЬ
Термин
булев тип (BOOLEAN) внешняя ссылка на тип время
время UTC (UTCTime)
всемирное время встроенный тип встроенное значение выборочный тип (CHOICE) вырожденный тип (NULL) дерево идентификаторов объектов знаковый набор АСН.1 .значение идентификатор идентификатор объекта истина (TRUE) комментарий