Slide 22 of 41
Notes:
ASN.1 allows any type to be tagged to form a new named type, for example:
Lower-Bounds ::= [25] INTEGER
But the new type can be tagged again if desired:
String-Lower-Bounds ::= [26] Lower-Bounds
If both tags are implicit tagging, then we have simply changed the (single) tag on the type from the default tag to first [25} and then to [26].
If, however, both pieces of tagging was explicit tagging (we say later how to specify that, we now have all values of that type with three tags:
- the default tag as the “innermost”
- then tag [25]
- then tag [26 as the outermost
This is all rather artificial (but legal). A more realistic example is on the next slide.
Notice that because we apply tags to types, it is normally the case that all values of a type have the same tag list - we can talk about the tag-list of the type. The exception is a CHOICE type, where some values have one tag list and other values a different one - see the next slide.