在Enterprise Architect中扩展Stereotype时重定义元类属性的疑问
在Enterprise Architect中扩展Stereotype:属性重定义的问题解答
核心理解确认
你的理解是正确的:Stereotype属性的Redefined Property字段确实用于重定义被扩展元类(或父Stereotype)的属性,作用是用自定义属性替换原有属性的名称、类型等特性,同时保留原属性的语义关联。
操作问题分析与解决方案
你导出的Profile中未体现重定义关系,核心原因是操作流程存在偏差,结合EA的Profile导出机制,具体分析如下:
1. 元类属性修改的误区
如果Metaclass A是标准UML元类(如Class、Package等),不要直接手动添加属性really_weird_attr_name——标准元类的结构是固定的,EA不会认可这类手动修改,自然无法在导出时识别重定义关联。
如果A是你自定义的元类,需确保A已被正确纳入当前Profile项目的元模型层级中,而非孤立添加。
2. 正确的属性重定义步骤
- 在Stereotype Z中创建属性
much_better_attr_name - 在属性编辑窗口的
Redefined Property字段中,选择元类A原生存在的属性(而非手动新增的) - 导出Profile时,在
Specialize > Publish Technology > Publish Diagram as UML Profile的设置面板中,确认勾选包含重定义关联的选项(不同EA版本可能命名为Include Redefinitions或类似)
3. 正确的导出代码示例
正常识别重定义后,导出的XML代码会包含redefines属性,示例如下:
[...] <TaggedValues> <Tag name="much_better_attr_name" type="char" description="" unit="" values="" default="" redefines="A.really_weird_attr_name"/> </TaggedValues> [...]
关于Schema重定义Tablespace的示例
这类场景的核心逻辑是:通过构造型重定义关联元类的原生属性(比如Schema元类自带的tablespace属性),用自定义属性替换其展示名称或约束,EA会在导出时识别这种关联并生成对应的Profile语义。
内容的提问来源于stack exchange,提问作者dmeu
相关产品推荐
相关产品推荐

