XMI processing
--------------

This is just a quick note meant for people wandering why
their XMI files might not be parsed correctly. It should be
noted that the XMI implementations herein are built directly
from the EBNF production rules. This means that I'm not being
very flexible about the ordering of attributes for elements
or the ordering of children elements. The best example of
this is the the MOF 1.4 XMI (v1.2) model published by the OMG.
They defy their own production rules and allow xmi.id's to
appear at the end of the attribute list (EBNF says they're
first after the tag name).

So, any implementation that writes attributes out of order
is not going to be properly parsed by this implementation.
It may be a giant TODO to change support for that stuff.