//MOF1.4/XMI1.1/Model 1.4/Model.xml

//Object Management Group, Inc.

//

//Copyright 1997-1999 DSTC (Cooperative Research Centre for Enterprise //Distributed Systems //Technology)

//Copyright 1997-1999 Electronic Data Systems

//Copyright 1997-1999 IBM Corporation

//Copyright 1997-1999 International Computers Limited

//Copyright 1997-1999 Objectivity, Inc.

//Copyright 2000-2001 Object Management Group, Inc.

//Copyright 1997-1999 Oracle Corporation

//Copyright 1997-1999 Platinum Technology, Inc.

//Copyright 1997-1999 Rational Software Corporation

//Copyright 1997-1999 System Software Association

//Copyright 1997-1999 Unisys Corporation

//

//The companies listed above have granted to the Object Management Group, Inc.

//(OMG) a nonexclusive, royalty-free, paid up, worldwide license to copy and

//distribute this document and to modify this document and distribute copies of

//the modified version. Each of the copyright holders listed above has agreed

//that no person shall be deemed to have infringed the copyright in the included

//material of any such copyright holder by reason of having used the

//specification set forth herein or having conformed any computer software to

//the specification.

//

//ISSUE REPORTING

//

//All OMG specifications are subject to continuous review and improvement.

//As part of this process we encourage readers to report any ambiguities, //inconsistencies, or inaccuracies they may find by completing the Issue //Reporting Form listed on the main web page http://www.omg.org, under //Documents & Specifications, Report a Bug/Issue.

//

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE XMI SYSTEM "Model.dtd">

<XMI verified="false" xmi.version="1.1" xmlns:Model="omg.org.mof.Model">

  <XMI.header>

    <XMI.documentation>

      <XMI.contact>

      Questions and discussion: mof-rtf@omg.org;

      Raising issues: http://www.omg.org/library/issuerpt.html

      The OMG specification on which this is based:

         http://www.omg.org/cgi-bin/doc?ptc/2001-10-04

      The official/latest version of this file:

         omg.org/models/MOF1.4/XMI1.1/Model1.4/Model.xml

       </XMI.contact>

      <XMI.exporter>

      ModelXMIProducer (switches -E)

      Hand-edited to insert this documentation, fix the DOCTYPE

        and xmlns, and insert cross-links to PrimitiveTypes.xml

      </XMI.exporter>

      <XMI.exporterVersion>

 

      Exporter generated using dMOF 1.1 'mof_1_3_transition'

      (switches -g 1dot4)

      </XMI.exporterVersion>

      <XMI.longDescription>

      The MOF provides a set of modeling elements, including rules for

      their use, with which to construct models.  Formally, the MOF is

      defined in itself: in essence the MOF Model is its own metamodel.

      This file contains the MOF Model package expressed as

        a MOF metamodel.

      This file is non-normative.

      </XMI.longDescription>

      <XMI.shortDescription>

      Definition of the Model package for MOF version 1.4,

      generated according to XMI version 1.1.

      </XMI.shortDescription>

      <XMI.notice>

      The developers have granted to the OMG a nonexclusive,

        royalty-free, paid-up, worldwide license to copy and distribute

      this document and to modify this document and distribute copies

      of the modified version.  For list of developers and full notice

      see OMG document ptc/2001-10-04

      </XMI.notice>

      <XMI.owner>

      Object Management Group, Inc.

      </XMI.owner>

    </XMI.documentation>

    <XMI.model xmi.name="Model" xmi.version="1.4"/>

    <XMI.metamodel xmi.name="Model" xmi.version="1.4"/>

  </XMI.header>

  <XMI.content>

    <Model:Package annotation="" isAbstract="false" isLeaf="false"

      isRoot="false" name="Model" visibility="public_vis" xmi.id="a9">

      <Model:ModelElement.constraints>

      <Model:Constraint xmi.idref="a10"/>

      <Model:Constraint xmi.idref="a11"/>

      <Model:Constraint xmi.idref="a12"/>

      <Model:Constraint xmi.idref="a13"/>

      </Model:ModelElement.constraints>

      <Model:Namespace.contents>

      <Model:Import annotation="" isClustered="false"

        name="PrimitiveTypes" visibility="public_vis" xmi.id="a14">

        <Model:Import.importedNamespace>

          <Model:Namespace xmi.idref="a1"/>

        </Model:Import.importedNamespace>

      </Model:Import>

      <Model:Tag annotation="" name="*tag_1"

        tagId="org.omg.mof.idl_prefix" xmi.id="a15">

        <Model:Tag.values>org.omg.mof</Model:Tag.values>

        <Model:Tag.elements>

          <Model:ModelElement xmi.idref="a9"/>

        </Model:Tag.elements>

      </Model:Tag>

      <Model:Tag annotation="" name="*tag_2"

        tagId="org.omg.mof.idl_version" xmi.id="a16">

        <Model:Tag.values>1.4</Model:Tag.values>

        <Model:Tag.elements>

          <Model:ModelElement xmi.idref="a9"/>

        </Model:Tag.elements>

      </Model:Tag>

      <Model:Tag annotation="" name="*tag_3"

        tagId="javax.jmi.packagePrefix" xmi.id="a17">

        <Model:Tag.values>javax.jmi</Model:Tag.values>

        <Model:Tag.elements>

          <Model:ModelElement xmi.idref="a9"/>

        </Model:Tag.elements>

      </Model:Tag>

      <Model:Tag annotation="" name="*tag_4"

        tagId="org.omg.xmi.namespace" xmi.id="a18">

        <Model:Tag.values>Model</Model:Tag.values>

        <Model:Tag.elements>

          <Model:ModelElement xmi.idref="a9"/>

        </Model:Tag.elements>

      </Model:Tag>

      <Model:Class annotation="" isAbstract="true" isLeaf="false"

        isRoot="false" isSingleton="false" name="ModelElement"

        visibility="public_vis" xmi.id="a19">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a20"/>

          <Model:Constraint xmi.idref="a21"/>

          <Model:Constraint xmi.idref="a22"/>

          <Model:Constraint xmi.idref="a23"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_5"

            tagId="org.omg.mof.idl_version" xmi.id="a24">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a19"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="MustBeContainedUnlessPackage" xmi.id="a20">

            <Model.Constraint.expression xml:space="preserve">context ModelElement

inv:

not self.oclIsTypeOf(Package) implies

  self.container -&gt; size = 1</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a19"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL" xmi.id="a21">

            <Model.ModelElement.name xml:space="preserve">FrozenAttributesCannotBeChanged</Model.ModelElement.name>

            <Model.Constraint.expression xml:space="preserve">context ModelElement

inv:

self.isFrozen() implies

  let myTypes =

    self.oclType() -&gt; allSupertypes() -&gt; includes(self.oclType()) in

  let myAttrs : Set(Attribute) =

    self.RefBaseObject::refMetaObject() -&gt; asOclType(Class) -&gt;

    findElementsByTypeExtended(Attribute) in

  myAttrs -&gt; forAll(a |

    self.RefObject::refValue@pre(a) = self.RefObject::refValue(a))</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a19"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="FrozenElementsCannotBeDeleted" xmi.id="a22">

            <Model.Constraint.expression xml:space="preserve">context ModelElement

