The Eclipse Modeling Framework (EMF)
The EMF (Eclipse Modeling Framework) (Steinberg et al, 2008), http://www.eclipse.org/modeling/emf, provides code generation facilities for building tools and applications based on structured data models. Most of the Eclipse projects that in some way deal with modeling are based on EMF since it simplifies the development of complex software applications with its mechanisms. The model specification (metamodel) can be described in XMI, XML Schema, Unified Modeling Language (UML), Rational Rose, or annotated Java. It is also possible to specify the metamodel programmatically using Xcore , which was implemented in Xtext. Typically, a metamodel is defined in the Ecore format, which is similar to an implementation of a subset of UML class diagrams.
Note
Pay attention to the meta levels in this context—an Ecore
model is a metamodel, since it is a model describing a model. Using the metamodel EMF produces a set of Java classes for the model. If you are not familiar...