PlantUML:带有文本的嵌套组件可能吗?

fra*_*ans 3 syntax nested plantuml

从PlantUML中的示例中可以看到,您可以在其中包含某些图形对象,例如文本

folder folder1 [
    Here you can have some explanation with
    ====
    --Markdown-- //formatting// ~~elements~~
]
Run Code Online (Sandbox Code Playgroud)

呈现给

在此处输入图片说明

您还可以folder(在其他元素中)通过嵌套其他项来对它们进行分组

folder folder2 {
    folder folder3 [
        text bla bla
    ]
    artifact art2 [
        more text
    ]
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但是目前我看不到两者结合的方法-一个带有一些解释性文字嵌套元素的对象。

PlantUML有可能吗?(怎么样?)

Fre*_*ing 5

我只能假设PlantUML尝试尽可能地像UML。尽管可以在[...]元素上添加长说明(),但几乎可以肯定,它仅适用于某些元素类型(例如,活动元素,用例等),这些元素通常不包含子元素。但是,对于更正式的图表,应添加任何注释或进一步解释概念所需的“文本”作为注释或标注。

我在很多月前就遇到了这个问题,并且确实按照您的尝试去做。我深入研究了图表归档,并找到了一个非常接近您想要实现的示例。

因此,为回答您的问题,将描述性文本和UML元素同时包含在分组元素(例如文件夹)中的解决方案如下:

@startuml
skinparam rectangle<<desc>> {
    backgroundColor Transparent
    borderColor Transparent
    titleFontColor Red
    stereotypeFontColor Transparent
}

folder folder2 {
    folder folder3 [
        text bla bla
    ]
    artifact art2 [
        more text
    ]
    rectangle f2<<desc>> [
        Here you can have some explanation with
        ====
        --Markdown-- //formatting// ~~elements~~
    ]

    folder3 -[hidden]- f2
}
@enduml
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如您将注意到的,连接用于调整文本的位置,可能需要更复杂的整理,具体取决于文本的大小和元素的数量。

从那些早期开始,我就更接近于UML规范。请参阅此答案以获取有关评论的更多详细信息。添加注释不仅更容易,而且PlantUML代码要简单得多。也就是说,以下是使用此方法的上述内容的一种变体。

@startuml
folder folder2 {
    folder folder3 [
        text bla bla
    ]
    artifact art2 [
        more text
    ]
}

note bottom of folder2
    Here you can have some explanation with
    ====
    --Markdown-- //formatting// ~~elements~~
end note
@enduml
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明