导入XMI删除序列

时间:2015-05-21 05:16:26

标签: enterprise-architect

我将包层次结构的XMI导入到本地模型,并且已成功导入。

当我将相同的XMI导入共享模型(Oracle DB)时,序列图中的所有序列和消息都将被删除。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

这是一个已知问题。 (搜索"版本控制" +"序列图"在EA论坛中)

在序列图中使用实例而不是分类器将在某种程度上解决该问题。

答案 1 :(得分:1)

模型的XMI表示包含有关导出包中元素及其连接器的信息。然而,在结构上,连接器不存储在EA的数据模型中的包中,因此EA只是将每个连接任何元素的连接器写入XMI文件,无论连接器另一端的元素是否为在范围内。

另一方面,根据定义连接器的两端连接 - 您不能在EA中创建仅连接到一端的元素的连接器。这意味着每个连接器都写入XMI文件,并引用其两个元素。

如果两个元素都在XMI导出的范围内(在同一个包树中),那么一切都很好。但如果只有其中一个,EA无法在导入时重新创建连接器 - XMI文件中只有一个元素。发生这种情况时,EA将忽略有问题的连接器。

这是一个例外,如果XMI文件中缺少的元素恰好在模型中。在这种情况下,EA将重新创建连接器。我想这可能就是你在“本地”模式中看到的。

答案 2 :(得分:1)

使用Enterprise Architect v.13,我设法摆脱了麻烦; 假设你的序列的Lifelines实例分类器设置为你想要在我们的序列中使用的类/组件:

  1. 右键单击要导出的包
  2. 转到Package Baseline并为包
  3. 创建新基准
  4. 显示基线后,从“基线”中选择“导出文件”
  5. 将其另存为XMI文件
  6. 在另一个EAP项目中导入XMI文件。
  7. 我将从基线生成的XMI文件与通过单击“导入/导出”选项生成的XMI进行比较,它们有差异......似乎基线的导出XMI包含模型的完整信息(包括根节点),因此我认为导入过程可能会解析每个链接到不在同一个包中的对象......