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? |