16.3.1 Продукцией "AlternativesStructure" является:
AlternativesStructure ::=
AlternativesClass
"{"
NamedFields
"}"
AlternativesClass ::=
DefinedEncodingClass |
AlternativesClassReference
NamedFields ::= NamedField "," +
NamedField ::=
identifier
EncodingStructure
16.3.2 "AlternativesStructure" указывает на наличие при кодировании только одной структуры из возможных "EncodingStructure" в ее "NamedFields". В "DefinedEncodingClass" указывается класс в категории "альтернативы" (см. 16.1.8). Механизм, который определяет, какая именно "EncodingStructure" присутствует при кодировании, указывается объектом кодирования из "AlternativesClass".
16.3.3 "AlternativesStructure" является конструктором кодирования: когда набор объектов кодирования применен к этой структуре согласно 13.2, кодирование в "AlternativesClass" определяет выбор альтернатив, а точка приложения затем переходит к каждой "EncodingStructure" в ее "NamedFields".