post:

(self.isFrozen@pre() and

 self.container@pre -&gt; notEmpty and

 self.container.isFrozen@pre()) implies

(self.container.Object::non_existent() or

 not self.Object::non_existent())</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a19"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL" xmi.id="a23">

            <Model.ModelElement.name xml:space="preserve">FrozenDependenciesCannotBeChanged</Model.ModelElement.name>

            <Model.Constraint.expression xml:space="preserve">context ModelElement

post:

self.isFrozen() implies

  let myClasses = self.oclType() -&gt; allSupertypes() -&gt;

    includes(self.oclType()) in

  let myRefs = Set(Reference) =

    self.RefBaseObject::refMetaObject() -&gt; asOclType(Class) -&gt;

    findElementsByTypeExtended(Reference) in

  let myDepRefs = myRefs -&gt;

    select(r | Set{&quot;

              &quot;

              &quot;

      includes(r.name)) in

  myDepRefs -&gt; forAll(r |

    self.RefObject::refValue@pre(r) = self.RefObject::refValue(r))</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a19"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="name" scope="instance_level"

            visibility="public_vis" xmi.id="a25">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Tag annotation="" name="*tag_6"

            tagId="org.omg.mof.idl_version" xmi.id="a26">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a25"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="false"

            isDerived="true" name="qualifiedName"

            scope="instance_level" visibility="public_vis" xmi.id="a27">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>true</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Tag annotation="" name="*tag_7"

            tagId="org.omg.mof.idl_version" xmi.id="a28">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a27"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="annotation"

            scope="instance_level" visibility="public_vis" xmi.id="a29">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Tag annotation="" name="*tag_8"

            tagId="org.omg.mof.idl_version" xmi.id="a30">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a29"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Reference annotation="" isChangeable="false"

            name="requiredElements" scope="instance_level"

            visibility="public_vis" xmi.id="a31">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a19"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a32"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

          <Model:Constant annotation="" name="ContainerDep"

            value="container" xmi.id="a33">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation="" name="ContentsDep"

            value="contents" xmi.id="a34">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation="" name="SignatureDep"

            value="signature" xmi.id="a35">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation="" name="ConstraintDep"

            value="constraint" xmi.id="a36">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation=""

            name="ConstrainedElementsDep"

            value="constrained elements" xmi.id="a37">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation="" name="SpecializationDep"

            value="specialization" xmi.id="a38">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation="" name="ImportDep"

            value="import" xmi.id="a39">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation="" name="TypeDefinitionDep"

            value="type definition" xmi.id="a40">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation="" name="ReferencedEndsDep"

            value="referenced ends" xmi.id="a41">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation="" name="TaggedElementsDep"

            value="tagged elements" xmi.id="a42">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation="" name="IndirectDep"

            value="indirect" xmi.id="a43">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Constant annotation="" name="AllDep" value="all" xmi.id="a44">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Constant>

          <Model:Operation annotation="" isQuery="false"

            name="findRequiredElements" scope="instance_level"

            visibility="public_vis" xmi.id="a45">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a46">

              <Model:Parameter.multiplicity>

                <XMI.field>0</XMI.field>

                <XMI.field>-1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>true</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a19"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="kinds" xmi.id="a47">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>-1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>true</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="recursive" xmi.id="a48">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Tag annotation="" name="*tag_9"

              tagId="org.omg.mof.idl_version" xmi.id="a49">

              <Model:Tag.values>1.4</Model:Tag.values>

              <Model:Tag.elements>

                <Model:ModelElement xmi.idref="a45"/>

              </Model:Tag.elements>

            </Model:Tag>

            </Model:Namespace.contents>

          </Model:Operation>

          <Model:Operation annotation="" isQuery="false"

            name="isRequiredBecause" scope="instance_level"

            visibility="public_vis" xmi.id="a50">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a51">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="otherElement" xmi.id="a52">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a19"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="out_dir"

              name="reason" xmi.id="a53">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Tag annotation="" name="*tag_10"

              tagId="org.omg.mof.idl_version" xmi.id="a54">

              <Model:Tag.values>1.4</Model:Tag.values>

              <Model:Tag.elements>

                <Model:ModelElement xmi.idref="a50"/>

              </Model:Tag.elements>

            </Model:Tag>

            </Model:Namespace.contents>

          </Model:Operation>

          <Model:Reference annotation="" isChangeable="true"

            name="container" scope="instance_level"

            visibility="public_vis" xmi.id="a55">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a56"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a57"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

          <Model:Reference annotation="" isChangeable="true"

            name="constraints" scope="instance_level"

            visibility="public_vis" xmi.id="a58">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a59"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a60"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

          <Model:Operation annotation="" isQuery="false"

            name="isFrozen" scope="instance_level"

            visibility="public_vis" xmi.id="a61">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a62">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            </Model:Namespace.contents>

          </Model:Operation>

          <Model:Operation annotation="" isQuery="false"

            name="isVisible" scope="instance_level"

            visibility="public_vis" xmi.id="a63">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a64">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="otherElement" xmi.id="a65">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a19"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            </Model:Namespace.contents>

          </Model:Operation>

        </Model:Namespace.contents>

      </Model:Class>

      <Model:EnumerationType annotation="" isAbstract="false"

        isLeaf="true" isRoot="true" name="VisibilityKind"

        visibility="public_vis" xmi.id="a66">

        <Model:EnumerationType.labels>public_vis</Model:EnumerationType.labels>

        <Model:EnumerationType.labels>protected_vis</Model:EnumerationType.labels>

        <Model:EnumerationType.labels>private_vis</Model:EnumerationType.labels>

      </Model:EnumerationType>

      <Model:Class annotation="" isAbstract="true" isLeaf="false"

        isRoot="false" isSingleton="false" name="Namespace"

        visibility="public_vis" xmi.id="a56">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a67"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_11"

            tagId="org.omg.mof.idl_version" xmi.id="a68">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a56"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ContentNamesMustNotCollide" xmi.id="a67">

            <Model.Constraint.expression xml:space="preserve">context Namespace

inv: self.contents.forAll(e1, e2 | e1.name = e2.name implies r1 = r2)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a56"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Exception annotation="" name="NameNotFound"

            scope="instance_level" visibility="public_vis" xmi.id="a69">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="out_dir"

              name="name" xmi.id="a70">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Tag annotation="" name="*tag_12"

              tagId="org.omg.mof.idl_version" xmi.id="a71">

              <Model:Tag.values>1.4</Model:Tag.values>

              <Model:Tag.elements>

                <Model:ModelElement xmi.idref="a69"/>

              </Model:Tag.elements>

            </Model:Tag>

            </Model:Namespace.contents>

          </Model:Exception>

          <Model:Exception annotation="" name="NameNotResolved"

            scope="instance_level" visibility="public_vis" xmi.id="a72">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="out_dir"

              name="explanation" xmi.id="a73">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="out_dir"

              name="restOfName" xmi.id="a74">

              <Model:Parameter.multiplicity>

                <XMI.field>0</XMI.field>

                <XMI.field>-1</XMI.field>

                <XMI.field>true</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Tag annotation="" name="*tag_13"

              tagId="org.omg.mof.idl_version" xmi.id="a75">

              <Model:Tag.values>1.4</Model:Tag.values>

              <Model:Tag.elements>

                <Model:ModelElement xmi.idref="a72"/>

              </Model:Tag.elements>

            </Model:Tag>

            </Model:Namespace.contents>

          </Model:Exception>

          <Model:Reference annotation="" isChangeable="true"

            name="contents" scope="instance_level"

            visibility="public_vis" xmi.id="a76">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>true</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a19"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a77"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

          <Model:Operation annotation="" isQuery="false"

            name="lookupElement" scope="instance_level"

            visibility="public_vis" xmi.id="a78">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a79">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a19"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="name" xmi.id="a80">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Tag annotation="" name="*tag_14"

              tagId="org.omg.mof.idl_version" xmi.id="a81">

              <Model:Tag.values>1.4</Model:Tag.values>

              <Model:Tag.elements>

                <Model:ModelElement xmi.idref="a78"/>

              </Model:Tag.elements>

            </Model:Tag>

            </Model:Namespace.contents>

            <Model:Operation.exceptions>

            <Model:Exception xmi.idref="a69"/>

            </Model:Operation.exceptions>

          </Model:Operation>

          <Model:Operation annotation="" isQuery="false"

            name="resolveQualifiedName" scope="instance_level"

            visibility="public_vis" xmi.id="a82">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a83">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a19"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="qualifiedName" xmi.id="a84">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>-1</XMI.field>

                <XMI.field>true</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Tag annotation="" name="*tag_15"

              tagId="org.omg.mof.idl_version" xmi.id="a85">

              <Model:Tag.values>1.4</Model:Tag.values>

              <Model:Tag.elements>

                <Model:ModelElement xmi.idref="a82"/>

              </Model:Tag.elements>

            </Model:Tag>

            </Model:Namespace.contents>

            <Model:Operation.exceptions>

            <Model:Exception xmi.idref="a72"/>

            </Model:Operation.exceptions>

          </Model:Operation>

          <Model:Operation annotation="" isQuery="false"

            name="findElementsByType" scope="instance_level"

            visibility="public_vis" xmi.id="a86">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a87">

              <Model:Parameter.multiplicity>

                <XMI.field>0</XMI.field>

                <XMI.field>-1</XMI.field>

                <XMI.field>true</XMI.field>

                <XMI.field>true</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a19"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="ofType" xmi.id="a88">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a89"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="includeSubtypes" xmi.id="a90">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            </Model:Namespace.contents>

          </Model:Operation>

          <Model:Operation annotation="" isQuery="false"

            name="nameIsValid" scope="instance_level"

            visibility="public_vis" xmi.id="a91">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a92">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="proposedName" xmi.id="a93">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Tag annotation="" name="*tag_16"

              tagId="org.omg.mof.idl_version" xmi.id="a94">

              <Model:Tag.values>1.4</Model:Tag.values>

              <Model:Tag.elements>

                <Model:ModelElement xmi.idref="a91"/>

              </Model:Tag.elements>

            </Model:Tag>

            </Model:Namespace.contents>

          </Model:Operation>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a19"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="true" isLeaf="false"

        isRoot="false" isSingleton="false"

        name="GeneralizableElement" visibility="public_vis" xmi.id="a95">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a96"/>

          <Model:Constraint xmi.idref="a97"/>

          <Model:Constraint xmi.idref="a98"/>

          <Model:Constraint xmi.idref="a99"/>

          <Model:Constraint xmi.idref="a100"/>

          <Model:Constraint xmi.idref="a101"/>

          <Model:Constraint xmi.idref="a102"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_17"

            tagId="org.omg.mof.idl_version" xmi.id="a103">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a95"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="SupertypeMustNotBeSelf" xmi.id="a96">

            <Model.Constraint.expression xml:space="preserve">context GeneralizableElement

inv: self.allSupertypes() -&gt; forAll(s | s &lt;&gt; self)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a95"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="SupertypeKindMustBeSame" xmi.id="a97">

            <Model.Constraint.expression xml:space="preserve">context GeneralizableElement

inv: self.supertypes -&gt; forAll(s | s.oclType() = self.oclType())</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a95"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL" xmi.id="a98">

            <Model.ModelElement.name xml:space="preserve">ContentsMustNotCollideWithSupertypes</Model.ModelElement.name>

            <Model.Constraint.expression xml:space="preserve">context GeneralizableElement

inv:

let superContents = self.allSupertypes() -&gt;

  collect(s | s.contents) in

self.contents -&gt; forAll(m1 | superContents -&gt;

  forAll(m2 | m1.name = m2.name implies m1 = m2))</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a95"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="DiamondRuleMustBeObeyed" xmi.id="a99">

            <Model.Constraint.expression xml:space="preserve">context GeneralizableElement

inv:

let superNamespaces =

  self.supertypes -&gt; collect(s | s.extendedNamespace) in

superNamespaces -&gt; asSet -&gt; isUnique(s | s.name)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a95"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="NoSupertypesAllowedForRoot" xmi.id="a100">

            <Model.Constraint.expression xml:space="preserve">context GeneralizableElement

inv: self.isRoot implies self.supertypes -&gt; isEmpty</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a95"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="SupertypesMustBeVisible" xmi.id="a101">

            <Model.Constraint.expression xml:space="preserve">context GeneralizableElement

inv: self.supertypes -&gt; forAll(s | self.isVisible(s))</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a95"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="NoSubtypesAllowedForLeaf" xmi.id="a102">

            <Model.Constraint.expression xml:space="preserve">context GeneralizableElement

inv: self.supertypes -&gt; forAll(s | not s.isLeaf)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a95"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isRoot" scope="instance_level"

            visibility="public_vis" xmi.id="a104">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isLeaf" scope="instance_level"

            visibility="public_vis" xmi.id="a105">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isAbstract"

            scope="instance_level" visibility="public_vis" xmi.id="a106">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="visibility"

            scope="instance_level" visibility="public_vis" xmi.id="a107">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a66"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Reference annotation="" isChangeable="true"

            name="supertypes" scope="instance_level"

            visibility="public_vis" xmi.id="a108">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>true</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a95"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a109"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

          <Model:Operation annotation="" isQuery="false"

            name="allSupertypes" scope="instance_level"

            visibility="public_vis" xmi.id="a110">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a111">

              <Model:Parameter.multiplicity>

                <XMI.field>0</XMI.field>

                <XMI.field>-1</XMI.field>

                <XMI.field>true</XMI.field>

                <XMI.field>true</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a95"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            </Model:Namespace.contents>

          </Model:Operation>

          <Model:Operation annotation="" isQuery="false"

            name="lookupElementExtended" scope="instance_level"

            visibility="public_vis" xmi.id="a112">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a113">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a19"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="name" xmi.id="a114">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            </Model:Namespace.contents>

            <Model:Operation.exceptions>

            <Model:Exception xmi.idref="a69"/>

            </Model:Operation.exceptions>

          </Model:Operation>

          <Model:Operation annotation="" isQuery="false"

            name="findElementsByTypeExtended" scope="instance_level"

            visibility="public_vis" xmi.id="a115">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a116">

              <Model:Parameter.multiplicity>

                <XMI.field>0</XMI.field>

                <XMI.field>-1</XMI.field>

                <XMI.field>true</XMI.field>

                <XMI.field>true</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a19"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="ofType" xmi.id="a117">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a89"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            <Model:Parameter annotation="" direction="in_dir"

              name="includeSubtypes" xmi.id="a118">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            </Model:Namespace.contents>

          </Model:Operation>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a56"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="true" isLeaf="false"

        isRoot="false" isSingleton="false" name="TypedElement"

        visibility="public_vis" xmi.id="a119">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a120"/>

          <Model:Constraint xmi.idref="a121"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_18"

            tagId="org.omg.mof.idl_version" xmi.id="a122">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a119"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="AssociationsCannotBeTypes" xmi.id="a120">

            <Model.Constraint.expression xml:space="preserve">context TypedElement

inv: not self.type.oclIsKindOf(Association)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a119"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="TypeMustBeVisible" xmi.id="a121">

            <Model.Constraint.expression xml:space="preserve">context TypedElement

inv: self.isVisible(self.type)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a119"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Reference annotation="" isChangeable="true"

            name="type" scope="instance_level"

            visibility="public_vis" xmi.id="a123">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a124"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a125"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a19"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="true" isLeaf="false"

        isRoot="false" isSingleton="false" name="Classifier"

        visibility="public_vis" xmi.id="a124">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_19"

            tagId="org.omg.mof.idl_version" xmi.id="a126">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a124"/>

            </Model:Tag.elements>

          </Model:Tag>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a95"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Class"

        visibility="public_vis" xmi.id="a89">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a127"/>

          <Model:Constraint xmi.idref="a128"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_20"

            tagId="org.omg.mof.idl_version" xmi.id="a129">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a89"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Tag annotation="" name="*tag_21"

            tagId="javax.jmi.substituteName" xmi.id="a130">

            <Model:Tag.values>MofClass</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a89"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ClassContainmentRules" xmi.id="a127">

            <Model.Constraint.expression xml:space="preserve">context Class

inv:

Set{Class, DataType, Attribute, Reference, Operation,

    Exception, Constant, Constraint, Tag} -&gt;

  includesAll(self.contentTypes())</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a89"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL" xmi.id="a128">

            <Model.ModelElement.name xml:space="preserve">AbstractClassesCannotBeSingleton</Model.ModelElement.name>

            <Model.Constraint.expression xml:space="preserve">context Class

inv: self.isAbstract implies not self.isSingleton</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a89"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isSingleton"

            scope="instance_level" visibility="public_vis" xmi.id="a131">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a124"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Constant annotation="" name="Unbounded" value="-1" xmi.id="a132">

        <Model:TypedElement.type>

          <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Integer"/>

        </Model:TypedElement.type>

      </Model:Constant>

      <Model:StructureType annotation="" isAbstract="false"

        isLeaf="true" isRoot="true" name="MultiplicityType"

        visibility="public_vis" xmi.id="a133">

        <Model:Namespace.contents>

          <Model:StructureField annotation="" name="lower" xmi.id="a134">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Integer"/>

            </Model:TypedElement.type>

          </Model:StructureField>

          <Model:StructureField annotation="" name="upper" xmi.id="a135">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Integer"/>

            </Model:TypedElement.type>

          </Model:StructureField>

          <Model:StructureField annotation="" name="isOrdered" xmi.id="a136">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:StructureField>

          <Model:StructureField annotation="" name="isUnique" xmi.id="a137">

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:StructureField>

        </Model:Namespace.contents>

      </Model:StructureType>

      <Model:Constraint annotation="" evaluationPolicy="deferred"

        language="OCL" xmi.id="a10">

        <Model.ModelElement.name xml:space="preserve">LowerCannotBeNegativeOrUnbounded</Model.ModelElement.name>

        <Model.Constraint.expression xml:space="preserve">context MultiplicityType

inv: self.lower &gt;= 0 and self.lower &lt;&gt; Unbounded</Model.Constraint.expression>

        <Model:Constraint.constrainedElements>

          <Model:ModelElement xmi.idref="a9"/>

        </Model:Constraint.constrainedElements>

      </Model:Constraint>

      <Model:Constraint annotation="" evaluationPolicy="deferred"

        language="OCL" name="LowerCannotExceedUpper" xmi.id="a11">

        <Model.Constraint.expression xml:space="preserve">context MultiplicityType

inv: self.lower &lt;= self.upper or self.upper = Unbounded</Model.Constraint.expression>

        <Model:Constraint.constrainedElements>

          <Model:ModelElement xmi.idref="a9"/>

        </Model:Constraint.constrainedElements>

      </Model:Constraint>

      <Model:Constraint annotation="" evaluationPolicy="deferred"

        language="OCL" name="UpperMustBePositive" xmi.id="a12">

        <Model.Constraint.expression xml:space="preserve">context MultiplicityType

inv: self.upper &gt;= 1 or self.upper = Unbounded</Model.Constraint.expression>

        <Model:Constraint.constrainedElements>

          <Model:ModelElement xmi.idref="a9"/>

        </Model:Constraint.constrainedElements>

      </Model:Constraint>

      <Model:Constraint annotation="" evaluationPolicy="deferred"

        language="OCL" name="MustBeUnorderedNonunique" xmi.id="a13">

        <Model.Constraint.expression xml:space="preserve">context MultiplicityType

inv:

self.upper = 1 implies (not self.isOrdered and not self.isUnique)</Model.Constraint.expression>

        <Model:Constraint.constrainedElements>

          <Model:ModelElement xmi.idref="a9"/>

        </Model:Constraint.constrainedElements>

      </Model:Constraint>

      <Model:Class annotation="" isAbstract="true" isLeaf="false"

        isRoot="false" isSingleton="false" name="DataType"

        visibility="public_vis" xmi.id="a138">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a139"/>

          <Model:Constraint xmi.idref="a140"/>

          <Model:Constraint xmi.idref="a141"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_22"

            tagId="org.omg.mof.idl_version" xmi.id="a142">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a138"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="DataTypeContainmentRules" xmi.id="a139">

            <Model.Constraint.expression xml:space="preserve">context DataType

inv:

if self.oclIsOfType(StructureType)

then

  Set{TypeAlias, Constraint, Tag, StructureField} -&gt;

    includesAll(self.contentTypes())

else

  Set{TypeAlias, Constraint, Tag} -&gt;

    includesAll(self.contentTypes())</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a138"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="DataTypesHaveNoSupertypes" xmi.id="a140">

            <Model.Constraint.expression xml:space="preserve">context DataType

inv: self.supertypes -&gt; isEmpty</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a138"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="DataTypesCannotBeAbstract" xmi.id="a141">

            <Model.Constraint.expression xml:space="preserve">context DataType

inv: not self.isAbstract</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a138"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a124"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="PrimitiveType"

        visibility="public_vis" xmi.id="a143">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_23"

            tagId="org.omg.mof.idl_version" xmi.id="a144">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a143"/>

            </Model:Tag.elements>

          </Model:Tag>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a138"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="EnumerationType"

        visibility="public_vis" xmi.id="a145">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_24"

            tagId="org.omg.mof.idl_version" xmi.id="a146">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a145"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="labels" scope="instance_level"

            visibility="public_vis" xmi.id="a147">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>true</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Attribute>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a138"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="CollectionType"

        visibility="public_vis" xmi.id="a148">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_25"

            tagId="org.omg.mof.idl_version" xmi.id="a149">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a148"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="multiplicity"

            scope="instance_level" visibility="public_vis" xmi.id="a150">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a133"/>

            </Model:TypedElement.type>

          </Model:Attribute>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a138"/>

          <Model:GeneralizableElement xmi.idref="a119"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="StructureType"

        visibility="public_vis" xmi.id="a151">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a152"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_26"

            tagId="org.omg.mof.idl_version" xmi.id="a153">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a151"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="MustHaveFields" xmi.id="a152">

            <Model.Constraint.expression xml:space="preserve">context StructureType

inv: self.contents -&gt; exists(c | c.oclIsOfType(StructureField))</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a151"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a138"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="StructureField"

        visibility="public_vis" xmi.id="a154">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a155"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_27"

            tagId="org.omg.mof.idl_version" xmi.id="a156">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a154"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="StructureFieldContainmentRules" xmi.id="a155">

            <Model.Constraint.expression xml:space="preserve">context StructureField

inv: Set{Constraint, Tag}) -&gt; includesAll(self.contentTypes)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a154"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a119"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="AliasType"

        visibility="public_vis" xmi.id="a157">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_28"

            tagId="org.omg.mof.idl_version" xmi.id="a158">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a157"/>

            </Model:Tag.elements>

          </Model:Tag>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a138"/>

          <Model:GeneralizableElement xmi.idref="a119"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:EnumerationType annotation="" isAbstract="false"

        isLeaf="true" isRoot="true" name="ScopeKind"

        visibility="public_vis" xmi.id="a159">

        <Model:EnumerationType.labels>instance_level</Model:EnumerationType.labels>

        <Model:EnumerationType.labels>classifier_level</Model:EnumerationType.labels>

      </Model:EnumerationType>

      <Model:Class annotation="" isAbstract="true" isLeaf="false"

        isRoot="false" isSingleton="false" name="Feature"

        visibility="public_vis" xmi.id="a160">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_29"

            tagId="org.omg.mof.idl_version" xmi.id="a161">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a160"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="scope" scope="instance_level"

            visibility="public_vis" xmi.id="a162">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a159"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="visibility"

            scope="instance_level" visibility="public_vis" xmi.id="a163">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a66"/>

            </Model:TypedElement.type>

          </Model:Attribute>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a19"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="true" isLeaf="false"

        isRoot="false" isSingleton="false" name="StructuralFeature"

        visibility="public_vis" xmi.id="a164">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_30"

            tagId="org.omg.mof.idl_version" xmi.id="a165">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a164"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="multiplicity"

            scope="instance_level" visibility="public_vis" xmi.id="a166">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a133"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isChangeable"

            scope="instance_level" visibility="public_vis" xmi.id="a167">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a160"/>

          <Model:GeneralizableElement xmi.idref="a119"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Attribute"

        visibility="public_vis" xmi.id="a168">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_31"

            tagId="org.omg.mof.idl_version" xmi.id="a169">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a168"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Tag annotation="" name="*tag_32" xmi.id="a170">

            <Model.Tag.tagId xml:space="preserve">org.omg.mof.idl_substitute_name</Model.Tag.tagId>

            <Model:Tag.values>MofAttribute</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a168"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isDerived"

            scope="instance_level" visibility="public_vis" xmi.id="a171">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a164"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Reference"

        visibility="public_vis" xmi.id="a172">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a173"/>

          <Model:Constraint xmi.idref="a174"/>

          <Model:Constraint xmi.idref="a175"/>

          <Model:Constraint xmi.idref="a176"/>

          <Model:Constraint xmi.idref="a177"/>

          <Model:Constraint xmi.idref="a178"/>

          <Model:Constraint xmi.idref="a179"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_33"

            tagId="org.omg.mof.idl_version" xmi.id="a180">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a172"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL" xmi.id="a173">

            <Model.ModelElement.name xml:space="preserve">ReferenceMultiplicityMustMatchEnd</Model.ModelElement.name>

            <Model.Constraint.expression xml:space="preserve">context Reference

