Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 8825-3-2016 Информационная технология (ИТ). Правила кодирования АСН.1. Часть 3. Спецификация нотации контроля кодирования (ECN)

     16.2 Определение структуры кодирования

16.2.1 Продукцией "EncodingStructure" является:

EncodingStructure ::=

TaggedStructure

| UntaggedStructure

TaggedStructure ::=

"["

TagСlass

Tag Value ?

"]"

UntaggedStructure

UntaggedStructure ::=

DefinedEncodingClass

I EncodingStructureField

| EncodingStructureDefn

TagClass ::=

DefinedEncodingClass |

TagClassReference

TagValue ::=

"("number")"

16.2.2 "EncodingStructure" определяет класс кодирования на базе структуры с использованием нотации, описанной ниже. Эта нотация позволяет определять произвольные классы кодирования с помощью предопределенных классов кодирования и определенных классов кодирования (которые могут быть генерируемыми структурами кодирования) для битовых полей, конструкторов кодирования и классов "процедура кодирования" в категории "факультативные возможности". Все классы, которые определяет "EncodingStructure", относятся к категории "структура кодирования" (примеры назначения структуры кодирования, иллюстрирующие многие синтаксические структуры, приведены в D.2.8.4, а в D.2.2.3 приведен пример использования #TAG).

Примечание - Синтаксис препятствует спецификации тегированного класса немедленно после другого тегированного класса в определении структуры кодирования, а также такие структуры не могут вырабатываться с несколькими текстуальными тегами в определении типа АСН.1 [см. перечисление е) 11.3.4.1].

16.2.3 "DefinedEncodingClass" определен в 10.9.1; он должен быть классом в группе категорий "битовое поле".

16.2.4 "DefinedEncodingClass" в "TagClass" должен быть классом в категории "тег" (см. 16.1.3).

16.2.5 Элемент "number" в "TagValue" указывает номер тега, который связан с классом в категории "тег".

16.2.6 Продукцией "EncodingStructureField" является:

EncodingStructureField ::=

#NUL

| #BOOL

| #INT

Bounds?

| #BITS

Size?

| #OCTETS

Size?

| #CHARS

Size?

| #PAD

| #BIT-STRING

Size?

| #BOOLEAN

| #CHARACTER-STRING

| #EMBEDDED-PDV

| #ENUMERATED

Bounds?

| #EXTERNAL

| #INTEGER

Bounds?

| #NULL

| #OBJECT-IDENTIFIER

| #OCTET-STRING

Size?

| #OPEN-TYPE

| #REAL

| #RELATIVE-OID

| #TIME

| #DATE

| #TIME-OF-DAY

| #DATE-TIME

| #DURATION

| #GeneralizedTime

| #UTCTime

| #ObjectDescriptor

Size?

I #BMPString

Size?

| #GeneralString

Size?

| #GraphicString

Size?

| #IA5String

Size?

| #NumericString

Size?

| #PrintableString

Size?

| #TeletexString

Size?

| #UniversalString

Size?

| #UTF8String

Size?

| #VideotexString

Size?

| #VisibleString

Size?