2013-05-11 83 views
5

我正在写一个java语言的程序,它将java源代码作为输入,输出是包含源代码的类图的xmi文件。如何为java源代码生成XMI文件?

我已经研究了xmi结构,但是我无法找到解释标签结构和顺序的足够资源。

第一个问题是如何找出标签的顺序和每个标签的定义?例如,“isActive = false”的含义是什么?

其次,是否有任何建议的图书馆或任何可以帮助我完成这个项目的Java语言?

+0

您可以根据需要定义xml结构。 – 2013-05-11 04:29:41

+0

如果你首先通过一些基本的XML教程来了解XML基本知识,比如标签,属性,命名空间,那么会更好...... – 2013-05-11 04:32:42

+0

http://www.vogella.com/articles/JAXB/article.html – 2013-05-11 05:17:32

回答

3

我认为标签顺序在XMI中并不重要。通常,XMI只是定义了如何将MOF映射到XML。所以基本上你可以从Java中构建M2模型(= UML),然后如果我正确理解这一点,将它映射到带有XMI的XML(我认为双重间接是为什么你没有找到用于从UML到XMI的映射的好资源直)。

对于很多人来说,示例可能比由各种OMG标准定义的转换规则链更易于访问。所以我只是在我最喜欢的UML工具中为我感兴趣的导出方面绘制一个最小的UML示例图并查看导出的XMI。然后根据需要添加功能...

PS:您可能希望使用Java反射类(包java.lang.reflect)而不是自己解析Java源来生成XMI(如果您不需要保留方法参数名称)。

+2

使用反射会抛出方法的参数名称。这可能是一个值得担忧的问题 - YMMV。 – 2013-05-11 09:20:20

+0

@Stefan Haustein,我很感谢你的回应,但我并不清楚你的意思。我正在解析Java代码来生成XMI文件。我看到了在Windows上使用StarUML或在Mac上使用ArgoUML创建的例子。我找到类和它们的内容之间的关系并生成UMLClass图。我对Java反射留下了深刻的印象,但是我可以将它用于我的程序来确定任何源的类图。 (程序的输入是任何源代码) – Bernard 2013-05-11 15:35:37

+0

@ A.H。谢谢,修正 – 2013-05-11 20:33:28