inv: self.multiplicity = self.referencedEnd.multiplicity</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a172"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ReferenceMustBeInstanceScoped" xmi.id="a174">

            <Model.Constraint.expression xml:space="preserve">context Reference

inv: self.scope = #instance_level</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a172"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL" xmi.id="a175">

            <Model.ModelElement.name xml:space="preserve">ChangeableReferenceMustHaveChangeableEnd</Model.ModelElement.name>

            <Model.Constraint.expression xml:space="preserve">context Reference

inv: self.isChangeable = self.referencedEnd.isChangeable</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a172"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ReferenceTypeMustMatchEndType" xmi.id="a176">

            <Model.Constraint.expression xml:space="preserve">context Reference

inv: self.type = self.referencedEnd.type</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a172"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ReferencedEndMustBeNavigable" xmi.id="a177">

            <Model.Constraint.expression xml:space="preserve">context Reference

inv: self.referencedEnd.isNavigable</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a172"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ContainerMustMatchExposedType" xmi.id="a178">

            <Model.Constraint.expression xml:space="preserve">context Reference

inv:

self.container.allSupertypes() -&gt; including(self) -&gt;

  includes(self.referencedEnd.otherEnd.type)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a172"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ReferencedEndMustBeVisible" xmi.id="a179">

            <Model.Constraint.expression xml:space="preserve">context Reference

