Canonical XMI, ptc/2013-08-28, states that xmi:uuid must be always present (B2, #5) except for values that are datatypes (B2, #7).
What does "values that are datatypes" in B2 #7 mean?
Are auxiliary XML elements like mofext:Tag and stereotype instances considered "values that are datatypes" ?
If not, then according to B2 #5, these auxiliary XML elements must have identification attributes (xmi:id and xmi:uuid).
Historically, the OMG used rather arbitrary conventions for producing the xmi:id of mofext:Tag not a big deal because nobody really refers to them. However, these arbitrary conventions break the repeatability and reproducibility of Canonical XMI!
The Canonical XMI document production rules in B4 are incomplete: they should be augmented to specify the serialization, identification and ordering of auxiliary XML elements.
Consider augmenting the Canonical XMI specification B6 with the following rules:
Generate the xmi:id and xmi:uuid for mofext:Tag by appending "_mofext.Tag" to the xmi:id and xmi:uuid respectively of the referenced element.
Generate the xmi:id and xmi:uuid for stereotype instances by concatenating the xmi:id and xmi:uuid respectively of the stereotype with that of the element on which the stereotype is applied.