Architectural Overview

The extension of XMI[UML] to XMI[UML+DI] employs several technologies to create both its metamodel and the instantiated objects of the mentioned model. The technologies involved have been published as standards by the OMG and the W3C and anyone is free to utilize them. The basic technology, serving as foundation for all the others involved in this process, is XML. It consists of fundamental rules (e.g., well-formedness) for how to create documents, describing their content by tagging. This commonly accepted mechanism is supported by many tools all around the world.

XMI[DI] DTD Creation Overview

The following diagram provides an overview of all the technologies that are involved in the creation process of the metamodel and DTD.

The XMI[DI] metamodel is created with a UML modeling tool. With this tool, an MOF-compliant metamodel is created using the UML profile for MOF, describing the UML M2 extension. For conformance to the XMI specification, this tool needs the capability to create an XMI[UML] document. This is a document following the rules defined in XML and an XMI[UML] DTD belonging to it. This step is represented by the XMI document production rules. As mentioned, it produces an XMI-conformant document containing the content of the metamodel created with the help of the UML tool. In order to generate the new DTD for XMI[UML+DI], the new M2 must be expressed in MOF form by translating the XMI[UML] document to an XMI[MOF] document. The rules for the mapping from the profile to MOF are contained in the UML profile for MOF. Another option would be to generate the XMI[MOF] document directly from the CASE tool. Finally the XMI DTD production rules can be applied to the MOF representation of the M2. Using the rules in the XMI Production for XML Schemas specification, an XML schema can also be generated.

Based on this extended XMI[UML+DI] metamodel, it is now possible to include the graphical information of an XMI[UML] model when exchanging it. Furthermore several representations of a model can be created. One option is to create a representation in SVG.

SVG (Scalable Vector Graphics) is a technology geared to describe vectorized graphics in a clear text (XML-based) format and produce a visualization out of this. It was published as a Recommendation by the W3C. In contrast to plain graphics such as bitmaps, SVG enables, just to mention some of the possibilities, graphics to be scaled, rotated or methods invoked on single elements of the technology. It is also capable of handling user interaction, which offers many alternatives to work with such SVG-based graphics.

XSLT (eXtensible Stylesheet Language) is another W3C Recommendation which defines how to create stylesheets (themselves XML documents) for the transformation of an XML document into another (usually also XML) document. In this case the stylesheet is used to transform the XMI[UML+DI] XML document containing the UML model and diagramming information into an SVG XML document containing full graphical rendition information that can be displayed by a browser. Note that XSLT engines to perform stylesheet-driven transformations are commonly available including in open source (most notably Xalan from the Apache project).