inv: self.isVisible(self.referencedEnd)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a172"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Reference annotation="" isChangeable="true"

            name="exposedEnd" scope="instance_level"

            visibility="public_vis" xmi.id="a181">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a182"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a183"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

          <Model:Reference annotation="" isChangeable="true"

            name="referencedEnd" scope="instance_level"

            visibility="public_vis" xmi.id="a184">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a182"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a185"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a164"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="true" isLeaf="false"

        isRoot="false" isSingleton="false" name="BehavioralFeature"

        visibility="public_vis" xmi.id="a186">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_34"

            tagId="org.omg.mof.idl_version" xmi.id="a187">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a186"/>

            </Model:Tag.elements>

          </Model:Tag>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a160"/>

          <Model:GeneralizableElement xmi.idref="a56"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Operation"

        visibility="public_vis" xmi.id="a188">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a189"/>

          <Model:Constraint xmi.idref="a190"/>

          <Model:Constraint xmi.idref="a191"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_35"

            tagId="org.omg.mof.idl_version" xmi.id="a192">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a188"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="OperationContainmentRules" xmi.id="a189">

            <Model.Constraint.expression xml:space="preserve">context Operation

inv:

Set{Parameter, Constraint, Tag} -&gt; includesAll(self.contentTypes())</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a188"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="OperationsHaveAtMostOneReturn" xmi.id="a190">

            <Model.Constraint.expression xml:space="preserve">context Operation

