Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
OML is an Object Constraint Language (OCL)-based procedural language that provides a low-level method for defining model-to-model transformations. OCL provides the “Query” in QVT, and “low-level” refers to the difference between OML and its high-level counterpart, the QVT Relations language. Much as with a Java class file, an OML definition (*.qvto file) has a list of imported models, a main operation, a series of mappings and queries that resemble class methods, and so on. Aside from the need to be familiar with the OCL and some extensions added to produce side effects, OML should be fairly easy for most developers to get started using. Those already familiar with OCL should find it much easier to use. This section discusses the basic structure of an OML file and the language.
I’ve provided an implementation of the OML as a component of the M2M project. Here we look at the features of this project before going through a worked example.