The XML Metadata Interchange ( XMI ) is an Object Management Group (OMG) standard for exchanging metadata information via Extensible Markup Language (XML) .
18-526: It can be used for any metadata whose metamodel can be expressed in Meta-Object Facility (MOF) , a platform-independent model (PIM). The most common use of XMI is as an interchange format for UML models, although it can also be used for serialization of models of other languages (metamodels). In the OMG vision of modeling, data is split into abstract models and concrete models. The abstract models represent
36-499: A request for proposal was issued by OMG for a third variant, SMOF (Semantic MOF). The variant ECore that has been defined in the Eclipse Modeling Framework is more or less aligned on OMG's EMOF. Another related standard is OCL , which describes a formal language that can be used to define model constraints in terms of predicate logic . QVT , which introduces means to query, view and transform MOF-based models,
54-607: A DSL operational semantics and readily obtain an interpreter for it. JMI defines a Java API for manipulating MOF models. OMG's MOF is not to be confused with the Managed Object Format (MOF) defined by the Distributed Management Task Force (DMTF) in section 6 of the Common Information Model (CIM) Infrastructure Specification, version 2.5.0. Abstract syntax In computer science ,
72-481: Is a very important standard, approved in 2008. See Model Transformation Language for further information. MOF is an international standard: MOF can be viewed as a standard to write metamodels , for example in order to model the abstract syntax of Domain Specific Languages . Kermeta is an extension to MOF allowing executable actions to be attached to EMOF meta-models, hence making it possible to also model
90-499: Is almost nonexistent. This means exchanging files between UML modeling tools using XMI is rarely possible. One purpose of XML Metadata Interchange (XMI) is to enable easy interchange of metadata between UML-based modeling tools and MOF-based metadata repositories in distributed heterogeneous environments. XMI is also commonly used as the medium by which models are passed from modeling tools to software generation tools as part of model-driven engineering . Examples of XMI, and lists of
108-511: Is contrasted with concrete syntax , which also includes information about the representation. For example, concrete syntax includes features like parentheses (for grouping) or commas (for lists), which are not included in the abstract syntax, as they are implicit in the structure. Abstract syntaxes are classified as first-order abstract syntax (FOAS), if the structure is abstract but names (identifiers) are still concrete (and thus requires name resolution ), and higher-order abstract syntax , if
126-586: Is designed as a four-layered architecture. It provides a meta-meta model at the top layer, called the M3 layer. This M3-model is the language used by MOF to build metamodels, called M2-models. The most prominent example of a Layer 2 MOF model is the UML metamodel, the model that describes the UML itself. These M2-models describe elements of the M1-layer, and thus M1-models. These would be, for example, models written in UML. The last layer
144-408: Is independent of the source syntax ( concrete syntax ) of the language being compiled (though it will often be very similar). A parse tree is similar to an abstract syntax tree but it will typically also contain features such as parentheses, which are syntactically significant but which are implicit in the structure of the abstract syntax tree. Algebraic data types are particularly well-suited to
162-571: Is strictly in correspondence with a model element of the layer above. MOF only provides a means to define the structure, or abstract syntax of a language or of data. For defining metamodels, MOF plays exactly the role that EBNF plays for defining programming language grammars. MOF is a Domain Specific Language (DSL) used to define metamodels, just as EBNF is a DSL for defining grammars. Similarly to EBNF, MOF could be defined in MOF. In short, MOF uses
180-630: Is the M0-layer or data layer. It is used to describe real-world objects. Beyond the M3-model, MOF describes the means to create and manipulate models and metamodels by defining CORBA interfaces that describe those operations. Because of the similarities between the MOF M3-model and UML structure models, MOF metamodels are usually modeled as UML class diagrams. A conversion from MOF specification models (M3-, M2-, or M1-Layer) to W3C XML and XSD are specified by
198-524: The CORBA architecture and a set of interfaces through which those types can be created and manipulated. MOF may be used for domain-driven software design and object-oriented modelling . MOF was developed to provide a type system for use in the CORBA architecture, a set of schemas by which the structure, meaning and behaviour of objects could be defined, and a set of CORBA interfaces through which these schemas could be created, stored and manipulated. MOF
SECTION 10
#1732848889968216-580: The XMI (ISO/IEC 19503) specification. XMI is an XML-based exchange format for models. From MOF to Javaâ„¢ there is the Java Metadata Interchange (JMI) specification by Java Community Process . It also provides specs to make easier automatic CORBA IDL interfaces generation. MOF is a closed metamodeling architecture; it defines an M3-model, which conforms to itself. MOF allows a strict meta-modeling architecture; every model element on every layer
234-412: The abstract syntax of data is its structure described as a data type (possibly, but not necessarily, an abstract data type ), independent of any particular representation or encoding. This is particularly used in the representation of text in computer languages , which are generally stored in a tree structure as an abstract syntax tree . Abstract syntax, which only consists of the structure of data,
252-406: The 1.x series. The Diagram Definition OMG project is another alternative for metadata interchange, which can also express the layout and graphical representation. XMI is an international standard: Meta-Object Facility The Meta-Object Facility ( MOF ) is an Object Management Group (OMG) standard for model-driven engineering . Its purpose is to provide a type system for entities in
270-480: The XML tags that make up XMI-formatted files, are available in the version 2.5.1 specification document. XMI integrates 4 industry standards: The integration of these 4 standards into XMI allows tool developers of distributed systems to share object models and other metadata. Several versions of XMI have been created: 1.0, 1.1, 1.2, 2.0, 2.1, 2.1.1, 2.4, 2.4.1, 2.4.2. and 2 5.1. The 2.x versions are radically different from
288-503: The names themselves are abstract. To be implemented either for computation or communications, a mapping from the abstract syntax to specific machine representations and encodings must be defined; these may be called the " concrete syntax " (in language implementation) or the "transfer syntax" (in communications). A compiler 's internal representation of a program will typically be specified by an abstract syntax in terms of categories such as "statement", "expression" and "identifier". This
306-415: The notion of MOF::Classes (not to be confused with UML::Classes ), as known from object orientation , to define concepts (model elements) on a metalayer. MOF may be used to define object-oriented metamodels (as UML for example) as well as non object-oriented metamodels (e.g. a Petri net or a Web Service metamodel). As of May 2006, the OMG has defined two compliance points for MOF: In June 2006,
324-501: The semantic information, whereas the concrete models represent visual diagrams. Abstract models are instances of arbitrary MOF-based modeling languages such as UML or SysML . For diagrams, the Diagram Interchange (DI, XMI[DI]) standard is used. There are currently several incompatibilities between different modeling tool vendor implementations of XMI, even between interchange of abstract model data. The usage of Diagram Interchange
#967032