We have developed a (relatively) sophisticated mechanism for our MDG that allows us to define Tags as properties of various stereotypes. Mostly this is managed via inheritance through abstract intermediate stereotypes. As a management mechanism, this works very well. But unfortunately, it seems to be built on quicksand...

In order for the tags to be regarded as properties of a stereotype, they need to be defined in the MDG. They can be defined locally to EACH stereotype OR they can be defined globally within the MDG in the <TaggedValueTypes> section. The globally defined Tag can be used in the individual stereotype by either explicitly adding it to the <TaggedValues> section of the stereotype or inherited via the baseStereotypes attribute of the stereotype.
Elsewhere, our fellow user qwerty has noted that if the Tag is an MDG based tag it gets a special GUID - the first 'n' characters of the GUID for a specific tag type are the same for a given <MDG> Thus if the GUID for a specific instance of <MDG>::Fred is "{4D8BF378-485E-442f-BDB7-AADC6AF007FB}" then the first 19 characters are the same for another instance of <MDG>::Fred (for example: {4D8BF378-485E-442f-8918-57E9C85C24E7}). In this way, EA can tell which tags have been created using the MDG and which not.
Such identified Tags which are formally attached to a stereotype appear in the Properties Window. Other Tags, which may be defined locally to the repository (via the Configure | UML Type | Tagged Value Types dialog) end up in the Tags window.
So far so good... So, where's the quicksand?
So, let's say we have stereotype Bill which has a Tag (property) Fred associated with it. If I create a new Bill (either by dragging from the toolbox or directly in the browser via <Context Menu> | Add Element... ) EA will add the item and add the property (tag), Fred, with the default value specified in the MDG definition (or something else if directly overridden in the definition of Bill). Inspecting the t_objectproperties (where the item tags are stored) reveals that EA has added a Fred with GUID prefix "{4D8BF378-485E-442f" AS EXPECTED!
However, if I want to add Fred to another stereotype, the Add Stereotype dialog will list the available stereotypes prefixed by the MDG name (as <MDG>::<Tag name> - example BPMN2.0::documentation). So if I select <MDG>::Fred from the list, I get
<MDG>::Fred (not Fred) in t_objectproperties (AND in the Properties Window - so EA thinks it's a Property) but the GUID Prefix is NOT the same (in fact it varies by instance as though it was a non-MDG Tag!!!).

So is <MDG>::Fred the same as <MDG>::Fred or is it actually <MDG>::Fred? In other words, this is a self-inconsistent Shemozzle! Either I'm talking about the same thing or I'm not!

FIX IT!
To indicate how self-inconsistent the Shemozzle is; if Fred is defined in the MDG as an Enum, the <MDG>::Fred entry in t_objectproperties - which appears in the Properties window as <MDG>::Fred has the Enum dropdown whereas the original MDG Stereotype defined Fred does NOT have the dropdown even though it is defined as an Enum. If I add the <MDG>::Fred tag to a stereotype for which it has NOT been defined as a Property, it appears in the properties Window (not the Tags Window) and DOES have the dropdown.

Reported,
Paolo