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

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

     9.3 Видимые для PER ограничения


Примечание - То обстоятельство, что некоторые ограничения АСН.1 могут быть невидимыми для PER в отношении целей кодирования и декодирования, не влияет на использование ограничений при обработке ошибок, обнаруженных во время декодирования, и не подразумевает, что значения, нарушающие такие ограничения, являются допустимыми для передачи соответствующим отправителем.

9.3.1 Ограничения, выраженные в удобочитаемом для человека тексте или в комментарии АСН.1, не являются видимыми для PER.

9.3.2 Переменные ограничения не являются видимыми для PER (см. ГОСТ Р ИСО/МЭК 8824-4, 10.4 и 10.5)

9.3.3 Табличные ограничения не являются видимыми для PER (см. ГОСТ Р ИСО/МЭК 8824-3).

9.3.4 Ограничения, вычисление которых текстуально зависит от табличного ограничения или ограничения связи компонентов, не являются видимыми для PER (см. ГОСТ Р ИСО/МЭК 8824-3).

9.3.5 Ограничения связи компонентов не являются видимыми для PER (см. ГОСТ Р ИСО/МЭК 8824-3).

9.3.6 Ограничения на ограниченные типы символьных строк, не являющиеся (см. ГОСТ Р ИСО/МЭК 8824-1, раздел 36) типами символьных строк известной кратности, не являются видимыми для PER (см. 3.7.16).

9.3.7 С учетом вышесказанного, все ограничения размера являются видимыми для PER.

9.3.8 Эффективное ограничение размера для ограничиваемого типа является единственным и таким, что размер допустим только в том случае, если существует некоторое значение ограниченного типа, которое имеет этот (допустимый) размер. Если ограниченный тип имеет значения размера, которые не удовлетворяют ограничению, то эффективного ограничения размера не существует.

9.3.9 Ограничения допустимого алфавита PermittedAlphabet в типах символьных строк известной кратности являются видимыми для PER.

9.3.10 Эффективное ограничение PermittedAlphabet для ограничиваемого типа является единственным и таким, что символ допустим только в том случае, если имеется некоторое значение ограниченного типа, которое содержит этот символ. Если все символы ограничиваемого типа могут быть представлены в некотором значении ограниченного типа, то эффективное ограничение PermittedAlphabet является набором символов, определенным для неограниченного типа.

Примечания

1 В определении ограниченного типа кратные, видимые для PER ограничения, могут быть применены либо прямо, либо с использованием конструкции "ContainedSubtype".

2 Результат совместного действия ограничений, которые по отдельности являются видимыми для PER, см. в приложении В.

9.3.11 Внутреннее ограничение типа, примененное к вещественному типу, является видимым для PER.

9.3.12 Внутреннее ограничение типа, примененное к неограниченному типу символьных строк или типу "встроенное-здп", является видимым для PER только в том случае, когда оно используется для ограничения значения компонента "syntaxes" до единственного значения или для ограничения "identification" до альтернативы "fixed" (см. разделы 24 и 27).

9.3.13 Ограничения на полезные типы (по ГОСТ Р ИСО/МЭК 8824-1) не являются видимыми для PER.

9.3.14 С учетом вышесказанного, все другие ограничения являются видимыми для PER только в том случае, если они применяются к целочисленному типу или, исключая ограничение до единственного значения, к типам символьных строк известной кратности.

9.3.15 Если видимое для PER ограничение имеет внешнюю альтернативу ElementSetSpec, которая создает расширяемое множество значений (в соответствии с ГОСТ Р ИСО/МЭК 8824-1 раздел 46), то полученный тип является расширяемым для кодирований PER (пока он не ограничен далее, см. ГОСТ Р ИСО/МЭК 8824-1, 47.5); в противном случае тип не является расширяемым для кодирований PER.

Примечания

1 Если маркер расширения присутствует в ограничении ConstraintSpec, которое не является видимым для PER, а другого маркера расширения в ограничении нет, то тип кодируется PER так, как если бы у него отсутствовал маркер расширения.

2 Если имеется несколько спецификаций SizeConstraint, применяемых к типу, и одна из них является расширяемой, то тип кодируется PER так, как если бы маркеры расширения присутствовали во всех спецификациях SizeConstraint.

9.3.16 Тип является расширяемым для кодирований PER, если выполнено любое из следующих условий:

а) он получен из типа ENUMERATED (образованием подтипа, ссылкой на тип или тегированием) и имеется маркер расширения в продукции "Enumerations", или

б) он получен из типа SEQUENCE (образованием подтипа, типом, ссылкой на тип или тегированием) и имеется маркер расширения в продукциях "ComponentTypeLists" или "SequenceType", или

в) он получен из типа SET (образованием подтипа, ссылкой на тип или тегированием) и имеется маркер расширения в продукциях "ComponentTypeLists" или "SetType", или

г) он получен из типа CHOICE (образованием подтипа, ссылкой на тип или тегированием) и имеется маркер расширения в продукции "AlternativeTypeLists".