Этот синтаксис недопустим. SEQUENCE
походит на тип структуры с полями, где каждое поле может иметь различный тип. SEQUENCE OF
похоже на массив, где все вложенные типы имеют одинаковый тип. Таким образом, в SEQUENCE OF
вы можете установить ограничение на размер массива. Те же правила применяются к SET
и SET OF
, только неупорядоченным.
Я бы решил вашу проблему следующим образом: создайте CHOICE
всех ваших дополнительных полей (без модификатора OPTIONAL
) и добавьте этот ВЫБОР на ваш основной тип:
MyChoice ::= CHOICE {
someNumber INTEGER,
someString PrintableString
}
MyType ::= SEQUENCE {
theID OBJECT IDENTIFIER,
myChoice < MyChoice
}
В этом случае поле theID
является обязательным и требуется только один из MyChoice
элементов.