This type is defined in term of single type components. Values are still unordered, particular value can appear more than once, but number of occurences is significant.
The type notation is very simple:
Parameters ::= SET OF Parameter
Parameter ::= INTEGER (0..255)
and the value notation similarly:
parm1 Parameters ::= {12, 5, 157}
parm2 Parameters ::= {157, 5, 12}
Note, that parm1 and parm2 are the same sets of parameters. It is even possible to declare an empty sef of parameters:
noParm Parameters ::= {}
You may think now for limitting number of components in a type definition. ASN.1 alows it by standard subtyping using keyword SIZE, but be aware, folowing notation is not correct:
FiveParamSet ::= SET OF Parameter (SIZE (5))
because it declares a set (of any size) consisting of groups of five parameters. To declare just one set of five parameters, it is necessary to use another definition:
FiveParamSet ::= Parameters (SIZE(5))
or an abreviation, if you do not have or do not want to declare Parameters type:
FiveParamSet ::= SET SIZE (5) OF Parameter
Inner subtyping is applicable to this type, but will not be generraly used. There is one syntactical difference - the keyword is WITH COMPONENT - note singular. Just for example, let's derive FiveParamSet from Parameter using inner subtyping:
FiveParamSet ::= SET WITH COMPONENT (SIZE(5)) OF Parameter
As you can see, it is much more complicated than normal definition.