UML表示法 - 一个或多个可选项

1 uml enterprise-architect

我正在使用Enterprise Architect来创建一个显示对象A的类模型,该对象具有与三个对象B,C和D的单个实例的可选关联,即A ----> B(0..1),A --- - > C(0 ... 1),A -----> D(0..1).

问题是我希望能够说集体A必须至少有一个B或C或D的实例.为了使事情变得棘手,我不能在B,C,D之上创建一个泛化(让我们称之为X )并使用1 ...*链接A到该泛化,因为我从Enterprise Architect中的模型生成XSD.然后XSD表示任何XML作为一个元素必须包含X作为子元素(而不是说B AND/OR C和/或D).

我认为有一些聪明的方法可以加入从A到B,C和D的三个关联,以至于说这些关联中至少有一个必须存在,而不必在B,C和D之上创建一个泛化X.

Uff*_*ffe 6

在UML中,关系主要在两个元素之间,因此很难实现您所追求的目标.您描述的泛化构造是此的常规解决方案.

您还可以添加约束并将其链接到连接器.这将告知人类读者,但EA不会关心.我很确定即使您在OCL(正式约束语言)中编写约束,EA也不会在生成过程中对其进行评估.

在此输入图像描述