I am confused about the tagging of CHOICE elements for which user-defined
tags are not specified.

It is my understanding that in an environment of implicit tagging, a
user-defined tag for a CHOICE element must be EXPLICIT:

FOO DEFINITIONS IMPLICIT TAGS ::=
BEGIN

Sequence ::= SEQUENCE
{
    utf8String [0] IMPLICIT UTF8String OPTIONAL,
    --  choice must be explicitly tagged.
    choice     [1] EXPLICIT Choice     OPTIONAL
}

Choice ::= CHOICE
{
    printableString PrintableString,
    integer         INTEGER
}

END

and if the EXPLICIT keyword is not specified for the element choice (above),
the element will be "implicitly" (sorry for the choice of word) tagged
EXPLICIT.

What happens if user-defined tags are not specified? In the following
example, is the element choice implicitly tagged:

FOO DEFINITIONS IMPLICIT TAGS ::=
BEGIN

Sequence ::= SEQUENCE
{
    utf8String UTF8String OPTIONAL,
    choice     Choice     OPTIONAL
}

Choice ::= CHOICE
{
    printableString PrintableString,
    integer         INTEGER
}

END

Thanks.

Frank

Reply via email to