I have a CHOICE type that is defined like this:

time-SecondFractions CHOICE {
  deci-seconds   INTEGER (0..9),
  centi-seconds  INTEGER (0..99),
  milliseconds   INTEGER (0..999) ) DEFAULT(0)

I have a problem interpreting what the BER standard says about encoding such
a field. On one hand, members having the Default value are not to be
encoded. In a SEQUENCE, the class of the members is context specific and the
tag numbers are used too determine which member is present and which is
absent.

On the other hand, BER says that the encoding of a choice value shall be the
same as the encoding of the value of the chosen type. If the inner members
are not OPTIONAL and cannot have a DEFAULT VALUE everything is fine. But if
they are OPTIONAL or if they can have a DEFAULT VALUE (such as my case,
above described) I am confused.

If my chosen type has exactly the default value, how do I encode the Choice?

Any help would be highly appreciated.

Are you sure about that right parenthesis before the DEFAULT? I suspect you meant to write "}", but even so,


   time-SecondFractions CHOICE {
      deci-seconds   INTEGER (0..9),
      centi-seconds  INTEGER (0..99),
      milliseconds   INTEGER (0..999) } DEFAULT(0)

would not be correct. The default value needs to be a choice and the value taken, , something like this

   time-SecondFractions CHOICE {
      deci-seconds   INTEGER (0..9),
      centi-seconds  INTEGER (0..99),
      milliseconds   INTEGER (0..999) } DEFAULT deci-seconds: 0

When encoding the default value for time-SecondFractions in BER, you have a choice of either encoding it or not. If you decide not to encode it, you would treat it just like an optional value that isn't present.

One more point (already mentioned by Mr. Walkin): you can't have multiple elements in a CHOICE where the tags are the same. You would either have to have an automatic tagging environment or to insert tags. I presume that you you have AUTOMATIC TAGS on your module definition line.


===================================================================== Conrad Sigona Voice Mail : 1-732-302-9669 x400 OSS Nokalva Fax : 1-614-388-4156 [EMAIL PROTECTED] My direct line : 1-315-845-1773 _______________________________________________ ASN1 mailing list [email protected] http://lists.asn1.org/mailman/listinfo/asn1

Reply via email to