在 PlantUML .puml 文件中声明类时出现语法错误

Syntax error when declaring a class in PlantUML .puml file

提问人:Alexander Mills 提问时间:10/6/2023 最后编辑:ChristopheAlexander Mills 更新时间:10/8/2023 访问量:123

问:

我有这个.puml代码:

@startuml

class ClassName {
  // Class members (attributes and methods)
}

participant Object1
participant Object2
participant Object3
participant Object4
participant Object5
participant Object6
control Object7

note left of Object6
  This is a note about the Customer class.
end note

title Sequence Diagram with Decision Blocks

@enduml

我收到此错误:

enter image description here

有人知道为什么我不能在那里声明一个类吗?

UML 序列图 Plantuml PUML

评论


答:

2赞 Christophe 10/7/2023 #1

您的关系图是序列图,而不是类图。在 UML 中,序列图的生命线对应于分类器的实例,而不是类。

此外,在序列图中对类及其所有内部结构的完整细节进行建模并不是普遍接受的 UML 实践。所以 plantuml 不知道如何渲染这样的混合物。因此,它不被 plantuml 语言所接受,它只允许有限数量的参与者类型(例如,实体边界控制,这是流行的非标准刻板印象),请参阅“声明参与者”部分的在线参考

下面如何将对象与类相关联,没有指定类,作为给定类的实例,以及给定类的匿名对象:ObjectZObjectX

participant objectZ
participant "objectX:ClassName"
participant ":ClassName"

enter image description here

引号的问题在于,以后很难用于对交换的消息进行建模,因为您始终需要拼写完整的引号内容:

"objectX:ClassName" -> ":ClassName"

因此,一个实用的技巧是充分利用 plantuml 启用的别名,稍后仅使用较短的对象名称:

participant "objectX:ClassName" as objectX
participant ":ClassName" as ClassName

objectX -> ClassName