<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Multi-level modeling with XML</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jens Gulden</string-name>
          <email>jensgulden@acm.org</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Duisburg-Essen Universitatsstr.</institution>
          <addr-line>9, 45141 Essen</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Multi-level modeling o ers substantial advantages when expressing complex domain concepts, and it comes with the promise to allow a ne-grained reuse and extensibility of (domain-speci c) modeling languages on di erent levels of conceptual abstractions. A small number of tooling environments have been proposed that support multilevel modeling. However, in order to be able to unleash the potential of multi-level models as widely accepted means to formally de ne complex concepts, and to realize the promises of reusability and extensibility, a representation format for multi-level models is required, which is easy to understand for modeling experts, and is independent from any speci c tooling environment. This paper proposes design principles of an XML format for representing multi-level models as XML documents. The approach is realized as a lightweight extension to the XML Schema De nition (XSD) standard, using built-in XML language extension mechanisms. The implementation of a multi-level schema validator is provided as a proof of concept.</p>
      </abstract>
      <kwd-group>
        <kwd>Multi-level modeling</kwd>
        <kwd>XML</kwd>
        <kwd>Document format</kwd>
        <kwd>Exchange format</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>XML documents with multiple levels of type
abstractions
Multi-level modeling is an extension to the well-known object-oriented modeling
paradigm. In multi-level modeling, it is possible to de ne a hierarchy of
concepts in which instances of higher-level types can describe types, from which
again instances can be derived, and so forth. In other words, objects that are
instantiated out of classes can also serve as class-descriptions, and can further
be instantiated to objects, which themselves can serve as class-descriptions from
which objects can be instantiated. This supports type hierarchies across
multiple levels of type-instance relationships. For example, when speaking of Vehicle,
Car, Volvo, Volvo MX 7, and Peter's new Volvo MX 7, in this list, Car, Volvo,
and Volvo MX 7 both act as instances of the concept directly mentioned before,
and as types of the concept directly mentioned afterwards.</p>
      <p>
        Especially when it comes to reconstructing domains of discourse that re ect
socio-technical systems with concepts that are described in human
understandable natural language, the multi-level modeling paradigm has been evaluated to
enable a potentially large gain in expressivity, and to allow the reuse of modeling
language concepts on multiple levels of conceptual abstraction [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Some tooling environments support modeling languages with multi-level
capabilities, such as the Flexible Meta-Modeling and Execution
Language (FMMLx) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] from the XModeler [
        <xref ref-type="bibr" rid="ref3 ref7">3,7</xref>
        ] environment, or the Level
