ГОСТ Р ИСО/МЭК 8825-3—2016
или спецификация ECN будут ошибочными, когда в экземпляре кодирования должны кодироваться по
следние элементы внутри одной и той же конкатенации или повторения.
22.7.2.9 «HANDLE» указывается, если только «SIZE» равен «variable-with-determinant». а
«DETERMINED BY» равен «handle».
22.7.2.10 Если «DETERMINED BY» является «handle», применяется 21.7.10.
22.7.2.11 «PATTERN» указывается, если только «SIZE» равен «variable-with-determinant». а
«DETERMINED BY» равен «pattern».
22.7.2.12 «PATTERN» не должен быть начальной субцепочкой в кодировании значения повторя
емого элемента.
П р и м е ч а н и е — Her запрета на появление «PATTERN» внутри кодирования повторяемого элемента,
который не является началом кодирования.
22.7.2.13 Эта спецификация считается установленной, если использовано ключевое слово
«REPETITION-SPACE», которое обязательно должно быть установлено во всех мостах в определенном
синтаксисе, где оно разрешено. Установка по умолчанию всех остальных частей этого определенного
синтаксиса (например, использование одиночного «REPETITION-SPACE») не может удовлетворять вы
шеприведенным ограничениям.
22.7.3 Действия кодера
22.7.3.1 Кодеры не будут генерировать кодовые последовательности, если не удовлетворяются
условия 22.7.2.
22.7.3.2 Если «SIZE» равен положительному значению, то пространство кодирования будет крат
но единицам «MULTIPLE OF». Если «MULTIPLE OF» является повторениями, то кодер прекращает
кодирование, когда абстрактное значение, подлежащее кодированию, не является повторениями, и
распознает ошибку спецификации или применения.
22.7.3.3 Если «SIZE» не установлен в положительное значение, то кодер определяет размер «s»
пространства повторения в единицах «MULTIPLE OF» из спецификации кодирования значения. Это
определение описано в подразделах о спецификации кодирования значения.
22.7.3.4 Если «SIZE» равен «encoder-optlon-with-determinant». то кодер (по своему выбору) мо
жет увеличить размер «s» (определенный в 22.7.3.3) на единицы «MULTIPLE OF» по сравнению с раз
мером. определенным из спецификации кодирования значения, до любого значения, которое может
быть кодировано в соответствующем определителе.
22.7.3.5 Если «SIZE» равен «fixed-to-max» или «self-delimiting-values», то дальнейшие действия
кодера отсутствуют.
22.7.3.6 Если «SIZE» равен «variable-with-determinant». a «DETERMINED BY» равен «container»,
то дальнейшие действия кодера отсутствуют.
22.7.3.7 Если «DETERMINED BY» равен «field-to-be-set», то кодер применяет преобразователи,
указанные в «ENCODER-TRANSFORMS» (если он есть), к значению «s» для получения значения, кото
рое будет кодировано в ссылке «USING».
П р и м е ч а н и е — Кодирование ссылки «USING» в этом случав появляется в кодировании раньше, чем
кодирование повторения, а кодер должен будет отложить кодирование этого поля до определения повторения,
которое будет кодироваться.
22.7.3.8 Если «DETERMINED BY» равен «ficld-to-be-used». то кодер проверяет, что значение в
ссылке «USING», преобразованное с помощью «DECODER-TRANSFORMS» (если он есть), равно «s».
Применение будет ошибочным, когда это условие не удовлетворяется, и кодирование не будет продол
жаться.
22.7.3.9 Если «DETERMINED BY» равен «flag-to-be-set», то кодер применяет (для каждого повто
ряемого элемента) преобразователи, указанные в «ENCODER-TRANSFORMS» (если он есть), к булеву
значению, которое равно TRUE для всех элементов, кроме последнего, и равно FALSE для последнего
элемента. Результат из «ENCODER-TRANSFORMS» кодируется в ссылке «USING».
22.7.3.10 Если «DETERMINED BY«равен «flag-to-be-usede, то кодер проверяет (для каждого
повторяемого элемента), что значение в ссылке «USING», преобразованное с помощью «DECODER-
TRANSFORMS» (если он есть), является булевым значением, которое равно TRUE для всех элемен
тов. кроме последнего, и равно FALSE для последнего элемента. Применение будет ошибочным, когда
это условие не удовлетворяется, и кодирование но будет продолжаться.
22.7.3.11 Если «DETERMINED BY» равен «handle», то от кодера не требуется дальнейших действий.
95