[Uml-devel] xmi support

Andrew Sutton ansutton at kent.edu
Fri Sep 27 09:47:07 UTC 2002


all [interested]

there are some problems with the XMI support for saving and loading... i don't 
think its feasible to introduce grouping tags and extensions to the file 
without defining the appropriate extensions for the metamodel 
(XMI.extensions). actually, rather than sit down and figure that one out the 
best solution would be to not include them in the XMI.

after perusing the XMI standard, it looks like it is only used to contain raw 
model information - there's nothing about visualization or anything else 
included. besides, i think the standard recommends that models must be 
validated against the DTD's involved (UML models would validate against 
xmi.dtd and uml.dtd, MOF models against xmi.dtd and mof.dtd). so, exporting 
to a validating tool will fail because of the introductions in the XMI file.

also, importing won't work because the importing code expects particular 
groupings for objects and certain elements to be present for visualization.

resolving these issues is... non-trivial at best :) i think the best approach 
is to follow the one adopted by argoUML (and probably others) in which there 
are several support files with the XMI document all zipped/gzipped into a 
single file. separation could occur on several aspects: XMI, Visualization 
and Settings. The XMI file would contain the raw model database. The Viz file 
would contain all elements related to the layout of diagrams, etc. The 
Settings file would contain settings for the application changed during the 
creation of the model.

even better, i think this comes close to matching the storage system used by 
KOffice... if the UML application were broken down to contain KParts - each 
representing a particular type of view/diagram, then those could be 
explicitly included within other documents.

of course, this is a massive rewrite of the serialization aspect of the 
system. see... non-trivial.

just a though :)

andy




More information about the umbrello-devel mailing list