The XML Metadata Interchange (XMI) is an Object Management Group (OMG) standard for exchanging metadata information via the eXtensible Markup Language (XML). The most common use of XMI is as an interchange format for UML models. Several versions of XMI have been created: 1.0, 1.1, 1.2, 1.3, 2.0 and 2.1. It is important to note that the 2.x versions are radically different from the 1.x series.
For NIEM developers, XMI is generally used to exchange metadata between UML-based modeling tools in an effort to share models, as well as to convert UML to a standard format that can be used by other tools in the modeling and development process(s). In the IEPD development process, UML class diagrams are recommended for modeling the content of an information exchange (exchange model). The UML model(s) are then mapped to NIEM during the IEPD mapping process. In general, using a UML class diagram, UML classes align with XML types and UML attributes align XML properties or elements.
A standardized interchange format, such as XMI, is intended to support the interchange of model information between heterogeneous tools. However, multiple versions of XMI as well as UML and various levels of support for these versions have also added to the problems associated with model interchange. NIEM developers are confronted with the task of trying to match UML versions with XMI versions to convert their models into a "standard" format for tool interchange of UML exchange models.
The "Map Information Exchange" tool, which is a member of the NIEM IEPD Development Tool Suite [http://niem.gtri.gatech.edu/niemtools/home.iepd], allows a developer to import their exchange model (UML) via XMI to begin the mapping process from exchange data requirements to NIEM. A common issue with the "Map Information Exchange" tool is that it currently only supports the XMI 1.2 representation of a UML 1.4 metamodel. Practically speaking, this means that the only UML modeling tool currently supported by the NIEM mapping tool is ArgoUML at http://argouml.tigris.org. Some organizations have resolved the XMI versioning issue through the development and use of XSLT stylesheets to convert from one XMI version to another. For example, a stylesheet developed to convert from XMI/UML 1.2/1.4 to XMI/UML 2.0/2.0 is a general solution that anyone could use.