inv:

self.contents -&gt;

  select(c | c.oclIsTypeOf(Parameter)) -&gt;

    select(p : Parameter | p.direction = #return_dir) -&gt; size &lt; 2</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a188"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL" xmi.id="a191">

            <Model.ModelElement.name xml:space="preserve">OperationExceptionsMustBeVisible</Model.ModelElement.name>

            <Model.Constraint.expression xml:space="preserve">context Operation

inv: self.exceptions -&gt; forAll(e | self.isVisible(e))</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a188"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isQuery" scope="instance_level"

            visibility="public_vis" xmi.id="a193">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Reference annotation="" isChangeable="true"

            name="exceptions" scope="instance_level"

            visibility="public_vis" xmi.id="a194">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>true</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a195"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a196"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a186"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Exception"

        visibility="public_vis" xmi.id="a195">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a197"/>

          <Model:Constraint xmi.idref="a198"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_36"

            tagId="org.omg.mof.idl_version" xmi.id="a199">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a195"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Tag annotation="" name="*tag_37" xmi.id="a200">

            <Model.Tag.tagId xml:space="preserve">org.omg.mof.idl_substitute_name</Model.Tag.tagId>

            <Model:Tag.values>MofException</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a195"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Tag annotation="" name="*tag_38"

            tagId="javax.jmi.substituteName" xmi.id="a201">

            <Model:Tag.values>MofException</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a195"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ExceptionContainmentRules" xmi.id="a197">

            <Model.Constraint.expression xml:space="preserve">context Exception

inv: Set{Parameter, Tag}) -&gt; includesAll(self.contentTypes())</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a195"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL" xmi.id="a198">

            <Model.ModelElement.name xml:space="preserve">ExceptionsHaveOnlyOutParameters</Model.ModelElement.name>

            <Model.Constraint.expression xml:space="preserve">context Exception

