在使用EnterpriseArchitectAPI时,我注意到当您将EA项目导出到XMI时,几种不同类型的元素都会得到一个名为ea_localid
的属性。这意味着您将在XMI中找到一个以ea_localid
作为属性的标记。该属性似乎用于引用连接元素的源和目标(至少对于“转换”是有效的,因为我们正在使用状态机图)
到目前为止,一切顺利。现在,我的预期用途的问题是,每次导入和导出时,这些值似乎都是新分发的。编辑:我不太清楚在这个过程中具体是什么时候。EDIT#2这似乎是在导入时发生的
这意味着在导出项目后,重新导入它,不做任何更改,然后再次导出它,将为生成的XMI文档提供一组不同的ea_localid
值。此外,似乎以前属于一个元素的一些值现在可以用于完全不同的元素
有人知道分配机制吗?或者,更好的办法是模仿它?还是重置所有计数器的方法
就我所见,通常似乎有不同的元素类,在这些类中,下一个元素的新ea_localid
是通过计数+1生成的。第一个值为1,下一个值为2,依此类推
我的目标是进行“往返”(XMI-->;project-->;XMI…),并始终获得相同的ea_localid
值,可能是在导出后编辑XMI文档。如有任何帮助或建议,将不胜感激。干杯
ea_localid
表示元素的elementID
(或者AttributeID
表示属性等)在EA中,每个“东西”都有两个ID。数字标识和GUID
在大多数关系中,数字ID(例如t_object.object_ID)用作键,但这并不稳定
导入XMI文件之类的操作可以重置数字ID。这解释了
ea_localID
发生变化的原因如果要查找稳定的ID,则应使用GUID。即使在导出和导入到其他模型后,此模型也保证保持不变。(只要在导入时不设置标志
Strip GUIDs
)在xmi文件中,您将在attribte
xmi.id
中找到那些稳定的id e、 g此值对应于每个表中的
ea_guid
列因此,经过一些测试后,我发现对于前面提到的往返目标(xmi>;import to EA>;xmi)和始终获得完全相同的文档,最简单的解决方案是
在xmi上运行筛选器,该筛选器只删除包含
ea_localid
、ea_sourceID
(原文如此!)和ea_targetID
值的所有节点在重新导入时,EA将只为它们分配新值。有关“转换”的源和目标以及其他连接元素的信息也与GUID一起存储,因此不会丢失信息
相关问题 更多 >
编程相关推荐