ГОСТ Р ИСО/МЭК 8825-3—2016
Non-Null-Pattorn ::= Pattern
(ALL EXCEPT (bits:"B | octets:"H | char8:"" | char16:M" |
char32:M"))“
(
c m
.
21.10.2)
22.7.1.4 Цель этой спецификации —описать действия кодера и декодера, которые обеспечат де
кодеру возможность правильно определять конец пространства кодирования, занятого повторением.
П р и м е ч а н и е — Реальное кодирование повторения не обязательно заполнит все пространство кодиро
вания. поэтому восстановление кодирования повторения декодером будет обычно требовать действий, определя
ющих заполнение и выравнивание значения (см. 22.8).
22.7.1.5 Смысл признаков кодирования типа «Unit», «EncodingSpaceSize» и «RepetitionSpaco-
Dotormination» описан в 21.1, 21.2 и 21.7. Они вместе указывают способ определения конца простран
ства кодирования для повторений.
П р и м е ч а н и е — Если спецификатор ECN требует, чтобы был введен определитель длины, то значе
ние «variable-withdeterminant» в «SIZE» может быть указано даже при фиксированном размере пространства
повторения.
22.7.1.6 Спецификация «USING» является ссылкой на вспомогательное поле, или на поле, пере
носящее абстрактные значения, или на контейнер в зависимости от значения «DETERMINED BY».
22.7.2 Ограничения на спецификацию
22.7.2.1 Если «SIZE» равен «variable-with-determinant». a «DETERMINED BY» не присутствует,
то предполагается безусловное значение (по умолчанию) (field-to-be-set).
22.7.2.2 «USING» указывается, если, и только если. «SIZE» равен «variable-with-determinant», а
«DETERMINED BY» равен «field-to-bo-set». или «fiold-to-bo-used», или «flag-to-be-set», или «flag-to-
bo-used», или «container».
22.7.2.3 «ENCODER-TRANSFORMS» присутствует, если только «DETERMINED BY» установлен
(возможно, по умолчанию) в «field-to-be-set» или «flag-to-be-set». Первый преобразователь должен
иметь источник, который является целым числом, если «DETERMINED BY» равен «fiold-to-be-set». или
является булевым значением, если «DETERMINED BY» равен «flag-to-be-set». Последний преобразо
ватель должен иметь результат, который может быть кодирован классом поля, указанного в «USING».
22.7.2.4 Спецификация ECN или применение будут ошибочными, когда какой-либо преобразова
тель в «ENCODER-TRANSFORMS» не является обратимым для абстрактного значения, к которому он
применен.
22.7.2.5 «DECODER-TRANSFORMS» присутствует, если только «DETERMINED BY» установлен в
«field-to-beused» или «flag-to-be-usod». Первый преобразователь должен иметь источник той же кате
гории. что и поле, указанное в «USING». Последний преобразователь должен иметь результат, который
является целым числом, если «DETERMINED BY» равен «fiold-to-be-used», или является булевым
значением, если «DETERMINED BY» равен «flag-to-be-used».
22.7.2.6 Признак кодирования «USING», если присутствует, при «field-to-be-set» или «field-to-
bo-used» должен быть ссылкой на поле, появившееся в кодировании раньше, чем кодируемое поле.
Применение или спецификация ECN будут ошибочными, когда в экземпляре кодирования присутствует
закодированное повторение, а поле, указанное признаком кодирования «USING», отсутствует (из-за
применения факультативной возможности).
22.7.2.7 Признак кодирования «USING», если присутствует, при «flag-to-be-sot» или «flag-to-be-
used» должен быть ссылкой на поле, присутствующее в повторенном элементе повторения. Приме
нение или спецификация ECN будут ошибочными, когда в экземпляре кодирования поле, указанное
признаком кодирования «USING», отсутствует (из-за применения факультативной возможности) в ка
ком-либо повторенном элементе.
П ри м е ча н и е — Требование присутствия указанного поля в элементе повторения будет удовлетворено,
если имеется идентификатор, видимый согласно 17.5 (структура кодирования). 19.3 (отображение путем сопо
ставления полей). 19.6 (отображение путем распределения значений), или если он представлен текстуально в
определении структуры замены, когда «REPLACE COMPONENT» используется объектом кодирования с классом
в категории «повторение».
22.7.2.8 Если «DETERMINED BY» равен «container», то ссылка «USING» будет на конкатенацию
или на повторение (либо на цепочку битов или цепочку октетов с вложенным типом), в которых кодируе
мое повторение является компонентом (или компонентом компонента на любую глубину). Применение
94