inv:

self.contents -&gt;

  select(c | c.oclIsTypeOf(Parameter)) -&gt;

    forAll(p : Parameter | p.direction = #out_dir)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a195"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a186"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Association"

        visibility="public_vis" xmi.id="a202">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a203"/>

          <Model:Constraint xmi.idref="a204"/>

          <Model:Constraint xmi.idref="a205"/>

          <Model:Constraint xmi.idref="a206"/>

          <Model:Constraint xmi.idref="a207"/>

          <Model:Constraint xmi.idref="a208"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_39"

            tagId="org.omg.mof.idl_version" xmi.id="a209">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a202"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="AssociationContainmentRules" xmi.id="a203">

            <Model.Constraint.expression xml:space="preserve">context Association

inv:

Set{AssociationEnd, Constraint, Tag} -&gt;

  includesAll(self.contentTypes())</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a202"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="AssociationsHaveNoSupertypes" xmi.id="a204">

            <Model.Constraint.expression xml:space="preserve">context Association

inv: self.supertypes -&gt; isEmpty</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a202"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="AssociationMustBeRootAndLeaf" xmi.id="a205">

            <Model.Constraint.expression xml:space="preserve">context Association

inv: self.isRoot and self.isLeaf</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a202"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="AssociationsCannotBeAbstract" xmi.id="a206">

            <Model.Constraint.expression xml:space="preserve">context Association

inv: not self.isAbstract</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a202"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="AssociationsMustBePublic" xmi.id="a207">

            <Model.Constraint.expression xml:space="preserve">context Association

inv: self.visibility = #public_vis</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a202"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="AssociationsMustBeBinary" xmi.id="a208">

            <Model.Constraint.expression xml:space="preserve">context Association

inv: self.contents -&gt;

select(c | c.oclIsTypeOf(AssociationEnd)) -&gt; size = 2</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a202"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isDerived"

            scope="instance_level" visibility="public_vis" xmi.id="a210">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a124"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:EnumerationType annotation="" isAbstract="false"

        isLeaf="true" isRoot="true" name="AggregationKind"

        visibility="public_vis" xmi.id="a211">

        <Model:EnumerationType.labels>none</Model:EnumerationType.labels>

        <Model:EnumerationType.labels>shared</Model:EnumerationType.labels>

        <Model:EnumerationType.labels>composite</Model:EnumerationType.labels>

      </Model:EnumerationType>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="AssociationEnd"

        visibility="public_vis" xmi.id="a182">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a212"/>

          <Model:Constraint xmi.idref="a213"/>

          <Model:Constraint xmi.idref="a214"/>

          <Model:Constraint xmi.idref="a215"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_40"

            tagId="org.omg.mof.idl_version" xmi.id="a216">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a182"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="EndTypeMustBeClass" xmi.id="a212">

            <Model.Constraint.expression xml:space="preserve">context AssociationEnd

inv: self.type.oclIsTypeOf(Class)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a182"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="EndsMustBeUnique" xmi.id="a213">

            <Model.Constraint.expression xml:space="preserve">context AssociationEnd

inv:

(self.multiplicity.upper &gt; 1 or

 self.multiplicity.upper = UNBOUNDED) implies

  self.multiplicity.isUnique</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a182"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="CannotHaveTwoOrderedEnds" xmi.id="a214">

            <Model.Constraint.expression xml:space="preserve">context AssociationEnd

inv:

self.multiplicity.isOrdered implies

  not self.otherEnd.multiplicity.isOrdered</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a182"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="CannotHaveTwoAggregateEnds" xmi.id="a215">

            <Model.Constraint.expression xml:space="preserve">context AssociationEnd

inv:

self.aggregation &lt;&gt; #none implies self.otherEnd = #none</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a182"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isNavigable"

            scope="instance_level" visibility="public_vis" xmi.id="a217">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="aggregation"

            scope="instance_level" visibility="public_vis" xmi.id="a218">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a211"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="multiplicity"

            scope="instance_level" visibility="public_vis" xmi.id="a219">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a133"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isChangeable"

            scope="instance_level" visibility="public_vis" xmi.id="a220">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Operation annotation="" isQuery="false"

            name="otherEnd" scope="instance_level"

            visibility="public_vis" xmi.id="a221">

            <Model:Namespace.contents>

            <Model:Parameter annotation="" direction="return_dir"

              name="**result**" xmi.id="a222">

              <Model:Parameter.multiplicity>

                <XMI.field>1</XMI.field>

                <XMI.field>1</XMI.field>

                <XMI.field>false</XMI.field>

                <XMI.field>false</XMI.field>

              </Model:Parameter.multiplicity>

              <Model:TypedElement.type>

                <Model:Classifier xmi.idref="a182"/>

              </Model:TypedElement.type>

            </Model:Parameter>

            </Model:Namespace.contents>

          </Model:Operation>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a119"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Package"

        visibility="public_vis" xmi.id="a223">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a224"/>

          <Model:Constraint xmi.idref="a225"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_41"

            tagId="org.omg.mof.idl_version" xmi.id="a226">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a223"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Tag annotation="" name="*tag_42"

            tagId="javax.jmi.substituteName" xmi.id="a227">

            <Model:Tag.values>MofPackage</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a223"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="PackageContainmentRules" xmi.id="a224">

            <Model.Constraint.expression xml:space="preserve">context Package

inv:

Set{Package, Class, DataType, Association, Exception,

    Constant, Constraint, Import, Tag}) -&gt;

  includesAll(self.contentTypes)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a223"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="PackagesCannotBeAbstract" xmi.id="a225">

            <Model.Constraint.expression xml:space="preserve">context Package

