16

我需要阅读序列化为 XMI 的 UML 图。是否有任何库可以让我方便地阅读 UML XMI - 方便我的意思是有一些方法来迭代模型中的类/包/方法/属性等。

我试过 EMF,但我找不到任何教程来展示如何导入包含 UML 的 XMI。我还找到了 NSUML/NSMDF,但文档链接已损坏。

4

6 回答 6

4

我不认为你想要的存在。我知道的所有导入 XMI 的工具(包括我的 XMI 转换服务: http: //modeling-languages.com/content/xmi2-tool-exchanging-uml-models-among-case-tools)通过解析整个 XMI 文件和在主存中创建相应的 UML 模型。然后您可以通过查询模型来访问 UML 元素。

要迭代 XMI 模型,您可以轻松地使用 XML 库来选择您感兴趣的 XMI 文件片段。

于 2010-02-25T05:47:20.653 回答
3

也许只是看看Transforming XMI to HTML。这应该可以帮助您开始使用 XSLT 和 XMI。

于 2010-02-20T23:32:08.483 回答
2

这取决于您尝试阅读的 UML 版本。您发现的 NSUML 包仅适用于 UML 1.3。NetBeans 元数据存储库( MDR) 将读取句柄 UML 1.4 和 UML 1.5。它可以用作一个独立的库(这就是 ArgoUML 使用的),因此您不需要 NetBeans。对于 UML 2.x,我认为 Eclipse EMF 和 UML2 库是您唯一的选择。EMF 是一个依赖项,但它确实是您想要的 UML2 东西。与 MDR 和 NetBeans 一样,您不需要 Eclipse。ArgoUML 使用 Eclipse 库来支持其 UML 2.x。

于 2010-10-13T21:43:51.017 回答
1

ArgoUML可以将 XMI 导入其 UML 模型,并为 Java、C++、C#、PHP4 和 PHP5 生成代码。

于 2010-02-20T23:07:25.360 回答
1

为了使用 EMF 读取 XMI/UML,您需要为 UML 查找、生成或编写 ECore 模型。一旦您拥有其中一个,您就可以生成内存中的类来操作 UML 并利用其他 EMF 基础设施。

但更简单的方法可能是使用 Eclipse MDT 项目开发的 UML2 基础结构。(我的猜测是它在引擎盖下使用 EMF,并且在某处有一个用于 UML2 的 ECore 模型。)

于 2010-02-21T02:26:45.203 回答
0

您正在寻找的是JMI(“Java 元数据接口”)的 Java 规范,它实现了用于描述元数据的 MOF 和用于传输元数据的 XMI。

不幸的是,我目前正在寻找自己的 JMI 实现,而 suns JMI 页面似乎有点过时了。netbeans 的开源实现似乎已在版本 6 中被删除。

于 2010-10-07T16:32:30.217 回答