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

标签 syntax nested plantuml

正如我从 PlantUML 中的示例中看到的,您可以拥有某些带有文本的图形对象,例如

folder folder1 [
    Here you can have some explanation with
    ====
    --Markdown-- //formatting// ~~elements~~
]

这呈现为

enter image description here

您也可以使用 folder (在其他元素中)通过嵌套对其他项目进行分组:
folder folder2 {
    folder folder3 [
        text bla bla
    ]
    artifact art2 [
        more text
    ]
}

enter image description here

但目前我认为无法将两者结合起来 - 一个对象,其中包含一些解释性文本和嵌套元素。

这可以用 PlantUML 实现吗? (如何?)

最佳答案

我只能假设 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

enter image description here

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

从早期开始,我就更接近于 UML 规范。看到这个 answer有关评论的更多详细信息。不仅添加注释更容易,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

enter image description here

关于syntax - PlantUML:带有文本的嵌套组件可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45794732/

相关文章:

java - Eclipse 项目错误

php - Aptana 3 和 PHP 5.4 新的数组格式

用于控制流的 Python 嵌套 Try/Except/Else

plantuml - 序列图部分的重用

uml - 如何在 PlantUML UML 事件图中引用早期的事件

java - 运行 java 时,如何避免需要输入 JAR 文件的完整路径?

java - 为什么java中有的关键字以大写字母开头,有的以小写字母开头?

SQL:将一个表中的所有记录插入到另一表中,而不指定列

nested - Firebase 嵌套查询

mysql - 在字段中添加逗号