inv: not self.isAbstract</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a223"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a95"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Import"

        visibility="public_vis" xmi.id="a228">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a229"/>

          <Model:Constraint xmi.idref="a230"/>

          <Model:Constraint xmi.idref="a231"/>

          <Model:Constraint xmi.idref="a232"/>

          <Model:Constraint xmi.idref="a233"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_43"

            tagId="org.omg.mof.idl_version" xmi.id="a234">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a228"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ImportedNamespaceMustBeVisible" xmi.id="a229">

            <Model.Constraint.expression xml:space="preserve">context Import

inv: self.container.isVisible(self.importedNamespace)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a228"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL" xmi.id="a230">

            <Model.ModelElement.name xml:space="preserve">CanOnlyImportPackagesAndClasses</Model.ModelElement.name>

            <Model.Constraint.expression xml:space="preserve">context Import

inv:

self.imported.oclIsTypeOf(Class) or

self.imported.oclIsTypeOf(Package)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a228"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="CannotImportSelf" xmi.id="a231">

            <Model.Constraint.expression xml:space="preserve">context Import

inv: self.container &lt;&gt; self.imported</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a228"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="CannotImportNestedComponents" xmi.id="a232">

            <Model.Constraint.expression xml:space="preserve">context Import

inv: not self.container.allContents() -&gt; includes(self.imported)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a228"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="NestedPackagesCannotImport" xmi.id="a233">

            <Model.Constraint.expression xml:space="preserve">context Import

inv:

self.container -&gt; notEmpty implies

  self.container -&gt; asSequence -&gt; first -&gt; container -&gt; isEmpty</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a228"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="visibility"

            scope="instance_level" visibility="public_vis" xmi.id="a235">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a66"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="isClustered"

            scope="instance_level" visibility="public_vis" xmi.id="a236">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#Boolean"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Reference annotation="" isChangeable="true"

            name="importedNamespace" scope="instance_level"

            visibility="public_vis" xmi.id="a237">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a56"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a238"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a19"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:EnumerationType annotation="" isAbstract="false"

        isLeaf="true" isRoot="true" name="DirectionKind"

        visibility="public_vis" xmi.id="a239">

        <Model:EnumerationType.labels>in_dir</Model:EnumerationType.labels>

        <Model:EnumerationType.labels>out_dir</Model:EnumerationType.labels>

        <Model:EnumerationType.labels>inout_dir</Model:EnumerationType.labels>

        <Model:EnumerationType.labels>return_dir</Model:EnumerationType.labels>

      </Model:EnumerationType>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Parameter"

        visibility="public_vis" xmi.id="a240">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_44"

            tagId="org.omg.mof.idl_version" xmi.id="a241">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a240"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="direction"

            scope="instance_level" visibility="public_vis" xmi.id="a242">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a239"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="multiplicity"

            scope="instance_level" visibility="public_vis" xmi.id="a243">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a133"/>

            </Model:TypedElement.type>

          </Model:Attribute>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a119"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Constraint"

        visibility="public_vis" xmi.id="a59">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a244"/>

          <Model:Constraint xmi.idref="a245"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_45"

            tagId="org.omg.mof.idl_version" xmi.id="a246">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a59"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="CannotConstrainThisElement" xmi.id="a244">

            <Model.Constraint.expression xml:space="preserve">context Constraint

inv:

