Table 9.4.1 states:
2. Nested XMIReferenceElement
3. Nested XMIReferenceAttribute
Normally, serialized properties with isComposite = true are serialized as nested XMIObjectElements.
In the case where the model is split across more than one file then a nested XMIReferenceElement would be used. Exceptionally, even within one file, it may be the case that a containing object has more than one serialized class-typed property with isComposite = true that, contain the same object or include it among their collection of objects. In such an exceptional case, because of MOF contstraints, only one of those properties can have an opposite with a non-empty slot. Objects of the property with the non-empty opposite slot are serialized as nested XMIObjectElements, and the other references to the same object are serialized either as XMIReferenceAttributes or nested XMIReferenceElements.
This rule is very bad for several reasons:
1) The criteria for determining which of the 3 possible options is very difficult to understand
2) Words such as "Exceptionally" convey a sense that there is a distinction that should be seldom relevant in practice. This is definitely not the case. This rule affects all serializations of UML profiles and UML models that contain Structured Activities.
3) Whether a model is serialized in one or multiple files has nothing to do with the intent of this rule. Mentioning this adds an unnecessary layer of complexity to the rule.
4) The criteria for choosing between nested vs. reference/attribute serialization refers to unexplained considerations about MOF:
- no explanation in the XMI spec
- no cross-references to existing explanations in MOF specifications (it is even unclear which MOF specifications, if any, have such explanations)
5) The combination of no illustrative example and of exceptional opacity has contributed to legitimate doubts as to whether there exists any truly conforming implementation of XMI 2.x (incl. 2.5.1) and whether claims of conformance to the XMI 2.x specification can be independently verified by non XMI experts.
a) Reword this rule to clearly explain all of what is necessary to unambiguously and deterministically determine whether a value of a composite property typed by a class must be serialized as a nested element, a nested reference or an attribute reference.
b) Provide examples for all three options