Slide 39 of 41
Notes:
The necessary and sufficient condition to avoid ambiguity when the encoding of an element of the sequence is encountered is described in terms of blocks of elements. Any given sequence may have one or more (or zero) blocks of elements. Each block consists of a series of OPTIONAL or DEFAULT elements together with the following mandatory element (if there is one). (There will be no following mandatory element if the series of OPTIONAL or DEFAULT elements reaches right to the end of the sequence).
Within each such block, all elements are required to have distinct tags.
What frequently happens in practice, however, is that in order to avoid having to think about tagging too much, or perhaps just to keep the specification looking “symmetric”, it is quite common, as a matter of style, to tag (implicitly where possible) every element of a set, sequence or choice, in just the same way that tags are applied when automatic tagging is in operation. In general this does not cost bits on the line, and is a simple thing to do without having to remember when distinct tags are really needed!
But the reader of this tutorial will now know, absolutely and certainly, when tags need to be added and when they don’t - yes?