属性 isAssociationDotShown 是 Annex B UML Diagram Interchange 中 UmlDiagramWithAssociations (UML 2.5 § B.7.15) 的一个属性,描述为
isAssociationDotShown : 布尔值 [1..1] = false
指示是否应使用点表示法进行关联。
请注意,默认情况下此属性为 false,这意味着图表不应显示关联点。
点符号本身在 UML (UML 2.5 § 11.5.4) 中定义为
关联分类器对关联的所有权可以用一个小的实心圆圈以图形方式表示,为简洁起见,我们将其称为一个点。
到 XMI 的映射实际上只不过是关联成员端的所有权。
来自 UML 规范的示例:
示例 1:两边都有点
InteractionFragment和Interaction之间的关联两边都有一个点,表示两端都属于相反的分类器。
事实上,在 OMG 提供的 xmi 中,我们发现:
<packagedElement xmi:type="uml:Association" xmi:id="A_fragment_enclosingInteraction" name="A_fragment_enclosingInteraction" memberEnd="Interaction-fragment InteractionFragment-enclosingInteraction"/>
没有拥有的目的。两端都由两端的分类器作为 OwnedAttributes 拥有
<ownedAttribute xmi:type="uml:Property" xmi:id="Interaction-fragment" name="fragment" type="InteractionFragment" isOrdered="true" aggregation="composite" subsettedProperty="Namespace-ownedMember" association="A_fragment_enclosingInteraction">
<ownedComment xmi:type="uml:Comment" xmi:id="Interaction-fragment-_ownedComment.0" annotatedElement="Interaction-fragment">
<body>The ordered set of fragments in the Interaction.</body>
</ownedComment>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="Interaction-fragment-_upperValue" value="*"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="Interaction-fragment-_lowerValue"/>
</ownedAttribute>
还有一个:
<ownedAttribute xmi:type="uml:Property" xmi:id="InteractionFragment-enclosingInteraction" name="enclosingInteraction" type="Interaction" subsettedProperty="NamedElement-namespace" association="A_fragment_enclosingInteraction">
<ownedComment xmi:type="uml:Comment" xmi:id="InteractionFragment-enclosingInteraction-_ownedComment.0" annotatedElement="InteractionFragment-enclosingInteraction">
<body>The Interaction enclosing this InteractionFragment.</body>
</ownedComment>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="InteractionFragment-enclosingInteraction-_lowerValue"/>
</ownedAttribute>
示例 2:一侧的点
StateInvariant 和 Constraint 之间的关联仅在 Constraint 末尾有一个点
关联本身在 XMI 中定义为:
<packagedElement xmi:type="uml:Association" xmi:id="A_invariant_stateInvariant" name="A_invariant_stateInvariant" memberEnd="StateInvariant-invariant A_invariant_stateInvariant-stateInvariant">
<ownedEnd xmi:type="uml:Property" xmi:id="A_invariant_stateInvariant-stateInvariant" name="stateInvariant" type="StateInvariant" subsettedProperty="Element-owner" association="A_invariant_stateInvariant">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="A_invariant_stateInvariant-stateInvariant-_lowerValue"/>
</ownedEnd>
</packagedElement>
没有点的那一端归协会所有。
带点的结尾是 StateInvariant 作为ownedAttribute 拥有的。
<ownedAttribute xmi:type="uml:Property" xmi:id="StateInvariant-invariant" name="invariant" type="Constraint" aggregation="composite" subsettedProperty="Element-ownedElement" association="A_invariant_stateInvariant">
<ownedComment xmi:type="uml:Comment" xmi:id="StateInvariant-invariant-_ownedComment.0" annotatedElement="StateInvariant-invariant">
<body>A Constraint that should hold at runtime for this StateInvariant.</body>
</ownedComment>
</ownedAttribute>
导入 EA
不幸的是,EA 中的 xmi 导入函数似乎存在错误,因为它失去了拥有端的概念(以及点)。将其导入 EA (v14.5 BETA) 时,结果是: