【问题标题】:How to read XMI?如何阅读 XMI?
【发布时间】:2011-01-19 05:34:01
【问题描述】:

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

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

【问题讨论】:

    标签: java xml parsing uml xmi


    【解决方案1】:

    这取决于您尝试阅读的 UML 版本。您发现的 NSUML 包仅适用于 UML 1.3。 NetBeans MetaData Repository (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。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

          • UML2 项目建立在 EMF 之上是正确的。
          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-09-08
              • 2012-01-16
              • 2018-06-11
              • 2023-03-26
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多