我无法找到UML 2.5 specification中陈述LiteralString
类型的位置。
在第7.5.2段中,给出了下图:
在第8.2.2段后面的说明中,我找不到任何type
的{{1}}属性的任何定义。
由于Type的多重性为0..1,我假设Literal*
都没有类型。
我的假设是否正确?
如果我的假设是正确的,那么为Literal*
类型的属性创建slot
并为此String
指定LiteralString
作为默认值是违法的。
答案 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。