Different Types of XMI

The XML Metadata Interchange™ (XMI®) specification was designed to allow interchange of models built with the Unified Modeling Language (UML) between UML tools.

UML XMI Versions

Each version of UML has always had a version of XMI, starting with UML 1.0 that was released in 1997. The latest version of UML as of this writing is UML 2.5.1, released in 2017. So there are XMI versions 1.0, 1.1, 1.2, 2.0, 2.1, 2.1.1, 2.4, 2.4.1, 2.4.2. and 2 5.1.

The XMI 2.x versions are radically different from the 1.x series.

sysML XMI

In addition, the Systems Modeling Language (sysML) also has its own XMI. Therefore, there are a number of sysML XMI versions — starting with sysML 1.0 released in September 2007, and continuing through sysML 1.1, 1.2, 1.3, 1.4, 1.5, and sysML 1.6 (released in December 2019).

The XMI for each version of sysML is provided along with other files for each version of the spec on the OMG website. For example:

The Diagram Interchange Spec

For UML diagrams, Unisys Corporation created a Diagram Interchange specification for UML 1.0 and UML 1.1. The OMG introduced a formal Diagram Interchange (DI) standard starting with UML 2.0 — aka the XMI DI. It has been available with UML but not sysML.

XMI Usage

According to current writing on Wikipedia, “There are currently several incompatibilities between different modeling tool vendor implementations of XMI, even between interchange of abstract model data. The usage of Diagram Interchange is almost nonexistent. This means exchanging files between UML modeling tools using XMI is rarely possible.”

sysML 2.0 — API Replaces XMI

In addition, there has been a significant change with the sysML 2.0 spec, which is now in beta. The sysML 2.0 spec departs from UML as its core foundation, and instead introduces a KERNAL language as its foundation. To this point no XMI spec has been written for sysML 2.0 — it is instead replaced by an Application Programming Interface (API).

XMI Support in System Architect

System Architect has supported UML since its inception. System Architect supported the XMI interchange spec for its UML 1.0 and UML 1.1 support, and users could use the Unisys diagram interchange utility to exchange Class and Use Case diagrams. This utility was sunset back when UML 2.0 became the standard.

UNICOM Systems has introduced a brand new and very precise implementation of UML 2.5.1 and sysML 1.6, starting with System Architect 11.4.8 series in 2021. The original UML support remains, named UML 2.0 Lite.

Alternatives to XMI for Import/Export

Because of the many versions of XMI and diagram interchange formats, holes in the specs themselves, and variances in implementations of different tool vendors — UNICOM Systems has not placed a priority on supporting XMI in System Architect. It is something that has been on the long-term roadmap but superceded by other enhancement requests.

In the meantime, System Architect does provide the following mechanisms for import/export of model information between SA and other modeling tools:

  • CSV import/export — In a data-driven environment, csv provides much of the functionality intended by XMI. System Architect supports generation and import of CSV files for any and all definition types. SA also has an “Excel Spreadsheet Importer macro” available on the Customer Portal that provides a more sophisticated import of Excel files.
  • BPMN Interchange — System Architect supports import and export of BPMN models from/to other tools via the BPMN interchange specification.
  • XML — System Architect supports generation and import of XML to its own DTD — this is used for import and export of models — including exact positioning of symbols on diagrams — between System Architect encyclopedias (as well as other techniques such as Merge/Extract and Enterprise Merge/Extract).
  • VBA API — System Architect has a published, open API and built-in VBA 7.1 — which enables users and business partners to create interchange utilities between System Architect and other tools.
  • REST API — System Architect has a published API for REST services — and supports import and export of model information via REST.

Be the first to comment

Leave a Reply

Your email address will not be published.


*