2010-02-20 12 views
13

Necesito leer diagramas UML serializados en XMI. ¿Hay alguna biblioteca que me permita leer convenientemente UML XMI? Convenientemente me refiero a tener algunos métodos para iterar sobre las clases/paquetes/métodos/atributest, etc. en el modelo.¿Cómo leer XMI?

Intenté EMF, pero no puedo encontrar ningún tutorial que muestre cómo importar XMI que contenga UML. También encontré NSUML/NSMDF pero el enlace a la documentación está roto.

Respuesta

4

No creo que exista lo que usted quiere. Todas las herramientas que importan XMI que conozco (incluido el servicio de transformación XMI: http://modeling-languages.com/content/xmi2-tool-exchanging-uml-models-among-case-tools) funcionan al analizar todo el archivo XMI y crear el modelo UML correspondiente en la memoria principal. Luego puede acceder a los elementos UML consultando el modelo.

Para iterar sobre el modelo XMI puede utilizar simplemente las bibliotecas XML para seleccionar las piezas del archivo XMI le interesa.

1

ArgoUML puede importar XMI a su modelo UML y generar código para Java, C++, C#, PHP4 y PHP5.

0

Para leer XMI/UML usando EMF, necesitará encontrar, generar o escribir el modelo ECore para UML. Una vez que tenga uno de esos, puede generar las clases en memoria para manipular el UML y aprovechar la otra infraestructura EMF.

Pero una ruta más simple puede ser utilizar la infraestructura UML2 desarrollada por el Eclipse MDT project. (Mi suposición es que usa EMF bajo el capó y que hay un modelo ECore para UML2 en alguna parte.)

+0

Tiene razón en que el proyecto UML2 está construido sobre EMF. – ChrisH

0

Lo que se busca es la Java specification for JMI (“Java Metadata Interface”), el cual implementa MOF para describir metadatos y XMI para transportar los metadatos.

Desafortunadamente, actualmente estoy buscando implementaciones de JMI y la página de soles JMI parece estar un poco desactualizada. La implementación de código abierto por netbeans parece haberse descartado para la versión 6.

2

Depende de la versión de UML que intente leer. El paquete NSUML que encontraste solo funciona con UML 1.3. El NetBeans MetaData Repository (MDR) leerá manejar UML 1.4 y UML 1.5. Se puede usar como una biblioteca independiente (eso es lo que usa ArgoUML), por lo que no necesita NetBeans. Para UML 2.x, creo que las bibliotecas Eclipse EMF & UML2 son su única opción. EMF es una dependencia, pero es realmente lo que UML2 desea. Al igual que con MDR y NetBeans, no necesita Eclipse. ArgoUML usa las bibliotecas de Eclipse para su compatibilidad con UML 2.x.