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

XMI元素标签无法在EA「元素」标签页显示为构造型属性的解决方法

如何让EA导入XMI时将构造型标签显示为「元素」标签页的属性?

问题背景

我们正在开发一款不依赖Enterprise Architect(EA)的UML模型转XMI 2.1工具,已添加EA专属<xmi:Extension>元数据适配EA17导入。但导入后出现以下问题:

  • 构造型匹配已加载的MDG.Technology配置文件,显示正常,但构造型属性未加载
  • 元素标签仅出现在独立的「标签」标签页,而非「元素」标签页的构造型属性区域

相关XMI代码片段:

<xmi:Extension extender="Enterprise Architect" extenderID="6.5">
    <elements>
        <element xmi:idref="{ID1}">
            <properties sType="Package" stereotype="CustomPackage" />
            <tags>
                <tag xmi:id="{ID2}" name="CustomTag" value="SomeValue" modelElement="{ID1}" />

经测试确认:<tag>元素的xmi:id属性是核心问题——无该属性或用UUID等外部标识符时,标签无法识别为构造型属性;使用EAID_前缀的哈希格式ID有效,但随机生成该格式ID无效,需遵循EA特定哈希逻辑。

解决方案

1. 正确的EAID_格式生成逻辑

EA要求<tag>的xmi:id必须为EAID_前缀加基于关联元素ID和标签名的MD5哈希值,具体步骤:

  • 拼接输入字符串:{目标元素的xmi:idref值} + ":" + {tag的name属性值}
  • 对拼接后的字符串计算MD5哈希
  • 取MD5哈希值的前8位小写字符,与EAID_拼接得到最终ID

示例:
假设目标元素xmi:idref为pkg_abc123,标签name为CustomTag:

  1. 输入字符串:pkg_abc123:CustomTag
  2. MD5哈希值(示例):a1b2c3d4e5f6g7h8...
  3. 最终xmi:id:EAID_a1b2c3d4

2. 配套验证要点

  • 确保MDG配置文件中,对应构造型(如CustomPackage)已显式定义该属性(CustomTag必须是构造型的属性,而非普通标签)
  • <tag>的name属性必须与MDG中构造型属性的名称完全一致(大小写敏感)
  • <tag>的modelElement属性必须准确关联到目标元素的xmi:idref值

修改后的XMI示例

<xmi:Extension extender="Enterprise Architect" extenderID="6.5">
    <elements>
        <element xmi:idref="pkg_abc123">
            <properties sType="Package" stereotype="CustomPackage" />
            <tags>
                <tag xmi:id="EAID_a1b2c3d4" name="CustomTag" value="SomeValue" modelElement="pkg_abc123" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:11:14