You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mermaid类图的关系中引用命名空间?

Mermaid类图:使用命名空间语法时如何区分同名类的继承关系

我原本用以下写法实现了正确的类图:

classDiagram
    class base.A
    class derived1.T
    class derived2.T

    base.A <|-- derived1.T : inherits from
    base.A <|-- derived2.T : inherits from

这个写法能正确渲染出base.A分别作为derived1.T和derived2.T父类的类图。

但我想改用Mermaid官方的namespace语法,于是尝试了以下代码:

classDiagram
namespace base {
    class A
}
namespace derived1 {
    class T
}
namespace derived2 {
    class T
}
    A <|-- T : inherits from
    A <|-- T : inherits from

显然这个写法有问题——因为两个命名空间里都有T类,Mermaid无法区分,渲染出的结果不符合预期。

我试过在关系里写base.A <|-- derived1.T和base.A <|-- derived2.T,但也没得到正确效果。请问在Mermaid类图的关系中,是否可以通过命名空间来区分同名类?


解决方案

在Mermaid类图中,使用命名空间后,必须在关系中用完整的命名空间.类名格式引用类,才能正确区分不同命名空间下的同名类。正确的代码如下:

classDiagram
namespace base {
    class A
}
namespace derived1 {
    class T
}
namespace derived2 {
    class T
}

base.A <|-- derived1.T : inherits from
base.A <|-- derived2.T : inherits from

这样就能正确渲染出base.A分别作为derived1.T和derived2.T父类的类图,和最初的写法效果一致。

需要注意的是,关系定义中的类不能只写类名,必须带上所属的命名空间前缀,否则Mermaid会默认关联到最后定义的同名类,导致关系错误。

内容的提问来源于stack exchange,提问作者jamiet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 04:11:11