self.constrainedElements -&gt;

  forAll(c | not Set{Constraint, Tag, Imports, Constant} -&gt;

              includes(c.oclType())</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a59"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ConstraintsLimitedToContainer" xmi.id="a245">

            <Model.Constraint.expression xml:space="preserve">context Constraint

inv:

self.constrainedElements -&gt;

  forAll(c | self.container.extendedNamespace() -&gt; includes(c))</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a59"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="expression"

            scope="instance_level" visibility="public_vis" xmi.id="a247">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Tag annotation="" name="*tag_46"

            tagId="org.omg.mof.idl_version" xmi.id="a248">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a247"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="language" scope="instance_level"

            visibility="public_vis" xmi.id="a249">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Tag annotation="" name="*tag_47"

            tagId="org.omg.mof.idl_version" xmi.id="a250">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a249"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:EnumerationType annotation="" isAbstract="false"

            isLeaf="true" isRoot="true" name="EvaluationKind"

            visibility="public_vis" xmi.id="a251">

            <Model:EnumerationType.labels>immediate</Model:EnumerationType.labels>

            <Model:EnumerationType.labels>deferred</Model:EnumerationType.labels>

          </Model:EnumerationType>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="evaluationPolicy"

            scope="instance_level" visibility="public_vis" xmi.id="a252">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a251"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Reference annotation="" isChangeable="true"

            name="constrainedElements" scope="instance_level"

            visibility="public_vis" xmi.id="a253">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a19"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a254"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a19"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Constant"

        visibility="public_vis" xmi.id="a255">

        <Model:ModelElement.constraints>

          <Model:Constraint xmi.idref="a256"/>

          <Model:Constraint xmi.idref="a257"/>

        </Model:ModelElement.constraints>

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_48"

            tagId="org.omg.mof.idl_version" xmi.id="a258">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a255"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ConstantsValueMustMatchType" xmi.id="a256">

            <Model.Constraint.expression xml:space="preserve">context Constant

inv: ...</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a255"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Constraint annotation=""

            evaluationPolicy="deferred" language="OCL"

            name="ConstantsTypeMustBePrimitive" xmi.id="a257">

            <Model.Constraint.expression xml:space="preserve">context Constant

inv: self.type.oclIsOfType(PrimitiveType)</Model.Constraint.expression>

            <Model:Constraint.constrainedElements>

            <Model:ModelElement xmi.idref="a255"/>

            </Model:Constraint.constrainedElements>

          </Model:Constraint>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="value" scope="instance_level"

            visibility="public_vis" xmi.id="a259">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Tag annotation="" name="*tag_49"

            tagId="org.omg.mof.idl_version" xmi.id="a260">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a259"/>

            </Model:Tag.elements>

          </Model:Tag>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a119"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Class annotation="" isAbstract="false" isLeaf="false"

        isRoot="false" isSingleton="false" name="Tag"

        visibility="public_vis" xmi.id="a261">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_50"

            tagId="org.omg.mof.idl_version" xmi.id="a262">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a261"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="tagId" scope="instance_level"

            visibility="public_vis" xmi.id="a263">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Tag annotation="" name="*tag_51"

            tagId="org.omg.mof.idl_version" xmi.id="a264">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a263"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Attribute annotation="" isChangeable="true"

            isDerived="false" name="values" scope="instance_level"

            visibility="public_vis" xmi.id="a265">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>true</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier href="http://www.omg.org/models/MOF1.4/XMI1.1/Model1.4/PrimitiveTypes.xml#String"/>

            </Model:TypedElement.type>

          </Model:Attribute>

          <Model:Tag annotation="" name="*tag_52"

            tagId="org.omg.mof.idl_version" xmi.id="a266">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a265"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:Reference annotation="" isChangeable="true"

            name="elements" scope="instance_level"

            visibility="public_vis" xmi.id="a267">

            <Model:StructuralFeature.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:StructuralFeature.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a19"/>

            </Model:TypedElement.type>

            <Model:Reference.referencedEnd>

            <Model:AssociationEnd xmi.idref="a268"/>

            </Model:Reference.referencedEnd>

          </Model:Reference>

        </Model:Namespace.contents>

        <Model:GeneralizableElement.supertypes>

          <Model:GeneralizableElement xmi.idref="a19"/>

        </Model:GeneralizableElement.supertypes>

      </Model:Class>

      <Model:Association annotation="" isAbstract="false"

        isDerived="false" isLeaf="true" isRoot="true"

        name="AttachesTo" visibility="public_vis" xmi.id="a269">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_53"

            tagId="org.omg.mof.idl_version" xmi.id="a270">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a269"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true"

            name="modelElement" xmi.id="a268">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a19"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="tag" xmi.id="a271">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>true</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a261"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

        </Model:Namespace.contents>

      </Model:Association>

      <Model:Association annotation="" isAbstract="false"

        isDerived="true" isLeaf="true" isRoot="true"

        name="DependsOn" visibility="public_vis" xmi.id="a272">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_54"

            tagId="org.omg.mof.idl_version" xmi.id="a273">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a272"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="false" isNavigable="true" name="dependent" xmi.id="a274">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a19"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="false" isNavigable="true" name="provider" xmi.id="a32">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a19"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

        </Model:Namespace.contents>

      </Model:Association>

      <Model:Association annotation="" isAbstract="false"

        isDerived="false" isLeaf="true" isRoot="true"

        name="Contains" visibility="public_vis" xmi.id="a275">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_55"

            tagId="org.omg.mof.idl_version" xmi.id="a276">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a275"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:AssociationEnd aggregation="composite"

            annotation="" isChangeable="true" isNavigable="true"

            name="container" xmi.id="a57">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a56"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true"

            name="containedElement" xmi.id="a77">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>true</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a19"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

        </Model:Namespace.contents>

      </Model:Association>

      <Model:Association annotation="" isAbstract="false"

        isDerived="false" isLeaf="true" isRoot="true"

        name="Generalizes" visibility="public_vis" xmi.id="a277">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_56"

            tagId="org.omg.mof.idl_version" xmi.id="a278">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a277"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="supertype" xmi.id="a109">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>true</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a95"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="subtype" xmi.id="a279">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a95"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

        </Model:Namespace.contents>

      </Model:Association>

      <Model:Association annotation="" isAbstract="false"

        isDerived="false" isLeaf="true" isRoot="true" name="Aliases"

        visibility="public_vis" xmi.id="a280">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_57"

            tagId="org.omg.mof.idl_version" xmi.id="a281">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a280"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="importer" xmi.id="a282">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a228"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="imported" xmi.id="a238">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a56"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

        </Model:Namespace.contents>

      </Model:Association>

      <Model:Association annotation="" isAbstract="false"

        isDerived="false" isLeaf="true" isRoot="true"

        name="Constrains" visibility="public_vis" xmi.id="a283">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_58"

            tagId="org.omg.mof.idl_version" xmi.id="a284">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a283"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="constraint" xmi.id="a60">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a59"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true"

            name="constrainedElement" xmi.id="a254">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a19"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

        </Model:Namespace.contents>

      </Model:Association>

      <Model:Association annotation="" isAbstract="false"

        isDerived="false" isLeaf="true" isRoot="true"

        name="CanRaise" visibility="public_vis" xmi.id="a285">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_59"

            tagId="org.omg.mof.idl_version" xmi.id="a286">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a285"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="operation" xmi.id="a287">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a188"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="except" xmi.id="a196">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>true</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a195"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

        </Model:Namespace.contents>

      </Model:Association>

      <Model:Association annotation="" isAbstract="false"

        isDerived="true" isLeaf="true" isRoot="true" name="Exposes"

        visibility="public_vis" xmi.id="a288">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_60"

            tagId="org.omg.mof.idl_version" xmi.id="a289">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a288"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="referrer" xmi.id="a290">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a172"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="exposedEnd" xmi.id="a183">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a182"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

        </Model:Namespace.contents>

      </Model:Association>

      <Model:Association annotation="" isAbstract="false"

        isDerived="false" isLeaf="true" isRoot="true"

        name="RefersTo" visibility="public_vis" xmi.id="a291">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_61"

            tagId="org.omg.mof.idl_version" xmi.id="a292">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a291"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="referent" xmi.id="a293">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a172"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true"

            name="referencedEnd" xmi.id="a185">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a182"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

        </Model:Namespace.contents>

      </Model:Association>

      <Model:Association annotation="" isAbstract="false"

        isDerived="false" isLeaf="true" isRoot="true"

        name="IsOfType" visibility="public_vis" xmi.id="a294">

        <Model:Namespace.contents>

          <Model:Tag annotation="" name="*tag_62"

            tagId="org.omg.mof.idl_version" xmi.id="a295">

            <Model:Tag.values>1.4</Model:Tag.values>

            <Model:Tag.elements>

            <Model:ModelElement xmi.idref="a294"/>

            </Model:Tag.elements>

          </Model:Tag>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true" name="type" xmi.id="a125">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>1</XMI.field>

            <XMI.field>1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>false</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a124"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

          <Model:AssociationEnd aggregation="none" annotation=""

            isChangeable="true" isNavigable="true"

            name="typedElements" xmi.id="a296">

            <Model:AssociationEnd.multiplicity>

            <XMI.field>0</XMI.field>

            <XMI.field>-1</XMI.field>

            <XMI.field>false</XMI.field>

            <XMI.field>true</XMI.field>

            </Model:AssociationEnd.multiplicity>

            <Model:TypedElement.type>

            <Model:Classifier xmi.idref="a119"/>

            </Model:TypedElement.type>

          </Model:AssociationEnd>

        </Model:Namespace.contents>

      </Model:Association>

      </Model:Namespace.contents>

    </Model:Package>

  </XMI.content>

</XMI>