9.11.1 Объекты кодирования, наборы объектов кодирования и классы кодирования могут быть параметризованы так же, как типы и значения АСН.1. Это является просто расширением нормального механизма АСН.1.
9.11.2 В первую очередь параметризация используется при определении объекта кодирования, который нуждается в идентификации некоторого определителя для завершения определения кодовой последовательности (см. 9.13.2) (см. в D.1.11.3 пример параметризованного определения ECN).
9.11.3 Другим важным использованием параметризации является определение структуры кодирования, которая будет использована для замены многих разных классов в кодировании (см. также 9.16.5). Например, механизмом, применяемым для обработки факультативных возможностей, часто является непосредственный (обязательный) предшествующий "бит-наличия" для каждого факультативного компонента. Параметризованная структура может быть определена включением конкатенации #BOOLEAN (используемой в качестве определителя наличия), за которой следует факультативный компонент, определенный в качестве фиктивного параметра (который должен выдаваться с компонентом, заменяющим структуру), на наличие которого указывает этот #BOOLEAN. Исходная процедура кодирования #OPTIONAL определяется теперь как замена исходного компонента с его обязательной структурой путем использования исходного факультативного компонента в качестве реального параметра (в D.3.2 приводится более полный пример этого процесса).
9.11.4 Фиктивными параметрами могут быть объекты кодирования, наборы объектов кодирования, классы кодирования, ссылки на поля структур кодирования и значения любых типов АСН.1, используемых в предопределенных классах кодирования, определяемых в разделе 23 и описанных в ИСО/МЭК 8824-4, с учетом изменений из В.10 (приложение В).
9.11.5 Изменение синтаксиса параметризации, указанное в приложении С, требует использования символа "{<" (без пробелов) вместо "{" для начала списка фиктивных или реальных параметров и ">}" для его окончания.
Примечание - Это сделано для облегчения анализа ECN в компьютере и для избежания двусмысленности, когда определенные пользователем классы используются в определениях структур вместо #SEQUENCE, #CHOICE, #REPETITION, #SEQUENCE-OF или #SET-OF.