UML tools commonly export UML class diagrams in an XML format called XMI. These models can be directly transformed into o:XML programs without the need for complex code-generation processes. An o:XML program that has been created directly from a UML model doesn't actually do anything, but it reflects the UML model in its structure. Processing logic can then be inserted using an XML editor. The editor makes sure that all code is well-formed, and also that the syntax rules of the o:XML schema are followed throughout.
Changes done to an o:XML program can be reflected in the UML diagrams by transforming the program back to XMI format. As many UML tools keep the model content, represented in XMI, separate from formatting information, successive reverse-engineering can be performed to keep the design in line with the code without loosing diagram layout and formatting data. In this scenario, the XMI model is effectively a view of the program, to which layout parameters can be applied.
With o:XML, application deployment is not tied to a specific architecture or platform. An o:XML application can run directly inside an interpreter such as the ObjectBox, or it could be transformed, with a suitable code transformation package, into Java, C++ or another target language. The compiled program, whether o:XML compiled by the ObjectBox or generated Java/C++ compiled by a language-specific compiler, is an independent application that processes and generates XML. The application output can be further transformed for specific presentation or adaptation needs, or directly piped into the next processing step.
|OMG's What Is UML||
Introduction to the Unified Modelling Language
|Transforming XMI to HTML||
Create UML diagrams directly from XMI
ArgoUML is an open-source UML tool implemented in Java, with support for XMI and SVG
|XML Metadata Interchange (XMI)||
XMI v1.2 and 2.0 specifications
|Transforming o:XML source code to/from XMI||
o:XML round-trip engineering