ГОСТ Р ИСО/МЭК 8825-3—2016
22.10.2.4 Если «ORDER» равен «tag», то каждый компонент должен наминаться с класса кодиро
вания в категории «тег». Номер тега, связанный с этим классом, называется компонент-тегом.
22.10.2.5 Компонент-теги каждой альтернативы должны быть разными.
22.10.2.6 Эта спецификация считается установленной, если использовано ключевое слово
«CONCATENATION». Если она не установлена, то кодеры и декодеры действуют так. как будто она
была установлена с каждым признаком кодирования с учетом ее безусловного значения (по умолча
нию).
22.10.2.7 Если (из-за применения факультативных возможностей) имеется по меньшей мере одно
абстрактное значение конкатенации, которое не имеет битов в своем кодировании, то конкатенация не
должна иметь предварительного выравнивания.
П р и м е ч а н и е — Этот пункт будет применяться в случаях, когда конкатенация не имеет обязательных
компонентов или когда все и обязательные компоненты не могут иметь (из-за применения факультативных возмож
ностей) битов в своих кодированиях.
22.10.3 Действия кодера
22.10.3.1 Если «ORDER» равен «textual», то используется текстуальный порядок следования из
спецификации типов АСН.1 или определения структуры ECN.
22.10.3.2 Если «ORDER» равен «tag», то порядок следования определяется номерами тегов в
компонент-тегах (первым будет самый малый номер тега).
22.10.3.3 Если «ORDER» равен «random», то кодер определяет порядок следования конкатена
ции без ограничения.
22.10.3.4 Если «ALIGNMENT» равен «попе», то кодер соединяет кодирования компонентов без
вставляемых битов.
22.10.3.5 Если «ALIGNMENT» равен «aligned», то кодер применяет спецификацию предваритель
ного выравнивания для класса в категории «конкатенация» до кодирования каждого компонента, кроме
случая, когда спецификация предварительного выравнивания «ALIGNED ТО ANY» интерпретируется
как спецификация «ALIGNED ТО NEXT» (см. 22.2).
П ри м ечания
1 Это обьясняется тем. что гложет быть только один начальный указатель для «ALIGNED ТО ANY».
2 Любое предварительное выравнивание, указанное для компонента (включая «ALIGNED ТО ANY»), при
меняется после вышеуказанных действий.
22.10.4 Действия декодера
22.10.4.1 При декодировании компонента декодер сначала выполняет действия декодера, свя
занные со спецификацией предварительного выравнивания для «ALIGNMENT», если он установлен в
«alignod», обрабатывая «ALIGNED ТО ANY», как «ALIGNED ТО NEXT» (см. 22.2). Если «ALIGNMENT»
установлен в «попе», то декодер приступает прямо к декодированию компонента.
22.10.4.2 Декодер определяет порядок компонентов из определенного порядка для кодера, если
«ORDER» равен «textual» или «tag».
22.10.4.3 Если «ORDER» равен «random», то декодер определяет порядок компонентов путем
проверки значения идентификационного описателя.
22.10.4.4 Декодирование продолжается до получения абстрактного значения для каждого компо
нента, а декодер будет распознавать ошибку кодера, когда для компонента указано более одной ко
довой последовательности или когда во время декодирования появились неожидаемыо значения для
идентификационных описателей.
П р и м е ч а н и е — Неожидаемые значения могут появиться в виде части обеспечения расширяемости,
но это не поддерживается условиями настоящего стандарта, поэтому такие случаи считаются ошибками кодера.
22.11 Спецификация кодирования вложенного типа
22.11.1 Признаки кодирования, синтаксис и цель
22.11.1.1 При спецификации кодирования вложенного типа используются следующие признаки
кодирования:
&Primary-encoding-object-set
&Secondary-oncoding-object-set
&ovor-ride-encoded-by
«ENCODINGS OPTIONAL,
«ENCODINGS OPTIONAL,
BOOLEAN DEFAULT FALSE
101