agnostic Modeling Language (LML) used in the Melanee workbench [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>However, one assumed reason why the multi-level modeling paradigm has
not yet found wider support in science and practice, is the lack of a
standardized representation of multi-level models, independent from particular modeling
tools, and based on a widespread implementation language. Such a
representation could serve as a means of communication among modeling experts to
mutually exchange and evaluate multi-level models, and to o er collections of
multi-level models in central places. In addition, a standardized representation
could serve as an exchange format for multi-level models, and could foster the
integration of di erent multi-level modeling tools to become part of an
interoperable tooling environment.</p>
      <p>
        One of the most widespread meta-modeling languages is XML, which
provides a standard syntax to represent content, a schema de nition and validation
mechanism provided by the XML Schema De nition (XSD) language [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], and
the query and transformation languages XPath and XSLT [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Given this set of
existing mechanisms, XML appears suitable to de ne a language for representing
multi-level models in a minimal-invasive, backward compatible way based on an
existing standard.
      </p>
      <p>This paper introduces fundamental principles for specifying multi-level
models in XML that make use of existing XML technology in the described way. The
elaboration provides a backward compatible schema validation mechanism to
validate the formal semantics of multi-level models, i. e., to determine whether
all entities in a multi-level model are valid according to the multi-level type de
nitions provided by their ancestor entities. The introduced design principles can
serve as a basis for specifying an implementation-independent representation
format for multi-level models that is readable by human experts, and an exchange
format between di erent tooling environments for multi-level modeling.</p>
      <p>Two central research questions are examined in this paper, which are to be
answered as prerequisites for enhancing XML with multi-level modeling
capabilities. These research questions are:
Q1: How can XML be extended in a way that both instance characteristics and
type speci cation characteristics can be represented by XML entity elements?
Q2: How can the central mechanism of schema validation of XML documents
be adapted to multi-level XML?</p>
      <p>The questions are addressed by extending the existing XML language
speci cation and validation mechanisms to express a core set of multi-level
characteristics, which are supported by selected multi-level modeling approaches.</p>
      <p>
        The key idea of the proposed approach lies in merging XML document
instances with XML schema de nitions, and add a notion of delayed instantiation
semantics, also known as \intrinsic" features [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] or \potency" [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], to the schema
de nition language. Both extensions together allow to express the static
semantics of multi-level models in XML, i. e., they allow to create XML models in
which any modeled entity can simultaneously act as an instance and a type
declaration, and entities of any higher abstraction level can in uence the type
characteristics of lower-level instances. The paper proposes a lean set of
syntactical enhancements to XML for expressing multi-level models, and it comes
with the implementation of a schema validator which converts a multi-level XML
document to an XML Schema De nition (XSD), that is subsequently used to
validate the model document using a regular XSD validator.
      </p>
      <p>The remainder of the paper is structured as follows: Sect. 2 elaborates
modi cations to the original XML declaration mechanisms that allow for the
implementation of multi-level model characteristics in XML, and it introduces the
prototype implementation of a multi-level schema validator. An example that
demonstrates the presented approach is shown in Sect. 3. The nal Sect. 4
concludes the work.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Extending XML with multi-level entities</title>
      <sec id="sec-2-1">
        <title>Language design</title>
        <p>To represent multi-level models in an XML document format, a number of
essential requirements guide the design of the representation language. The central
requirements and design decisions proposed for MXML, which is the prototypical
language developed here, are stated in the following.</p>
        <p>Req. 1 Combine type de nitions and instance entity de nitions
This is the most important requirement to be ful lled for realizing
multilevel modeling with XML. In XML, instances and types can be mixed
by allowing a &lt;xsd:complexType&gt; ... &lt;/xsd:complexType&gt; element to
occur as an optional child element in any XML element of a multi-level
XML document. Like any cleanly de ned XML dialect, XSD is de ned in
its own namespace. Mixing it with content from other namespaces will thus
not in uence the processing of any other document content, which is an
inherent extensibility feature of XML.</p>
        <p>Req. 2 Provide multi-level features: abstraction levels, intrinsic features
Additional information that is required for specifying multi-level models is
provided through the use of attributes with the ml: namespace pre x. They
integrate with existing document content in the same orthogonal manner
as inserted XSD schema fragments. The attributes currently suggested as
multi-level extensions to any XML entity element are:
ml:level (optional) The absolute abstraction level of the entity. If a
metaentity is speci ed using ml:of, this defaults to level-1 of the meta-class.
ml:of (optional) The meta-entity of the entity. If not speci ed, the entity is
considered to instantiate the default XML entity meta-type.
ml:abstract (optional) Flag to indicate whether the entity should be
considered abstract. In this case, any attributes, children elements, or text-content
will be ignored by the schema validator and the entity serves as a class
declaration only.</p>
        <p>The following attributes are suggested as extensions to the &lt;xsd:element&gt;
and &lt;xsd:attribute&gt; elements:
ml:intrinsic (optional) Absolute level on which the declaration should be
instantiated.
ml:potency (optional) Relative level, counting from the current, on which
the declaration should be instantiated.</p>
        <p>The former two attributes are mutually exclusive. If none of these attributes
is provided, the type declaration element, like in conventional XSD, takes
e ect immediately during the next instantiation, i. e., it becomes e ective
for the element it is declared in.</p>
        <p>The ml:intrinsic / ml:potency attributes are representatives for
fundamental multi-level model characteristics that provide delayed instantation.
This set of attributes can be re ned in later versions to also cover range
and leap potency, with a more ne-grained speci cation of min, max, and
depth values.</p>
        <p>Req. 3 Design with minimal invasive changes to existing standards
In order to provide a lean integration into existing XML standards, which
allows an easy adaption and also keeps the implementation more e cient
through reusability, the design should opt for as few modi cations to
the original XML language mechanisms as possible. This requirement is
ful lled in the proposed solution by reusing parts of the XSD language for
specifying type characteristics of multi-level entities. When validating, XSD
fragments from a multi-level document will be transformed to a standard
XSD document, which is then used for validation.</p>
        <p>Req. 4 Implement with recursion to existing schema validation
To implement a schema validator for MXML documents, the approach should
reuse a standard XSD schema validator. This is desirable both in order
to formally prove the backward compatibility of the approach, as well as
for an e cient development of the MXML schema validator. The suggested
approach realizes this by using a two-phase validation process, in which rst
the MXML document is transformed to a temporary XSD schema document
and a plain XML representation, and then an existing XSD validator is
invoked which applies the schema to the plain XML.</p>
        <p>A few additional conventions apply to this proposed language design. If
multiple element instances of the same name contain schema de nitions, the de
nition statements are syntactically merged together in the same way as if they
were all given in only one schema de nition. No element instance has priority
over another in specifying schema de nitions. It may, however, turn out to be
a good notation style to locate an element's schema de nition in only the rst
element by convention, which can be expected to increase the readability and
maintainability of manually edited MXML documents.</p>
        <p>On the top nesting level of the element hierarchy in MXML documents, any
regular XSD fragment may be placed. This allows to include auxiliary
non-multilevel schema declarations, e. g., an enumeration type for de ning the value range
of an attribute used by a multi-level entity.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Syntax proposal</title>
        <p>A syntax for interweaving XML instance content with XSD schema declarations
in MXML is proposed in the following. According to common grammar notation
conventions, parts enclosed in [...] are optional, parts in f...g can occur zero
to any times, and a vertical bar j indicates a choice between either the left- or
the right-hand side. The syntax of any XML element is rede ned as follows:
&lt;element { attrN="..." } [ ml:level="level" ] [ ml:of="parent" ]
[ ml:abstract="[true]" ] &gt;
[ &lt;xsd:complexType&gt;</p>
        <p>... schema declarations ...</p>
        <p>&lt;/xsd:complexType&gt; ]
{ &lt;child {attrN="..."} &gt; ... &lt;/child&gt; }
[ text content ]
&lt;/element&gt;</p>
        <p>This means, any XML element can at rst act as a regular element instance
with the ability to have attributes, nested children elements, and text content.
In addition, any XML element can also contain a schema de nition fragment,
which de nes the formal semantics of instances of the element. The proposed
syntax of XSD schema de nition fragments to be included in any multi-level
XML element is shown in the following:
&lt;xsd:complexType&gt;
&lt;xsd:sequence&gt;
{ &lt;xsd:element { attrN="..." }</p>
        <p>[ ml:intrinsic="level" | ml:potency="levels" ] &gt; ...</p>
        <p>&lt;/xsd:element&gt; }
&lt;/xsd:sequence&gt;
{ &lt;xsd:attribute { attrN="..." }</p>
        <p>[ ml:intrinsic="level" | ml:potency="levels" ] &gt; ...</p>
        <p>&lt;/xsd:attribute&gt; }
&lt;/xsd:complexType&gt;</p>
        <p>The structure-descriptor &lt;xsd:sequence&gt; ... &lt;/xsd:sequence&gt; around
the children element type declarations is included for compatibility with XSD,
but does not carry meaning in the current version of MXML. Any
structuredescriptor will internally be treated equivalent to &lt;xsd:choice minOccurs="0"
maxOccurs="unbounded"&gt; ... &lt;/xsd:choice&gt;, which means that children
elements may occur in any order and for an arbitrary number of times. This is
syntactically compatible to any available structure-descriptor in XSD, i. e.,
children elements can be arranged in any structure, but the desired structure must
be enforced by convention and will not formally be validated.
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>Schema validation</title>
        <p>As a proof of concept, a schema validator that takes into account the multi-level
nature of MXML documents has been developed.∗ According to Req. 4, the
implementation of the schema validator is kept as lean as possible and reuses
existing XSD schema validation functionality.</p>
        <p>The multi-level approach allows documents to mix instance content and
schema de nitions. Existing XML validation approaches, however, assume that
instance content (.xml) and schema de nitions (.xsd) are stored in separate
documents. To trace back multi-level document validation to traditional schema
validation, it is thus required to separate the schema information in a multi-level
document from the instance content. This is done by using two XSLT
transformations that take as input an MXML document, and temporarily generate one
XML instance document and one XML Schema De nition document out of it.
The instance document can then be validated against the schema document
using an existing XSD validator.</p>
        <p>The documents involved in an MXML application and their
interrelationships are shown in Fig. 1. To validate an MXML document doc.xml, the XSLT
transformation mlschema.xsl is applied to it, which generates a temporary XML
Schema De nition document doc-schema.xsd. The mlinstance.xsl
transformation is applied to generate a plain XML instance document without
multilevel speci cation parts. This document is then validated against the generated
schema.</p>
        <p>A fundamental advantage of this validation approach is that it proves the
backward compatibility of MXML by construction, because the relationships
between the original MXML document and the temporary non-MXML instance
and schema documents are formally de ned by the mlschema.xsl and
mlinstance.xsl transformations. One disadvantage, however, is that in case a
validation error occurs, it might be challenging to trace an error message that
was issued for the transformed documents, back to the origin of an error in
the MXML document. A solution to this would be to supplement the schema
validator with another XSLT transformation that checks additional validity
constraints on the MXML document. An example of such a constraint would be to
ensure that an entity on level m must not contain intrinsic attributes with an
instantiation level greater than m. This option is not implemented yet, which is
why the transformation mlvalidate.xsl is displayed with a dashed border in
Fig. 1.
2.4</p>
      </sec>
      <sec id="sec-2-4">
        <title>Related work</title>
        <p>The fundamental idea behind multi-level modeling is based on the combined
notion of entities carrying instance properties and type declarations at the same
time. This kind of entities has been discussed in several works on extensions
∗The schema validator implementation and the example artifacts are available at
https://www.wi-inf.uni-due.de/FGFrank/download/mxml-0.1.0.zip.
doc.xml
schema validator + mlvalidate.xsl
rveasliudlattion
mlinstance.xsl</p>
        <p>
          doc(t-einmsptaonracrey.x)ml
to the object-oriented modeling paradigm, e. g., by [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] which introduces the
concept of \Power Types" as a kind of entities with both objects and class
characteristics, and [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] which proposes the use of \Clabjects".
        </p>
        <p>
          Modeling approaches that incorporate the notion of such entities into a
multilevel modeling language are proposed by, e. g., [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] and [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Corresponding tooling
support that o ers functionality for creating and using multi-level models has
been provided, e. g., by the Melanee modeling environment [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], XModeler
[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], and MetaDepth [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. While in principle comparable to each other, these
approaches each follow proprietary conceptualizations with respect to the
languages they provide and the implementations of the underlying tooling support.
This is exactly the reason why a uni ed document representation and a
toolindependent exchange format is useful to communicate about essential concepts,
and to provide interoperability among tools.
        </p>
        <p>
          An approach which combines the XML Metadata Interchange (XMI)
format with Ecore representations of meta-models is MultEcore [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. This is
an attractive alternative to using plain XML for expressing multi-level
models, because it integrates into the widespread Eclipse Modeling Framework
(EMF). However, MultEcore achieves downward compatibility to Ecore by
storing representations of each abstraction level individually in one Ecore
model. The extension of Ecore to a multi-level architecture is achieved by
organizing multiple single-level models to appear as one multi-level model. This
is contrary to the goal of this work, which aims at re ecting multi-level
characteristics with internal language extensions to XML.
        </p>
        <p>One should be aware that the term \multi-level XML document" is sometimes
used in XML teaching literature with a di erent meaning. Several web pages
about XML basics use the term \multi-level" to refer to XML documents with
a nesting depth of children elements greater than one. That means, whenever
an element that is a direct child of the document root element has at least one
more child element nested inside, the XML document is considered to be
\multilevel". This, of course, has nothing to do with the notion of multiple abstraction
levels for type descriptions as it is addressed in this work.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Example</title>
      <p>The following listing shows an MXML document that speci es ingredients of a
cooking recipe. A general type Ingredient is re ned into the types
VegetarianIngredient and Spice, the latter of which gets further re ned into Salt and
Pepper.
&lt;ingredients xmlns:ml="urn:ml" xmlns:xs="http://www.w3.org/2001/XMLSchema"&gt;
&lt;ingredient ml:abstract="yes"&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence&gt;
&lt;!-- &lt;xs:element ref="name"/&gt; (implicit by language) --&gt;
&lt;xs:element name="price" type="xs:string" ml:potency="-1"/&gt;
&lt;xs:element name="tasteDescription" type="xs:string" ml:potency="2"/&gt;
&lt;/xs:sequence&gt;
&lt;xs:attribute name="healthy" type="xs:boolean" ml:potency="1"/&gt;
&lt;/xs:complexType&gt;
&lt;/ingredient&gt;
&lt;vegetarianIngredient ml:of="ingredient" healthy="true"&gt;
&lt;xs:complexType&gt;
&lt;xs:sequence&gt;</p>
      <p>&lt;xs:attribute name="healthy" type="xs:boolean"/&gt;
&lt;/xs:sequence&gt;
&lt;/xs:complexType&gt;
&lt;/vegetarianIngredient&gt;
&lt;spice ml:of="ingredient"&gt;
&lt;xs:complexType&gt;
&lt;xs:attribute name="appetizing" type="xs:boolean"/&gt;
&lt;xs:attribute name="sudatory" type="xs:boolean"/&gt; &lt;!-- makes you sweat --&gt;
&lt;xs:attribute name="digestive" type="xs:boolean"/&gt;
&lt;/xs:complexType&gt;
&lt;/spice&gt;
&lt;pepper ml:of="spice" color="red"&gt;
&lt;xs:complexType&gt;</p>
      <p>&lt;xs:attribute name="color" type="pepperColor"/&gt;
&lt;/xs:complexType&gt;
&lt;tasteDescription&gt;very tasty!&lt;/tasteDescription&gt;
&lt;/pepper&gt;
&lt;!-- this is a regular level-agnostic auxiliary XML Schema definition --&gt;
&lt;xs:simpleType name="pepperColor" final="restriction"&gt;
&lt;xs:restriction base="xs:string"&gt;
&lt;xs:enumeration value="green" /&gt;
&lt;xs:enumeration value="black" /&gt;
&lt;xs:enumeration value="white" /&gt;
&lt;xs:enumeration value="red" /&gt;
&lt;/xs:restriction&gt;
&lt;/xs:simpleType&gt;
&lt;salt ml:of="spice"&gt;
&lt;xs:complexType&gt;</p>
      <p>&lt;xs:attribute name="avgLifetime" type="xs:double"/&gt;
&lt;/xs:complexType&gt;
&lt;tasteDescription&gt;very tasty!&lt;/tasteDescription&gt;
&lt;/salt&gt;
&lt;pepper ml:of="spice" color="green"/&gt;
&lt;/ingredients&gt;</p>
      <p>This document can be validated using the run-validator.xml script from
the example implementation package, which produces both a temporary .xsd le
and a temporary .xml le. The former is subsequently applied as the validating
schema to the latter, using a standard XSD schema validator. When run with the
example, the output of the run-validator.xml script is empty, which indicates
that no error during validation has been found and the MXML document is
considered to be formally valid.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion and future work</title>
      <p>This work has suggested fundamental design principles to extend XML with
multi-level modeling capabilities. It includes a lean language implementation
that integrates well with existing XML concepts and tools. As the language
is independent from any tooling environment, it can potentially serve as an
exchange format for experts to communicate about multi-level models, build
shared libraries of multi-level models, and achieve interoperability between
different multi-level modeling tools on the technical level.</p>
      <p>Two research questions had initially been asked, the rst about how XML
can be extended in a way that both instance and type characteristics of
multilevel model entities can be represented by XML elements (Q1 ), and the second
on how a schema validation mechanism for multi-level XML documents can
be provided, based on the existing XSD language (Q2 ). Both questions have
been answered by designing an XML dialect which ful lls 4 main requirements:
Req. 1 demanded for the ability to combine type de nitions and instance entity
de nitions in the representation format. This has been achieved by interweaving
regular XML content with XSD fragments. Req. 2 demanded for multi-level type
characteristics, such as delayed instantiation, to be expressable by the language,
which has been achieved by de ning attributes using the ml: namespace pre x
for describing multi-level characteristics of XML entities. These attributes extend
the semantics of &lt;xsd:element&gt; and &lt;xsd:attribute&gt; declarations. This lean
set of proposed language extensions also adheres to Req. 3, which demanded for
applying minimal invasive changes to the existing XML language mechanisms.
The last requirement Req. 4 suggested to reuse existing schema validation
components to implement a multi-level schema validator, which has been realized by
a prototypical schema validator implementation (see Sect. 2.3).</p>
      <p>The presented work is intended to elaborate fundamental design principles for
representing multi-level models with XML. It does not claim to o er a complete
exchange format for tool integration, which would require a set of signi cantly
longer standardization documents. As a consequence, several limitations apply
to the current elaboration of MXML. At rst, the range of supported multi-level
features is limited to a set of concepts provided by selected multi-level modeling
approaches. Extending the range of supported approaches will be subject to
future work. On the implementation level, the next step to improve the schema
validator will be to support the use of the ml:intrinsic attribute to specify
an absolute intrinsic level attached to &lt;xsd:element&gt; and &lt;xsd:attribute&gt;
declarations. Currently, only relative level distances speci ed by ml:potency
are supported.</p>
      <p>
        Behavior-related aspects, e. g., the adaptation of the XPath query language
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] or the Object Constraint Language (OCL) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] to multi-level concepts,
are out of the scope of this article and also subject to future work.
      </p>
      <p>Future work should also cover the extension of MXML to a uni ed
representation of language features from all representative multi-level modeling approaches.
This could be done by assembling meta-models of the respective languages, and
create a uni ed meta-model for MXML that incorporates all individual language
approaches. To exemplify the integration capabilities of the exchange format, a
set of importers and exporters should be provided for existing multi-level
modeling tools, e. g., in the form of model transformations that convert between the
internal representation formats of the tools and MXML.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Colin</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <string-name>
            <given-names>Ralph</given-names>
            <surname>Gerbig</surname>
          </string-name>
          .
          <article-title>Flexible deep modeling with Melanee</article-title>
          . In Stefanie Betz Ulrich Reimer, editor,
          <source>Modellierung</source>
          <year>2016</year>
          ,
          <volume>2</volume>
          .-
          <fpage>4</fpage>
          . Marz
          <year>2016</year>
          , Karlsruhe { Workshopband, volume
          <volume>255</volume>
          , pages
          <fpage>117</fpage>
          {
          <fpage>122</fpage>
          ,
          <string-name>
            <surname>Bonn</surname>
          </string-name>
          ,
          <year>2016</year>
          . Ges. f. Informatik.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Colin</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <article-title>Thomas Kuhne. The essence of multilevel metamodeling</article-title>
          .
          <source>In Martin Gogolla and Cris Kobryn</source>
          , editors,
          <source>UML '01 Proceedings of the 4th International Conference on The Uni ed Modeling Language, Modeling Languages, Concepts</source>
          ,
          <source>and Tools</source>
          , pages
          <volume>19</volume>
          {
          <fpage>33</fpage>
          , London,
          <year>2001</year>
          . Springer UK.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Tony</given-names>
            <surname>Clark</surname>
          </string-name>
          and
          <string-name>
            <given-names>James</given-names>
            <surname>Willans</surname>
          </string-name>
          .
          <article-title>Software language engineering with XMF and XModeler</article-title>
          . In Marjan Mernik, editor,
          <source>Formal and Practical Aspects of DomainSpeci c Languages: Recent Developments</source>
          , pages
          <volume>311</volume>
          {
          <fpage>340</fpage>
          . IGI Global,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Juan de Lara and
          <string-name>
            <given-names>Esther</given-names>
            <surname>Guerra</surname>
          </string-name>
          .
          <article-title>Deep meta-modelling with metadepth</article-title>
          . In Jan Vitek, editor, Objects, Models, Components, Patterns, pages
          <volume>1</volume>
          {
          <fpage>20</fpage>
          , Berlin, Heidelberg,
          <year>2010</year>
          . Springer Berlin Heidelberg.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Ulrich</given-names>
            <surname>Frank</surname>
          </string-name>
          <article-title>. Multi-level modeling { toward a new paradigm of conceptual modeling and information systems design</article-title>
          .
          <source>Business &amp; Information Systems Engineering (BISE)</source>
          ,
          <volume>6</volume>
          (
          <issue>3</issue>
          ),
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>A</article-title>
          .
          <string-name>
            <surname>Gonzalez-Perez</surname>
            and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Henderson-Sellers</surname>
          </string-name>
          .
          <article-title>Metamodelling for software engineering</article-title>
          . John Wiley, Chichester, UK and Hoboken, NJ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Jens</given-names>
            <surname>Gulden</surname>
          </string-name>
          and Ulrich Frank.
          <article-title>MEMOCenterNG { a full-featured modeling environment for organization-modeling and model-driven software development</article-title>
          .
          <source>In Pnina So er and Erik Proper</source>
          , editors,
          <source>Proceedings of the CAiSE Forum</source>
          <year>2010</year>
          Hammamet, Tunisia, June 9-11,
          <year>2010</year>
          , volume
          <volume>592</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <volume>76</volume>
          {
          <fpage>83</fpage>
          .
          <string-name>
            <surname>CEUR</surname>
          </string-name>
          ,
          <year>2010</year>
          . ISSN 1613-0073.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Michael</given-names>
            <surname>Kay</surname>
          </string-name>
          .
          <source>XSLT 2</source>
          .
          <article-title>0 and XPath 2.0 Programmer's Reference</article-title>
          . Wrox Press Ltd.,
          <string-name>
            <surname>Birmingham</surname>
          </string-name>
          , UK, UK,
          <source>4th edition</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. Fernando Mac as, Adrian Rutle, and Volker Stolz.
          <article-title>MultEcore: Combining the best of xed-level and multilevel metamodelling</article-title>
          .
          <source>In MULTI@MoDELS</source>
          , volume
          <volume>1722</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <volume>66</volume>
          {
          <fpage>75</fpage>
          . CEUR-WS.org,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>James</given-names>
            <surname>Odell</surname>
          </string-name>
          .
          <article-title>Power types</article-title>
          .
          <source>Journal of Object Oriented Programming</source>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Eric</surname>
            <given-names>van der Vlist. XML</given-names>
          </string-name>
          <string-name>
            <surname>Schema. O'Reilly</surname>
          </string-name>
          , Cambridge,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Jos</given-names>
            <surname>Warmer</surname>
          </string-name>
          and
          <string-name>
            <given-names>Anneke</given-names>
            <surname>Kleppe</surname>
          </string-name>
          .
          <article-title>The Object Constraint Language</article-title>
          .
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc., Boston, MA, USA, 2nd edition,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>