Exportar UML a XMI
El formato de intercambio que toda herramienta UML dice hablar, y el relato honesto de qué mitad de tu modelo sobrevive al viaje.
6 min de lecturaXMI 2.5.11 de 3
La respuesta corta
- XMI transporta el modelo - clases, atributos, operaciones, relaciones - y no su imagen.
- La disposición desaparece porque el intercambio de diagramas fue opcional casi toda la vida de XMI, y cada herramienta llenó el hueco con su dialecto.
- Expórtalo cuando lo que hay que mover es el modelo. Recolocar un diagrama es una tarde; reescribir cuatrocientas clases son dos semanas.
- Si quieres una imagen, exporta SVG o PNG. XMI es la opción independiente de fabricante para el modelo, y para nada más.
01Qué es XMI en realidad#
XMI significa XML Metadata Interchange, y la palabra que hace el trabajo es metadatos. Es una regla mecánica para serializar a XML cualquier metamodelo basado en MOF, y UML es uno de esos metamodelos: un archivo XMI es tu modelo expresado como elementos y atributos que siguen la estructura del propio metamodelo de UML. Una clase se convierte en un packagedElement con xmi:type="uml:Class", sus atributos pasan a ser elementos ownedAttribute anidados, y una relación pasa a ser una Association con dos referencias memberEnd.
Esa es toda la idea, y explica tanto la fortaleza como la famosa debilidad. La fortaleza: cualquier herramienta que implemente el metamodelo de UML puede leer esos elementos, porque no son el invento de un proveedor. La debilidad se sigue de inmediato: nada en el metamodelo de UML dice dónde se sitúa una clase en un lienzo. Las coordenadas no forman parte de aquello para lo que se diseñó XMI.
02Qué se transfiere y qué no#
| Elemento | Notación | Qué significa |
|---|---|---|
| Clasificadores | Fiable | Clases, interfaces, componentes, actores, casos de uso: el nombre, el estereotipo y la ubicación en el paquete llegan todos. |
| Atributos y operaciones | Fiable | Incluidos tipos, visibilidad y multiplicidad. La mitad más valiosa del archivo y la que nadie quiere volver a teclear. |
| Relaciones | Fiable | Asociaciones con ambos extremos, generalizaciones, realizaciones y dependencias. |
| Disposición del diagrama | Poco fiable | Posiciones y tamaños viajan en una extensión del proveedor que la herramienta receptora suele ignorar. Cuenta con rehacer la disposición. |
| Notas y restricciones | Mixto | Los comentarios suelen sobrevivir; las restricciones OCL dependen de que ambas herramientas analicen la misma versión de OCL. |
| Datos propios de la herramienta | Perdido | Colores, propiedades personalizadas, enlaces a requisitos, casos de prueba. Nada de eso es UML, así que nada de eso está en el XMI. |
El patrón merece decirse una vez: XMI lleva lo que UML define, y nada más. Cada decepción con el formato viene de esperar que lleve algo que el metamodelo nunca describió. Eso no es tanto un defecto de XMI como la respuesta a una pregunta que la gente no se daba cuenta de estar haciendo.
03Usarlo sin llevarse sorpresas#
Tres hábitos quitan casi todo el dolor. Exporta primero un modelo pequeño y abre el XML en un editor de texto. Diez minutos leyendo el archivo te dicen más sobre lo que emite tu herramienta que cualquier documentación, y es ahí donde descubres que la disposición está en un bloque de extensión cerca del final.
Importa en un proyecto de usar y tirar, nunca encima de uno real. Una importación que encaja parcialmente con un modelo existente es mucho más difícil de deshacer que una que llega a un contenedor vacío que puedes descartar.
Presupuesta la redisposición en vez de confiar en la suerte. Reorganizar un modelo de cien clases en vistas legibles es un día de trabajo, y conviene costearlo en lugar de tratarlo como un fallo cuando ocurre. Si necesitas que las imágenes sobrevivan exactamente, la respuesta no es XMI: es un formato de archivo nativo o una exportación a imagen.
En una línea cada uno
- 01XMI serializa el metamodelo de UML, así que lleva el modelo y no la imagen.
- 02Clasificadores, miembros y relaciones se transfieren de forma fiable entre herramientas conformes.
- 03La disposición viaja en extensiones del proveedor y no suele sobrevivir: presupuesta rehacerla.
- 04Cualquier cosa que no sea UML -colores, campos propios, enlaces a requisitos- no está en el archivo.
- 05Lee un archivo exportado en un editor de texto antes de confiar en el formato.
04Preguntas frecuentes#
¿Para qué sirve XMI?
Para mover un modelo UML entre herramientas que no comparten formato de fichero. Es una serialización XML del metamodelo UML, así que transporta el modelo - clases, atributos, operaciones y relaciones - y no su imagen.
¿Por qué desaparece mi disposición al importar XMI?
Porque el intercambio de diagramas fue una parte opcional del estándar durante casi toda la vida de XMI, y las herramientas llenaron el hueco con extensiones propias. Los elementos llegan; las coordenadas que los colocaban en el lienzo se escribieron en un dialecto que la herramienta receptora no lee.
¿Merece la pena exportar a XMI?
Sí, cuando lo que hay que mover es el modelo. Para eso es la única opción independiente de fabricante, y volver a colocar un diagrama es una tarde mientras que reescribir cuatrocientas clases son dos semanas. Si lo que quieres es una imagen, exporta SVG o PNG.
En esta serie
- 01UML a XMI
- 02Ida y vuelta Sparx .qea
- 03UML a Mermaid
Lecturas relacionadas
Práctica del modelado
Práctica del modelado
Práctica del modelado
Diagramas de estructura