如何使用可能在不同级别包含相同名称的嵌套包生成 UML 包图?

How to generate UML package diagram with nested packages which may contain same names in different level?

我想生成一个包含分层包的包图,其中可能包含重复的名称但不在同一级别。例如:

@startuml
package A {
    package B {
        package C
    }
    package A
}
@enduml

我认为,package A.A 可能是可以接受的。但是 plantuml 失败并出现此错误:Thie element (A) is already defined.

我也尝试了以下方法:

@startuml
folder A {
    folder B {
        folder C
    }
    folder A
}
@enduml

然后,plantuml 因同样的错误而失败。

如果在定义中包含非打印字符,则可以绘制名称重名的图表,例如通过将名称放在引号中并包含一个或多个 space 个字符:

@startuml
package A {
    package B {
        package C
    }
    package "A "
    package "A  "
}
@enduml

额外的space不影响图中的布局:

选项之一:

@startuml
package A as pkg0{
    package B as pkg1{
    }
    package A as pkg2{
        package A as pkg3{
        }
    }
    package A as pkg4{
    }
}
@enduml

会给出结果