将LiteralString作为默认值分配给UML 2.5中String类型的插槽是否合法?

时间:2016-02-09 22:11:28

标签: uml

我无法找到UML 2.5 specification中陈述LiteralString类型的位置。

在第7.5.2段中,给出了下图:

enter image description here

在第8.2.2段中,给出了下图: enter image description here

在第8.2.2段后面的说明中,我找不到任何type的{​​{1}}属性的任何定义。

由于Type的多重性为0..1,我假设Literal*都没有类型。

我的假设是否正确?

如果我的假设是正确的,那么为Literal*类型的属性创建slot并为此String指定LiteralString作为默认值是违法的。

1 个答案:

答案 0 :(得分:0)

文档中未指定type这一事实并不意味着type属性为空。

虽然规范中没有直接指定类型,但在8.2.3中你可以找到

  

2 LiteralString指定PrimitiveType的常量值   串。虽然String被指定为一系列字符,   字符串值在UML中被认为是原始的,因此它们是内部的   结构未指定为UML语义的一部分。

为所有文字提供了类似的语义。

允许将LiteralString指定为插槽的默认值。请注意,Literals是ValueSpecifications(每个Literals都是LiteralSpecification,而后者又是ValueSpecification),而defaultValues总是需要ValueSpecification的实例作为其值。有关参数和属性defaultValue规范,请分别参见9.4.2和9.5.2。