The EA-model structure follows simple rules. There are packages, elements and diagrams. Elements can be related with connectors. This structure can be seen from EA’s API, lets call is programming metamodel. Stop, not so fast. The programming metamodel shows a list of models (Repository.Models). These models are packages. A package may contain elements and diagrams, etc. But actually it is not possible to create elements or diagrams directly within a model (root-package). A root-package must contain a “View Package”. View packages are packages with a view icon. View packages cannot be moved to any place within the project browser. The must always be nested under a root-package. Other model elements like element, diagram or other packages may be nested only in a view package. The API-model shows how to programmatically access the model. The API itself ensures that the rules from above are respected. The semantic metamodel is a schema how EA works and explicitly represents the implicitly rules. The semantic metamodel shows for example that a “Model” may contain “View Packages”, which are simple packages (A view package is derived from a package) with an additional view icon. From the API’s point of view, the Model itself is also a simple package. However, from a semantic point of view, a model is something different. For instance, it cannot has a stereotype like a simple package. The semantic metamodel also shows that a simple package may contain any number of baselines and that a baseline is actually an XMI document which can be put under version control.