XMI (XML Metadata Interchange)

XMI is a standard which defines how to serialise object instances. Although XML is a very good way to store information in a tree structured way, it is not object oriented. XMI extends XML to make it object oriented.

So XMI needs to define
elements and attributes to hold the object instance in a standard way.

Identifying Objects

xmi:id

unique within document - used to specify relationships between objects.

xmi:uuid

globally unique (see DCE specification)

xmi:label

any other information

Attribute Values

Data Values

There are two forms for storing attribute values, we can store it in an attribute or an element.

Reference Values

Again there are two forms for storing reference values.

Using XMI to store UML Models

We can use XMI to store UML models. XMI is defined for storing object instances, however we can create instances of a meta model (possibly based on the Meta Object Facility (MOF) specification from
the Object Management Group (OMG) ) .

The XMI schema also extends the XML schema so that definitions of objects can
be stored. This provives a way to hold a UML
model.

Where I can, I have put links to Amazon for books that are relevant to
the subject, click on the appropriate country flag to get more details
of the book or to buy it from them.

Mastering XMI - I found this book a bit heavy going, it seems to spend a lot of
time talking about the importance of standards, introducing XML, UML and OMG.
However I found it hard to pick up the essence of XMI, why is it important and
how does it work. The book concentrates a lot on IBM programs such as WebSphere,
XML4J and XMI framework (not much on JMI) as you would expect from a book written
by IBMers.

Where I can, I have put links to Amazon for commercial software, not
directly related to this site, but related to the subject being discussed,
click on the appropriate country flag to get more details of the software
or to buy it from them.