15.2.1 Продукцией "NameChanges" является:
NameChanges ::=
NameChange
NameChanges ?
NameChange ::=
OriginalClassName
AS
NewClassName
IN
NameChangeDomain
OriginalClassName ::= SimpleDefinedEncodingClass| BuiltinEncodingClassReference
NewClassName ::= encodingclassreference
15.2.2 Каждая "NameChanges" описывает, что при генерировании явно генерируемой структуры кодирования все появившиеся "OriginalClassName" внутри "NameChangeDomain" в неявно генерируемых структурах кодирования должны переименовываться в класс "NewClassName". "NameChangeDomain" определяется в 15.3; он определяет одну или более неявно генерируемых структур кодирования (или компоненты таких структур) из модуля АСН.1, указанного ссылкой "GlobalModuleReference" в "ExplicitGeneration".
Примечания
1 Это дает возможность применения к некоторым случаям появления класса других кодирований, отличающихся от примененных к другим случаям появления этого класса.
2 Это означает, что "OriginalClassName" может быть только именем, неявно генерируемым из типа АСН.1, то есть именем определенного пользователем типа АСН.1 (перед которым ставится "#") или одним из имен классов, перечисленных в столбце 2 таблицы 2.
15.2.3 Ссылки в "OriginalClassName" на поля неявно генерируемой структуры кодирования, которая соответствует использованию "ExternalTypeReference" в определении типа АСН.1, должны использовать нотацию "SimpleDefinedEncodingClass" с тем же "modulereference", что и "ExternalTypeReference". В другом случае, если "DefinedType" (перед которым имеется "#") не является "BuiltinEncodingClass Reference", то должна использоваться простая "encodingclassreference". Если "typereference" (перед которой имеется "#") является "BuiltinEncodingClassReference", то должна использоваться нотация "SimpleDefinedEncodingClass" с тем же "modulereference", что у модуля АСН.1, который генерирует неявно генерируемую структуру кодирования.
15.2.4 Когда ELM импортирует явно генерируемую структуру кодирования из EDM, компоненты переименований в других EDM не влияют на кодирование этой структуры.
Примечание - Это означает, что все "окрашивание" (см. 9.16.4), необходимое для любого конкретного сообщения, должно выполняться в одном EDM.
15.2.5 "NewClassName" должен определяться в операторе присвоения класса кодирования (см. раздел 16) в следующей форме:
<NewClassName> ::= <OriginalClassName>,
где "<NewClassName>" и "<OriginalClassName>" являются именами нового и исходного классов, появившихся в продукции "NameChanges". Это присвоение должно быть в модуле EDM с компонентом "переименования".
Примечание - "<OriginalClassName>" требуется для того, чтобы сослаться на предопределенный класс кодирования или на внешнюю генерируемую структуру кодирования, созданную компонентом "переименования" в этом модуле. В случае неоднозначности необходимо будет использовать внешнюю ссылку в "<OriginalClassName>".