8.2 Literals
8.2.1 概要
LiteralSpecification是一个指定字面量值的ValueSpecification。对于UML中的每一个标准的基本类型(PrimitiveTypes),都有一个不同种类的LiteralSpecification,具有相应的文本字面量表示,以及一个代表“值缺失”的“null”字面量。
8.2.2 抽象语法
图8.1 Literals
8.2.3 语义
有6种LiteralSpecifications:
- LiteralNull用于显式地对值缺失进行建模。在multiplicity下限为0的MultiplicityElement上下文下,这指代一个空集(即没有值的集合)。它相当于没有给元素指定值。
- LiteralString指定了一个字符串常量。尽管一个字符串是一个字符序列,字符串的值在UML中被认为是基础的,因为它们的内部结构没有被定义为UML语义的一部分。
- LiteralInteger制定了一个整型常量。
- LiteralBoolean指定了一个布尔型常量。
- LiteralUnlimitedNatural指定了一个UnlimitedNatural基础类型的常量。
- LiteralReal指定了一个实数(Real)型常量。
对标准的UML基础类型的进一步讨论可以参见第21章。
8.2.4 表示法
LiteralSpecifications以文本式进行表示。
- LiteralNull依据所使用的地方而变化。它通常表示为“null”。其它表示法在别的地方介绍。
- LiteralString表示为不带双引号的字符序列。它的值就是该字符序列,不包括引号。所使用的字符集未指定。
- LiteralInteger表示为数字序列,代表一个整数值的十进制数。
- LiteralBoolean根据它的值显示为“true”或“false”。
- LiteralUnlimitedNatural显示为一个字符序列或者是星号(*),其中星号表示无限的(unlimited)。注意“无限的”指示在一些元素值上缺乏一个限度(例如一个multiplicity的上限),而不是一个“无穷大”的值。
- LiteralReal表示为十进制或科学计数法的形式。十进制形式包括一个可选的符号字符(+/-),后面跟着0或多个数字,后面可以是一个点(.),后面根一个或多个数字。科学计数法表示包括十进制的表示,后面跟一个字母“e”或“E”和一个指数(包含可选符号字符后面跟1个或多个数字)。科学计数法所表达的实数等于所给定的指数之前的十进制表示乘以以10为底的指数次幂。这种表示由如下的EBNF规则来指定:
<natural-literal> ::= ('0'..'9')+ <decimal-literal> ::= ['+' | '-' ] <natural-literal> | ['+' | '-' ] [<natural-literal>] '.' <natural-literal> <real-literal> ::= <decimal-literal> [ ('e' | 'E') ['+' | '-' ] <natural-literal> ]