流入消息与流出消息
流入消息指流入序列图的消息, 并非由序列图中的参与者发出的;
流出消息指流出序列图的消息, 亦非由序列图中的参与者发出.
在定义 消息箭头 的语法前或后加上 [
或 ]
分别表示注入消息与流出消息.
效果见图 1-20.
图 1-20
图 1-20 代码
@startuml
[-> A: 流入消息
activate A
A -> A: Internal call
activate A
A ->] : 流出消息
A<--] : 流入消息
deactivate A
[<- A: 流出消息
deactivate A
== 可以更多的语法 ==
[-> A
[o-> A
[o->o A
[x-> A
[<- A
[x<- A
Bob ->]
Bob ->o]
Bob o->o]
Bob ->x]
Bob <-]
Bob x<-]
@enduml
构造型与 spot
可以在参与者后面加上 << >>
为参与者指定构造型. 在 << >>
中间可以加上
(X, #COLOR)
指定字符图标 (spot) 与颜色, 其中 ‘X’ 为一个字符. 具体语法为
<<(X, #COLOR)TEXT>>
, TEXT 为构造型名称
效果见图 1-21.
图 1-21
图 1-21 代码, 摘自官方文档
@startuml
participant "Famous Bob" as Bob << Generated >>
participant Alice << (C,#ADD1B2) Testable >>
Bob->Alice: First message
@enduml
对参与者分组
box
与end box
在其间定义的参与者将被分成一组, 显示在同一个矩形内.
box TITLE
可为组取一个组名或标题.
效果见图 1-22.
图 1-22
图 1-22 代码, 摘自官方文档
@startuml
box "Internal Service" #LightBlue
participant Bob
participant Alice
end box
participant Other
Bob -> Alice : hello
Alice -> Other : hello
@enduml
去除参与者底部方框
在序列图中, 参与者在序列图的顶部与底部均有一个相同的方框, 通过 hide footbox
可以去除底部的方框, 效果见图 1-23.
图 1-23
图 1-23 代码
@startuml
hide footbox
title Footer removed
Alice -> Bob: Message 1
Bob --> Alice: Message 2
@enduml
改变文本与边框的填充空间
使用 skinparam 命令, 效果见图 1-24.
图 1-24
图 1-24 代码, 摘自官方文档
@startuml
skinparam ParticipantPadding 20
skinparam BoxPadding 10
box "Foo1"
participant Alice1
participant Alice2
end box
box "Foo2"
participant Bob1
participant Bob2
end box
Alice1 -> Bob1 : hello
Alice1 -> Out : out
@enduml