...
CHOICE
, ENUMERATED
, SEQUENCE
, SET
, UNION
sont extensibles. Sinon, ils ne le sont pas.
L'opérateur ... permet de aussi spécifier que les valeurs des contraintes sont extensibles. Sinon, elles ne le sont pas.
Une nouvelle version du module pourra étendre l'ancienne version en ajoutant des valeurs, des propriétés ou des choix après la marque .... Si une seconde occurrence de la marque ... apparaît, alors les extensions doivent être déclarées avant cette seconde marque.
Quand les options du module sont EXTENSIBILITY IMPLIED
alors les types ENUMERATED
, SEQUENCE
, SET
, UNION
sont automatiquement extensibles.
Il est possible d'indiquer formellement le numéro de la version avec l'opérateur :.
-- Definition d'une sequence avec trois proprietes. Il est extensible a la fin.
MonType1 ::= SEQUENCE
{
MaProprieteA BOOLEAN,
MaProprieteB INTEGER,
MaProprieteC CHARACTER STRING,
...
}
-- Definition d'une sequence avec trois proprietes. Il est extensible au milieu.
MonType1 ::= SEQUENCE
{
MaProprieteA BOOLEAN,
MaProprieteB INTEGER,
...,
...,
MaProprieteC CHARACTER STRING
}
-- Definition d'un type entier comprenant tous les nombres 1,2,3,4,5. Il est extensible.
MonType ::= INTEGER (1|2|3|4|5|...)