<?xml version="1.0" encoding="UTF-8" ?>
<!-- <!DOCTYPE XMI SYSTEM 'Model.dtd'> -->
<XMI xmi.version='1.1' xmlns:Model='omg.org/mof.Model/1.3'>
  <XMI.header>
    <XMI.model xmi.name='CWM' xmi.version='1.0'/>
    <XMI.metamodel xmi.name='Model' xmi.version='1.3'/>
  </XMI.header>
  <XMI.content>
    <Model:Package xmi.id='a0' name='Core' annotation='The Core metamodel depends on no other packages.&#10;&#10;&#10;&#10;The ObjectModel Core metamodel contains basic metamodel classes and associations used by all other CWM metamodel packages, including other ObjectModel packages&#10;&#10;&#10;&#10;OCL Representation of Core Constraints&#10;&#10;&#10;&#10;Operations&#10;&#10;&#10;&#10;The operation allFeatures results in a Set containing all Features of the Classifier itself and all its inherited Features.&#10;&#10;   allFeatures : Set(Feature);&#10;&#10;   allFeatures = self.feature-&gt;union(self.parent.oclAsType(Classifier).allFeatures)&#10;&#10;&#10;&#10;The operation allAttributes results in a Set containing all Attributes of the Classifier itself and all its inherited Attributes.&#10;&#10;   allAttributes : set(Attribute);&#10;&#10;   allAttributes = self.allFeatures-&gt;select(f | f.oclIsKindOf(Attribute))&#10;&#10;&#10;&#10;The operation specification yields the set of Classifiers that the current Classifier realizes.&#10;&#10;   specification: Set(Classifier)&#10;&#10;   specification = self.clientDependency-&gt;&#10;&#10;   select(d | d.stereotype.name = &quot;realization&quot;&#10;&#10;      and d.supplier.oclIsKindOf(Classifier)).supplier.oclAsType(Classifier)&#10;&#10;&#10;&#10;The operation parent returns a Set containing all direct parents of a Classifier.&#10;&#10;   parent : Set(Classifier);&#10;&#10;   parent = self.generalization.parent&#10;&#10;&#10;&#10;The operation allParents returns a Set containing all the Classifiers inherited by this Classifier (the transitive closure), excluding the Classifier itself.&#10;&#10;   allParents : Set(Classifier);&#10;&#10;   allParents = self.parent-&gt;union(self.parent.allParents)&#10;&#10;&#10;&#10;The operation allContents returns a Set containing all ModelElements contained in the Classifier together with the contents inherited from its parents.&#10;&#10;   allContents : Set(ModelElement);&#10;&#10;   allContents = self.contents-&gt;union(self.parent.allContents-&gt;&#10;&#10;   select(e | e.elementOwnership.visibility = #public or &#10;&#10;      e.elementOwnership.visibility = #protected))&#10;&#10;&#10;&#10;The operation supplier results in a Set containing all direct suppliers of the ModelElement.&#10;&#10;   supplier : Set(ModelElement);&#10;&#10;   supplier = self.clientDependency.supplier&#10;&#10;&#10;&#10;The operation allSuppliers results in a Set containing all the ModelElements that are suppliers of this ModelElement, including the suppliers of these Model Elements. This is the transitive closure.&#10;&#10;   allSuppliers : Set(ModelElement);&#10;&#10;   allSuppliers = self.supplier-&gt;union(self.supplier.allSuppliers)&#10;&#10;&#10;&#10;The operation contents results in a Set containing all ModelElements contained by the Namespace.&#10;&#10;   contents : Set(ModelElement)&#10;&#10;   contents = self.ownedElement -&gt; union(self.namespace.contents)&#10;&#10;&#10;&#10;The operation allContents results in a Set containing all ModelElements contained by the Namespace.&#10;&#10;   allContents : Set(ModelElement);&#10;&#10;   allContents = self.contents&#10;&#10;&#10;&#10;The operation allVisibleElements results in a Set containing all ModelElements visible outside of the Namespace.&#10;&#10;   allVisibleElements : Set(ModelElement)&#10;&#10;   allVisibleElements = self.allContents -&gt; select(e |&#10;&#10;      e.elementOwnership.visibility = #public)&#10;&#10;&#10;&#10;The operation allSurroundingNamespaces results in a Set containing all surrounding Namespaces.&#10;&#10;   allSurroundingNamespaces : Set(Namespace)&#10;&#10;   allSurroundingNamespaces =&#10;&#10;      self.namespace-&gt;union(self.namespace.allSurroundingNamespaces)&#10;&#10;&#10;&#10;The operation contents results in a Set containing the ModelElements owned by or imported by the Package.&#10;&#10;   contents : Set(ModelElement)&#10;&#10;   contents = self.ownedElement-&gt;union(self.importedElement)&#10;&#10;&#10;&#10;The operation allImportedElements results in a Set containing the ModelElements imported by the Package.&#10;&#10;   allImportedElements : Set(ModelElement)&#10;&#10;   allImportedElements = self.importedElement&#10;&#10;&#10;&#10;The operation allContents results in a Set containing the ModelElements owned by or imported by the Package.&#10;&#10;   allContents : Set(ModelElement)&#10;&#10;   allContents = self.contents&#10;&#10;&#10;&#10;Constraints&#10;&#10;&#10;&#10;[C-3-1] A Constraint cannot be applied to itself.&#10;&#10;context Constraint inv:&#10;&#10;not self.constrainedElement-&gt;includes (self)&#10;&#10;&#10;&#10;[C-3-2] A DataType cannot contain any other ModelElements.&#10;&#10;context DataType inv:&#10;&#10;self.ownedElement-&gt;isEmpty&#10;&#10;&#10;&#10;[C-3-3] Tags associated with a model element (directly via a property list or indirectly via a stereotype) must not clash with any meta attributes associated with the model element.&#10;&#10;context ModelElement inv:&#10;&#10;-- cannot be specified with OCL' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1' name='org.omg.mof.idl_prefix=org.omg.cwm.objectmodel' annotation='' tagId='org.omg.mof.idl_prefix' elements='a0'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.objectmodel</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a2' name='org.omg.xmi.namespace=CWM' annotation='' tagId='org.omg.xmi.namespace' elements='a0'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a3' name='Element' annotation='An element is an atomic constituent of a model. In the metamodel, an Element is the top metaclass in the metaclass hierarchy. Element is an abstract metaclass.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false'>
        </Model:Class>
        <Model:Class xmi.id='a4' name='ModelElement' annotation='A model element is an element that is an abstraction drawn from the system being modeled.&#10;&#10;&#10;&#10;In the metamodel, a ModelElement is a named entity in a Model. It is the base for all modeling metaclasses in the CWM. All other modeling metaclasses are either direct or indirect subclasses of ModelElement.' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a3'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a5' name='name' annotation='An identifier for the ModelElement within its containing Namespace.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a6'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a7' name='visibility' annotation='Specifies extent of the visibility of the ModelElement within its owning Namespace.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a8'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a9' name='clientDependency' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a10' referencedEnd='a11'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a12' name='constraint' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a13' referencedEnd='a14'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a15' name='importer' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a16' referencedEnd='a17'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a18' name='namespace' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a19' referencedEnd='a20'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a19' name='Namespace' annotation='A namespace is a part of a model that contains a set of ModelElements each of whose&#10;&#10;names designates a unique element within the namespace. &#10;&#10;&#10;&#10;In the metamodel, a Namespace is a ModelElement that can own other ModelElements, such as Classifiers. The name of each owned ModelElement must be unique within the Namespace. Moreover, each contained ModelElement is owned by at most one Namespace. The concrete subclasses of Namespace may have additional constraints on which kind of elements may be contained. &#10;&#10;&#10;&#10;Namespace is an abstract metaclass.&#10;&#10;&#10;&#10;Note that explicit parts of a model element, such as the features of a Classifier, are not modeled as owned elements in a namespace. A namespace is used for unstructured contents such as the contents of a  package, or a class declared inside the scope of another class.' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a21' name='ownedElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a22'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a23' name='Classifier' annotation='A classifier is an element that describes structural and behavioral features; it comes in several specific forms, including class, data type, interface, component, and others that are defined in other metamodel packages.&#10;&#10;&#10;&#10;Classifier is often used as a type.&#10;&#10;&#10;&#10;In the metamodel, a Classifier may declare a collection of Features, such as Attributes, Operations and Methods. It has a name, which is unique in the Namespace enclosing the Classifier. Classifier is an abstract metaclass.&#10;&#10;&#10;&#10;Classifier is a child of Namespace. As a Namespace, a Classifier may declare other Classifiers nested in its scope. Nested Classifiers may be accessed by other Classifiers only if the nested Classifiers have adequate visibility. There are no data value or state consequences of nested Classifiers, i.e., it is not an aggregation or composition.' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a19'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a24' name='isAbstract' annotation='An abstract Classifier is not instantiable.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a26' name='feature' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a27' referencedEnd='a28'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a29' name='Class' annotation='A class is a description of a set of objects that share the same attributes, operations, methods, relationships, and semantics. A class may use a set of interfaces to specify collections of operations it provides to its environment. In the metamodel, a Class describes a set of objects sharing a collection of Features that are common to the set of objects.&#10;&#10;&#10;&#10;The purpose of a Class is to declare a collection of Features that fully describe the structure and behavior of objects. Some Classes may not be directly instantiated. These Classes are said to be abstract and exist only for other Classes to inherit and reuse the Features declared by them. No object may be a direct instance of an abstract Class, although an object may be an indirect instance of one through a subclass that is non-abstract.&#10;&#10;&#10;&#10;A Class acts as the namespace for various kinds of contained elements defined within its scope, including classes, interfaces and associations (note that this is purely a scoping construction and does not imply anything about aggregation). The contained classes can be used as ordinary classes in the container class. If a class inherits another class, the contents of the ancestor are available to its descendents if the visibility of an element is public or protected; however, if the visibility is private, then the element is not visible and therefore not available in the descendant.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a23'>
        </Model:Class>
        <Model:Class xmi.id='a30' name='DataType' annotation='A data type is a type whose values have no identity (i.e., they are pure values). Data types include primitive built-in types (such as integer and string) as well as definable enumeration types.&#10;&#10;&#10;&#10;In the metamodel, a DataType defines a special kind of Classifier in which operations are all pure functions (i.e., they can return data values but they cannot change data values, because they have no identity). For example, an &quot;add&quot; operation on a number with another number as an argument yields a third number as a result; the target and argument are unchanged.&#10;&#10;&#10;&#10;A DataType is a special kind of Classifier whose instances are primitive values, not objects. For example, integers and strings are usually treated as primitive values. A primitive value does not have an identity, so two occurrences of the same value cannot be differentiated. Usually, DataTypes are used for specification of the type of an attribute or parameter.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a23'>
        </Model:Class>
        <Model:Class xmi.id='a16' name='Package' annotation='A package is a grouping of model elements.&#10;&#10;&#10;&#10;In the metamodel, Package is a subclass of Namespace. A Package contains ModelElements such as Packages and Classifiers. A Package may also contain Constraints and Dependencies between ModelElements of the Package.&#10;&#10;&#10;&#10;The purpose of the package construct is to provide a general grouping mechanism. In fact, its only semantics is to define a namespace for its contents. The package construct can be used for organizing elements for any purpose; the criteria to use for grouping elements together into one package are not defined.&#10;&#10;&#10;&#10;A package owns a set of model elements, with the implication that if the package is removed from the model, so are the elements owned by the package. Elements with names, such as classifiers, that are owned by the same package must have unique names within the package, although elements in different packages may have the same name.&#10;&#10;&#10;&#10;There may be relationships between elements contained in the same package, and between an element in one package and an element in a surrounding package at any level. In other words, elements ?see? all the way out through nested levels of packages.&#10;&#10;&#10;&#10;Elements in peer packages, however, are encapsulated and are not a priori visible to each other. The same goes for elements in contained packages, i.e. packages do not see &quot;inwards&quot;.&#10;&#10;&#10;&#10;Elements owned by a Package can be made available to other Packages by importing&#10;&#10;them. Although any ModelElement may be imported by a Package, imported&#10;&#10;ModelElements are typically other Packages. When an element is imported by a&#10;&#10;package it extends the namespace of that package. Thus the elements available in a&#10;&#10;Package consists of its owned and imported ModelElements.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a19'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a31' name='importedElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a32'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a33' name='Subsystem' annotation='A subsystem is a grouping of model elements that represents a behavioral unit in a physical system. A subsystem offers interfaces and has operations.&#10;&#10;&#10;&#10;In the metamodel, Subsystem is a subclass of both Package and Classifier. As such it may have a set of Features.&#10;&#10;&#10;&#10;The purpose of the subsystem construct is to provide a grouping mechanism for specifying a behavioral unit of a physical system. Apart from defining a namespace for its contents, a subsystem serves as a specification unit for the behavior of its contained model elements.&#10;&#10;&#10;&#10;The contents of a subsystem is defined in the same way as for a package, thus it&#10;&#10;consists of owned elements and imported elements, with unique names within the&#10;&#10;subsystem.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16 a23'>
        </Model:Class>
        <Model:Class xmi.id='a34' name='Model' annotation='A model captures a view of a physical system. It is an abstraction of the physical system, with a certain purpose. The model completely describes those aspects of the physical system that are relevant to the purpose of the model, at the appropriate level of detail.&#10;&#10;&#10;&#10;In the metamodel, Model is a subclass of Package. It contains a containment hierarchy of ModelElements that together describe the physical system. A Model also contains a set of ModelElements that represents the environment of the system. &#10;&#10;&#10;&#10;Different Models can be defined for the same physical system, where each model represents a view of the physical system defined by its purpose and abstraction level, e.g. an analysis model, a design model, an implementation model. Typically different models are complementary and defined from the perspectives (viewpoints) of different system stakeholders.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
        </Model:Class>
        <Model:Class xmi.id='a27' name='Feature' annotation='A feature is a property, like attribute or operation, which is encapsulated within a Classifier.&#10;&#10;&#10;&#10;In the metamodel, a Feature declares a structural or behavioral characteristic of an instance of a Classifier or of the Classifier itself. Feature is an abstract metaclass.' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a35' name='ownerScope' annotation='Specifies whether the Feature appears in every instance of the Classifier or whether it appears only once for the entire Classifier.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a36'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a37' name='owner' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a38'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a39' name='StructuralFeature' annotation='A structural feature refers to a static feature of a model element.&#10;&#10;&#10;&#10;In the metamodel, a StructuralFeature declares a structural aspect of a Classifier that is typed, such as an attribute. For example, it specifies the multiplicity and changeability of the StructuralFeature. StructuralFeature is an abstract metaclass.' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a27'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a40' name='changeability' annotation='Specifies whether the value may be modified after the object is created.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a41'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a42' name='multiplicity' annotation='The possible number of data values for the feature that may be held by an instance. The cardinality of the set of values is an implicit part of the feature. In the common case in which the multiplicity is 1..1, then the feature is a scalar (i.e., it holds exactly one value).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a43'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a44' name='ordering' annotation='Specifies whether the set of instances is ordered. The ordering must be determined and maintained by Operations that add values to the feature. This property is only relevant if the multiplicity is greater than one.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a45'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a46' name='targetScope' annotation='Specifies whether the targets are ordinary Instances or are Classifiers.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a36'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a47' name='type' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a48'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a49' name='Attribute' annotation='An Attribute describes a named slot within a classifier that may hold a value.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a39'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a50' name='initialValue' annotation='An Expression specifying the value of the attribute upon initialization. It is meant to be evaluated at the time the object is initialized. (Note that an explicit constructor may supersede an initial value.)' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a51'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a13' name='Constraint' annotation='A constraint is a semantic condition or restriction expressed in text.&#10;&#10;&#10;&#10;In the metamodel, a Constraint is a BooleanExpression on an associated ModelElement(s) which must be true for the model to be well formed. This restriction can be stated in natural language, or in different kinds of languages with well-defined semantics. Certain Constraints are predefined, others may be user defined. Note that a Constraint is an assertion, not an executable mechanism.&#10;&#10;&#10;&#10;The specification is written as an expression in a designated constraint language. The language can be specially designed for writing constraints (such as OCL), a programming language, mathematical notation, or natural language. If constraints are to be enforced by a model editor tool, then the tool must understand the syntax and semantics of the constraint language. Because the choice of language is arbitrary, constraints can be used as an extension mechanism.&#10;&#10;&#10;&#10;The constraint concept allows new semantics to be specified linguistically for a model element. In the metamodel a Constraint directly attached to a ModelElement describes semantic restrictions that this ModelElement must obey.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a52' name='body' annotation='A BooleanExpression that must be true when evaluated for an instance of a system to be well-formed. A boolean expression defining the constraint. Expressions are written as strings in a designated language. For the model to be well formed, the expression must always yield a true value when evaluated for instances of the constrained elements at any time when the system is stable (i.e., not during the execution of an atomic operation).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a53'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a54' name='constrainedElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a55'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a56' name='org.omg.mof.idl_substitute_name=UmlConstraint' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a13'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>UmlConstraint</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a10' name='Dependency' annotation='A dependency states that the implementation or functioning of one or more elements requires the presence of one or more other elements.&#10;&#10;&#10;&#10;In the metamodel, a Dependency is a directed relationship from a client (or clients) to a supplier (or suppliers) stating that the client is dependent on the supplier (i.e., the client element requires the presence and knowledge of the supplier element).&#10;&#10;&#10;&#10;A dependency specifies that the semantics of a set of model elements requires the presence of another set of model elements. This implies that if the source is somehow modified, the dependents probably must be modified. The reason for the dependency can be specified in several different ways (e.g., using natural language or an algorithm) but is often implicit.&#10;&#10;&#10;&#10;Whenever the supplier element of a dependency changes, the client element is potentially invalidated. After such invalidation, a check should be performed followed by possible changes to the derived client element. Such a check should be performed after which action can be taken to change the derived element to validate it again.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a57' name='kind' annotation='Contains a description of the nature of the dependency relationship between the client and supplier. The list of possible values is open-ended. However, CWM predefines the values &quot;Abstraction&quot; and &quot;Usage&quot;.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a59' name='client' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a60'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a61' name='supplier' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a62'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a51' name='Expression' annotation='In the metamodel an Expression defines a statement which will evaluate to a (possibly empty) set of instances when executed in a context. An Expression does not modify the environment in which it is evaluated. An expression contains an expression string and the name of an interpretation language with which to evaluate the string.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a3'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a63' name='body' annotation='The text of the expression expressed in the given language.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a64' name='language' annotation='Names the language in which the expression body is represented. The interpretation of the expression depends on the language. If the language name is omitted, no interpretation for the expression can be assumed. In general, a language name should be spelled and capitalized exactly as it appears in the document defining the language. For example, use COBOL, not Cobol; use Ada, not ADA; use PostScript, not Postscript.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a6'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a53' name='BooleanExpression' annotation='In the metamodel BooleanExpression defines a statement which will evaluate to an instance of Boolean when it is evaluated.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a51'>
        </Model:Class>
        <Model:Class xmi.id='a65' name='ProcedureExpression' annotation='In the metamodel ProcedureExpression defines a statement which will result in a change to the values of its environment when it is evaluated.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a51'>
        </Model:Class>
        <Model:Class xmi.id='a43' name='Multiplicity' annotation='In the metamodel a Multiplicity defines a non-empty set of non-negative integers. A set which only contains zero ({0}) is not considered a valid Multiplicity. Every Multiplicity has at least one corresponding String  representation.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a3'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a66' name='range' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a67' referencedEnd='a68'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a67' name='MultiplicityRange' annotation='In the metamodel a MultiplicityRange defines a range of integers. The upper bound of the range cannot be below the lower bound. The lower bound must be a nonnegative integer. The upper bound must be a nonnegative integer or the special value unlimited, which indicates there is no upper bound on the range. &#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a3'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a69' name='lower' annotation='Specifies the positive integer lower bound of the range.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a71' name='upper' annotation='Specifies the upper bound of the range, which is a positive integer or the special value ?unlimited? indicating no upper bound is defined.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a72'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a73' name='multiplicity' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a43' referencedEnd='a74'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a75' name='Stereotype' annotation='The stereotype concept provides a way of branding (classifying) model elements so that they behave as if they were instances of new virtual metamodel constructs. These model elements have the same structure (attributes, associations, operations) as similar non-stereotyped model elements of the same kind. The stereotype may specify additional constraints and required tagged values that apply to model elements. In addition, a stereotype may be used to indicate a difference in meaning or usage between two model elements with identical structure.&#10;&#10;&#10;&#10;In the metamodel the Stereotype metaclass is a subclass of ModelElement. Tagged Values and Constraints attached to a Stereotype apply to all ModelElements branded by that Stereotype.&#10;&#10;&#10;&#10;A stereotype keeps track of the base class to which it may be applied. The base class is a class in the metamodel (not a user-level modeling element) such as Class, Association, etc. If a model element is branded by an attached stereotype, then the CWM base class of the model element must be the base class specified by the stereotype or one of the subclasses of that base class.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a76' name='baseClass' annotation='Specifies the name of a modeling element to which the stereotype applies, such as Class, Association, Constraint, etc. This is the name of a metaclass, that is, a class from the metamodel itself rather than a user model class.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a6'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a77' name='extendedElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a78'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a79' name='requiredTag' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a80' referencedEnd='a81'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a82' name='stereotypeConstraint' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a13' referencedEnd='a83'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a80' name='TaggedValue' annotation='A tagged value allows information to be attached to any model element in the form of a &quot;tagged value&quot; pair (i.e., name = value). The interpretation of tagged value semantics is intentionally beyond the scope of CWM. It must be determined by user or tool conventions. It is expected that tools will define tags to supply information needed for their operations beyond the basic semantics of CWM. Such information could include code generation options, model management information, or user-specified semantics.&#10;&#10;&#10;&#10;Even though TaggedValues are a simple and straightforward extension technique, their use restricts semantic interchange of metadata to only those tools that share a common understanding of the specific tagged value names.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a3'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a84' name='tag' annotation='Contains the name of the TaggedValue. This name determines the semantics that are applicable to the contents of the value attribute.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a6'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a85' name='value' annotation='Contains the current value of the TaggedValue.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a86' name='modelElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a87'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a88' name='stereotype' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a75' referencedEnd='a89'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a90' name='org.omg.mof.idl_substitute_name=umlValue' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a85'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>umlValue</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:DataType xmi.id='a91' name='Any' annotation='The Any data type is used to indicate that an attribute or parameter may take values from any of the available data types. In CWM, the set of data types an Any attribute or parameter may assume includes the data types and enumerations described in this chapter plus any available instances of the Classifier class. &#10;&#10;&#10;&#10;There is no default value for data type Any.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcAny/>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a25' name='Boolean' annotation='Boolean defines an enumeration that denotes a logical condition.&#10;&#10;&#10;&#10;The default for data type Boolean is false.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcBoolean/>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a92' name='Float' annotation='The Float data type is used to indicate that an attribute or parameter may take on floating point numeric values. The number of significant digits and other representational details are implementation defined. &#10;&#10;&#10;&#10;The default for the Float data type is the value 0.0.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcFloat/>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a70' name='Integer' annotation='Integer represents the predefined type of integers. An instance of Integer is an element in the (infinite) set of integers (..., -2, -1, 0, 1, 2, ...). &#10;&#10;&#10;&#10;The default for Integer is 0.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcLong/>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a6' name='Name' annotation='Name defines a token which is used for naming ModelElements and similar usages. Each Name has a corresponding String representation. For purposes of exchange a name should be represented as a String.&#10;&#10;&#10;&#10;The default for the Name data type is an empty string.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcAlias xmi.tcName='Name' xmi.tcId='IDL:org.omg.cwm.objectmodel/Core/Name:1.0'>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcString xmi.tcLength='0'/>
                </XMI.CorbaTypeCode>
              </XMI.CorbaTcAlias>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a58' name='String' annotation='String defines a piece of text. Strings do not normally have a defined length; rather, they are considered to be arbitrarily long (practical limits on the length of Strings exist, but are implementation dependent). When String is used as the type of an Attribute, string length sometimes can be specified (see the Relational and Record packages for examples).&#10;&#10;&#10;&#10;The default for the String data type is an empty string.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcString xmi.tcLength='0'/>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a93' name='Time' annotation='Time defines a statement which will define the time of occurrence of an event. The specific format of time expressions is not specified here and is subject to implementation considerations.&#10;&#10;&#10;&#10;There is no default for the Time data type.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcAlias xmi.tcName='Time' xmi.tcId='IDL:org.omg.cwm.objectmodel/Core/Time:1.0'>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcString xmi.tcLength='0'/>
                </XMI.CorbaTypeCode>
              </XMI.CorbaTcAlias>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a72' name='UnlimitedInteger' annotation='UnlimitedInteger defines a data type whose range is the nonnegative integers augmented by the special value &quot;unlimited&quot;. It is used for the upper bound of multiplicities.&#10;&#10;&#10;&#10;The default for an UnlimitedInteger is the special value &quot;unlimited&quot;.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcAlias xmi.tcName='UnlimitedInteger' xmi.tcId='IDL:org.omg.cwm.objectmodel/Core/UnlimitedInteger:1.0'>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcLong/>
                </XMI.CorbaTypeCode>
              </XMI.CorbaTcAlias>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a41' name='ChangeableKind' annotation='' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='ChangeableKind' xmi.tcId='IDL:org.omg.cwm.objectmodel/Core/ChangeableKind:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='ck_changeable'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='ck_frozen'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='ck_addOnly'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a94' name='org.omg.xmi.enumerationUnprefix=ck_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a41'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>ck_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:DataType xmi.id='a45' name='OrderingKind' annotation='In the metamodel OrderingKind defines an enumeration that specifies how the elements of a set are arranged. Used in conjunction with elements that have a multiplicity in cases when the multiplicity value is greater than one. The ordering must be determined and maintained by operations that modify the set.&#10;&#10;&#10;&#10;The default value is ok_unordered.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='OrderingKind' xmi.tcId='IDL:org.omg.cwm.objectmodel/Core/OrderingKind:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='ok_unordered'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='ok_ordered'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a95' name='org.omg.xmi.enumerationUnprefix=ok_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a45'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>ok_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:DataType xmi.id='a36' name='ScopeKind' annotation='In the metamodel ScopeKind defines an enumeration that denotes whether a feature belongs to individual instances or an entire classifier.&#10;&#10;&#10;&#10;The default value is sk_instance.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='ScopeKind' xmi.tcId='IDL:org.omg.cwm.objectmodel/Core/ScopeKind:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='sk_instance'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='sk_classifier'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a96' name='org.omg.xmi.enumerationUnprefix=sk_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a36'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>sk_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:DataType xmi.id='a8' name='VisibilityKind' annotation='In the metamodel VisibilityKind defines an enumeration that denotes how the element to which it refers is seen outside the enclosing name space.&#10;&#10;&#10;&#10;The default value is vk_public.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='VisibilityKind' xmi.tcId='IDL:org.omg.cwm.objectmodel/Core/VisibilityKind:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='vk_public'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='vk_protected'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='vk_private'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='vk_package'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='vk_notapplicable'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a97' name='org.omg.xmi.enumerationUnprefix=vk_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a8'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>vk_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Association xmi.id='a98' name='ClassifierFeature' annotation='The ClassifierFeature association provides a composite aggregation containment relationship between Classifiers and the Features they own. The feature end of the association is ordered allowing preservation of the ordering of Features within their owning Classifier. A Feature can be owned by at most one Classifier. The optional character of ownership is intended as a convenience to tools, allowing them to create Features prior to linking them to their owning Classifier.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a38' name='owner' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a28' name='feature' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a27'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a99' name='DependencyClient' annotation='The DependencyClient association links Dependency instances with ModelElements that act as clients in the represented dependency relationship.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a60' name='client' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a11' name='clientDependency' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a10'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a100' name='DependencySupplier' annotation='The DependencySupplier association links Dependency instances with ModelElements that act as suppliers in the represented dependency relationship.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a62' name='supplier' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a101' name='supplierDependency' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a10'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a102' name='ElementConstraint' annotation='The ElementConstraint association provides linkages between ModelElements and the Constraint instances that constrain their state. Note that a Constraint instance may not simultaneously participate in both the ElementConstraint and the StereotypeConstraint associations.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a55' name='constrainedElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a14' name='constraint' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a13'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Tag xmi.id='a103' name='org.omg.mof.idl_substitute_name=umlConstraint' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a14'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>umlConstraint</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Association xmi.id='a104' name='ElementOwnership' annotation='The ElementOwnership association identifies ModelElements owned by Namespaces. ModelElements may be owned by at most one Namespace. Refer to the above discussion of the Namespace class for more information on the nature of the ownership relationship between Namespaces and ModelElements.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a22' name='ownedElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a20' name='namespace' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a19'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a105' name='ImportedElements' annotation='The ImportedElements association identifies ModelElements that a Package instance imports from other Namespaces. Although any ModelElement may be imported by a Package, imported ModelElements are typically other Packages or aggregate Classifiers, such as Class instances.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a32' name='importedElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a17' name='importer' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a16'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a106' name='RangeMultiplicity' annotation='The RangeMultiplicity association identifies the set of MultiplicityRange instances that specify the lower and upper bounds of individual cardinality ranges defined by a Multiplicity instance. A MultiplicityRange instance must be owned by a single Multiplicity instance.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a74' name='multiplicity' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a43'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a68' name='range' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a67'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a107' name='StereotypeConstraints' annotation='The StereotypeConstraints association links Stereotypes with Constraints that further restrict the states that a stereotyped ModelElement may assume. A Constraint instance may not simultaneously participate in both the StereotypeContraints association and the ElementConstraint association.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a83' name='stereotypeConstraint' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a13'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a108' name='constrainedStereotype' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a75'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a109' name='StereotypedElement' annotation='The StereotypedElement association links Stereotypes with the ModelElements to which they apply. ' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a78' name='extendedElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a110' name='stereotype' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a75'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a111' name='StereotypeTaggedValues' annotation='The StereotypeTaggedValues association links Stereotypes with the set of TaggedValues they require.&#10;&#10;&#10;&#10;TaggedValues cannot simultaneously participate in both the TaggedElement and StereotypeTaggedValues associations.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a81' name='requiredTag' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a80'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a89' name='stereotype' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a75'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a112' name='StructuralFeatureType' annotation='The StructuralFeatureType association identifies the Classifier instance that defines the type of particular StructuralFeatures. A StructuralFeature instance must have a Classifier instance that defines its type.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a113' name='structuralFeature' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a39'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a48' name='type' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a114' name='TaggedElement' annotation='The TaggedElement association links TaggedValues with the ModelElements that own them.&#10;&#10;&#10;&#10;TaggedValues cannot simultaneously participate in both the TaggedElement and StereotypeTaggedValues associations.&#10;&#10;&#10;&#10;' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a87' name='modelElement' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a115' name='taggedValue' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a80'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a116' name='Behavioral' annotation='The Behavioral metamodel depends on the following package:&#10;&#10;&#10;&#10;   org.omg::CWM::ObjectModel::Core&#10;&#10;&#10;&#10;The Behavioral metamodel collects together classes and associations that describe the behavior of CWM types and provides a foundation for recording the invocations of defined behaviors. The elements of the Behavioral metamodel are shown in the following figure.&#10;&#10;&#10;&#10;OCL Representation of Behavioral Constraints&#10;&#10;&#10;&#10;Operations&#10;&#10;&#10;&#10;The operation hasSameSignature checks if the argument has the same signature as the instance itself.&#10;&#10;   hasSameSignature ( b : BehavioralFeature ) : Boolean;&#10;&#10;   hasSameSignature (b) =&#10;&#10;   (self.name = b.name) and&#10;&#10;   (self.parameter-&gt;size = b.parameter-&gt;size) and&#10;&#10;   Sequence{ 1..(self.parameter-&gt;size) }-&gt;forAll( index : Integer |&#10;&#10;   b.parameter-&gt;at(index).type =&#10;&#10;   self.parameter-&gt;at(index).type and&#10;&#10;   b.parameter-&gt;at(index).kind =&#10;&#10;   self.parameter-&gt;at(index).kind   )&#10;&#10;&#10;&#10;The operation allOperations results in a Set containing all Operations of the Classifier itself and all its inherited Operations.&#10;&#10;   allOperations : Set(Operation);&#10;&#10;   allOperations = self.allFeatures-&gt;select(f | f.ockIsKindOf(Operations))&#10;&#10;&#10;&#10;The operation allMethods results in a Set containing all Methods of the Classifier itself and all its inherited Methods.&#10;&#10;   allOperations : Set(Method);&#10;&#10;   allMethods = self.allFeatures-&gt;select(f | f.ockIsKindOf(Method))&#10;&#10;&#10;&#10;Constraints&#10;&#10;&#10;&#10;[C-4-1] All Parameters should have a unique name.&#10;&#10;context BehavioralFeature inv:&#10;&#10;self.parameter-&gt;forAll(p1, p2 | p1.name = p2.name implies p1 = p2)&#10;&#10;&#10;&#10;[C-4-2] The type of the Parameters should be included in the Namespace of the Classifier.&#10;&#10;context BehavioralFeature inv:&#10;&#10;self.parameter-&gt;forAll( p | self.owner.namespace.allContents-&gt;includes (p.type) )&#10;&#10;&#10;&#10;[C-4-3] The number of arguments must be the same as the number of parameters of the Operation.&#10;&#10;context CallAction inv:&#10;&#10;self.actualArgument-&gt;size = self.operation.parameter-&gt;size&#10;&#10;&#10;&#10;[C-4-4] An Interface can only contain Operations.&#10;&#10;context Interface inv:&#10;&#10;self.allFeatures-&gt;forAll( f | f.oclIsKindOf( Operation ) )&#10;&#10;&#10;&#10;[C-4-5] An Interface cannot contain any ModelElements.&#10;&#10;context Interface inv:&#10;&#10;self.allContents-&gt;isEmpty&#10;&#10;&#10;&#10;[C-4-6] All Features defined in an Interface are public.&#10;&#10;context Interface inv:&#10;&#10;self.allFeatures-&gt;forAll( f | f.visibility = #public )&#10;&#10;&#10;&#10;[C-4-7] If the realized Operation is a query, then so is the Method.&#10;&#10;context Method inv:&#10;&#10;self.specification-&gt;isQuery implies self.isQuery' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a117' name='org.omg.mof.idl_prefix=org.omg.cwm.objectmodel' annotation='' tagId='org.omg.mof.idl_prefix' elements='a116'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.objectmodel</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a118' name='org.omg.xmi.namespace=CWM' annotation='' tagId='org.omg.xmi.namespace' elements='a116'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a119' name='Argument' annotation='Argument is an expression describing how to determine an actual value passed in a CallAction.&#10;&#10;&#10;&#10;In the metamodel an Argument is a composite part of a CallAction and contains a meta-attribute, value, of type Expression. It states how the actual argument is determined when the owning CallAction is executed.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a120' name='value' annotation='An expression determining the actual Argument instance when executed.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a51'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a121' name='callAction' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a122' referencedEnd='a123'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a124' name='org.omg.mof.idl_substitute_name=umlValue' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a120'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>umlValue</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Import xmi.id='a125' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a126' name='BehavioralFeature' annotation='A behavioral feature refers to a dynamic feature of a model element, such as an operation or method. In the metamodel, BehavioralFeature specifies a behavioral aspect of a Classifier. All different kinds of behavioral aspects of a Classifier, such as Operation and Method, are subclasses of BehavioralFeature.&#10;&#10;&#10;&#10;BehavioralFeature is an abstract metaclass.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a27'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a127' name='isQuery' annotation='Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged. True indicates that the state is unchanged; false indicates that side-effects may occur.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a128' name='parameter' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a129' referencedEnd='a130'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a122' name='CallAction' annotation='A call action is an action resulting in an invocation of an operation.&#10;&#10;&#10;&#10;The purpose of a CallAction is to identify the actual Arguments used in a specific invocation of an Operation.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a131' name='operation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a132' referencedEnd='a133'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a134' name='actualArgument' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a119' referencedEnd='a135'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a136' name='Event' annotation='Event is a specification of an observable occurrence. The occurrence that generates an event instance is assumed to take place at an instant in time.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a137' name='parameter' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a129' referencedEnd='a138'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a139' name='Interface' annotation='Interface is a named set of operations that specify the behavior of an element.&#10;&#10;&#10;&#10;In the metamodel, an Interface contains a set of Operations that together define a service offered by a Classifier realizing the Interface. A Classifier may offer several services, which means that it may realize several Interfaces, and several Classifiers may realize the same Interface.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a23'>
        </Model:Class>
        <Model:Tag xmi.id='a140' name='org.omg.mof.idl_substitute_name=UmlInterface' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a139'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>UmlInterface</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a141' name='Method' annotation='Method is the implementation of an Operation. It specifies the algorithm or procedure that effects the results of an Operation.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a126'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a142' name='body' annotation='A specification of the Method in some appropriate form (such as a programming language). The exact form of a Method?s specification and knowledge of the language in which it is described is outside the scope of the CWM.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a65'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a143' name='specification' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a132' referencedEnd='a144'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a132' name='Operation' annotation='Operation is a service that can be requested from an object to effect behavior. An Operation has a signature, which describes the parameters that are possible (including possible return values).&#10;&#10;&#10;&#10;In the metamodel, an Operation is a BehavioralFeature that can be applied to instances of the Classifier that contains the Operation.&#10;&#10;&#10;&#10;Operation is the specification, while Method is the implementation.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a126'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a145' name='isAbstract' annotation='If true, then the Operation does not have an implementation, and one must be supplied by a descendant. If false, the Operation must have an implementation in the class or inherited from an ancestor.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a146' name='method' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a141' referencedEnd='a147'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a129' name='Parameter' annotation='Parameters are used in the specification of operations, methods and events. A Parameter may include a name, type, and direction of communication.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a148' name='defaultValue' annotation='An Expression whose evaluation yields a value to be used when no argument is supplied for the Parameter.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a51'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a149' name='kind' annotation='Specifies what kind of a Parameter is required.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a150'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a151' name='behavioralFeature' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a126' referencedEnd='a152'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a153' name='event' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a136' referencedEnd='a154'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a155' name='type' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a156'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:DataType xmi.id='a150' name='ParameterDirectionKind' annotation='In the metamodel ParameterDirectionKind defines an enumeration that denotes if a Parameter is used for supplying an argument and/or for returning a value. The enumeration values are:&#10;&#10;&#10;&#10;The default value is pdk_in.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='ParameterDirectionKind' xmi.tcId='IDL:org.omg.cwm.objectmodel/Behavioral/ParameterDirectionKind:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='pdk_in'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='pdk_inout'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='pdk_out'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='pdk_return'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a157' name='org.omg.xmi.enumerationUnprefix=pdk_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a150'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>pdk_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Association xmi.id='a158' name='BehavioralFeatureParameter' annotation='The BehavioralFeatureParameter association identifies and orders Parameter instances describing the parameters of a BehavioralFeature. Parameters may be owned by at most one BehavioralFeature instance. The set of parameters of a BehavioralFeature, together with its name and return value, are said to constitute the BehavioralFeature?s &quot;signature&quot;.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a152' name='behavioralFeature' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a126'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a130' name='parameter' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a129'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a159' name='CallArguments' annotation='Identifies the Argument instances representing the actual argument values passed to an Operation during the particular invocation indicated by the CallAction instance. The ordering of actual argument values is assumed to correspond to the ordering of the Operation?s parameters as represented by the ordering of the BehavioralFeatureParameter association.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a135' name='actualArgument' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a119'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a123' name='callAction' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a122'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a160' name='EventParameter' annotation='The EventParameter association identifies the set of Parameter instances owned by an Event instance.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a154' name='event' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a136'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a138' name='parameter' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a129'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a161' name='CalledOperation' annotation='The CalledOperation association identifies the CallAction instance representing a particular invocation of an Operation.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a162' name='callAction' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a122'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a133' name='operation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a132'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a163' name='OperationMethod' annotation='The OperationMethod association links an Operation with the Method instance(s) that realize it. The various Method instances represent alternative implementations (usually in different programming languages or environments) of the Operation.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a144' name='specification' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a132'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a147' name='method' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a141'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a164' name='ParameterType' annotation='The ParameterType association links a Parameter instance with the Classifier that defines the parameter?s type.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a165' name='parameter' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a129'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a156' name='type' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a166' name='Relationships' annotation='The Relationships metamodel depends on the following package:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;&#10;&#10;The Relationships metamodel collects together classes and associations that describe  the relationships between object within a CWM information store. The Relationships metamodel describes to types of relationships: association and generalization.&#10;&#10;&#10;&#10;Association relationships record linkages between model elements. These linkages may represent simple linkages between model elements or aggregation (&quot;is part of&quot;) relationships between model elements; aggregation relationships come in two forms -- shared and composite. Associations have two or more named ends that link them to instances of the classes connected by the association.&#10;&#10;&#10;&#10;Generalization relationships record arrangements of model elements into type hierarchies in a parent/child (or &quot;is type of&quot;) fashion. Child types are said to &quot;specialize&quot;, &quot;subclass&quot; or &quot;subtype&quot; their parental  types, represent a subset of parental instances that fulfill the definition of the child type, and inherit the structural features&#10;&#10;(Attributes, AssociationEnd) and behavioral features (Operations, Methods) of their parents. Parental types are said to &quot;generalize&quot; their child types or to be &quot;superclasses&quot; or &quot;supertypes&quot; of their children.&#10;&#10;&#10;&#10;CWM generalization hierarchies support multiple inheritance; that is, child types may have more than one parental type and inherit the union of the features of all their parental types. Although called &quot;hierarchies&quot;, multiple inheritance actually represents a directed acyclic graph of parental and child types.&#10;&#10;&#10;&#10;OCL Representation of Relationships Constraints&#10;&#10;&#10;&#10;Operations&#10;&#10;&#10;&#10;The operation allConnections results in the set of all AssociationEnds of the Association.&#10;&#10;   allConnections : Set(AssociationEnd);&#10;&#10;   allConnections = self.feature.oclIsKindOf(AssociationEnd)&#10;&#10;&#10;&#10;Constraints&#10;&#10;&#10;&#10;[C-5-1] An Association must have at least 2 AssociationEnds.&#10;&#10;context Association inv:&#10;&#10;self.allConnections-&gt;size &gt; 1&#10;&#10;&#10;&#10;[C-5-2] The AssociationEnds must have a unique name within the association.&#10;&#10;context Association inv:&#10;&#10;self.allConnections-&gt;forAll( r1, r2 | r1.name = r2.name implies r1 = r2)&#10;&#10;&#10;&#10;[C-5-3] At most one AssociationEnd may be an aggregation or composition.&#10;&#10;context Association inv:&#10;&#10;self.allConnections-&gt;select(aggregation &lt;&gt; #ak_none)-&gt;size &lt;= 1&#10;&#10;&#10;&#10;[C-5-4] If an Association has three or more AssociationEnds, then no AssociationEnd may be an aggregation or composition.&#10;&#10;context Association inv:&#10;&#10;self.allConnections-&gt;size &gt;=3 implies&#10;&#10;self.allConnections-&gt;forall(aggregation = #ak_none)&#10;&#10;&#10;&#10;[C-5-5] The connected Classifiers of the AssociationEnds should be included in the Namespace of the Association, or be Classifiers with public visibility in other Namespaces to which the Association has access.&#10;&#10;context Association inv:&#10;&#10;self.allConnections-&gt;forAll(r | self.namespace.allContents-&gt;includes (r.type) ) or&#10;&#10;self.allConnections-&gt;forAll(r | self.namespace.allContents-&gt;excludes (r.type))&#10;&#10;   implies&#10;&#10;self.namespace.clientDependency-&gt;exists (d |&#10;&#10;   d.supplier.oclAsType(Namespace).ownedElement-&gt;select (e |&#10;&#10;      e.elementOwnership.visibility = #ak_public)-&gt;includes (r.type) or&#10;&#10;   d.supplier.oclAsType(Classifier).allParents.&#10;&#10;      oclAsType(Namespace).ownedElement-&gt;select (e |&#10;&#10;         e.elementOwnership.visibility = #ak_public)-&gt;includes (r.type) or&#10;&#10;         d.supplier.oclAsType(Package).allImportedElements-&gt;select (e |&#10;&#10;            e.elementImport.visibility = #ak_public) -&gt;includes (r.type) ) )&#10;&#10;&#10;&#10;[C-5-6] An AssociationEnd must have an owning Association.&#10;&#10;context AssociationEnd inv:&#10;&#10;self.owner.oclIsKindOf(Association)&#10;&#10;&#10;&#10;[C-5-7] The Classifier of an AssociationEnd cannot be an Interface or a DataType if the association is navigable away from that end.&#10;&#10;context AssociationEnd inv:&#10;&#10;(self.type.oclIsKindOf (Interface) or&#10;&#10;self.type.oclIsKindOf (DataType)) implies&#10;&#10;self.owner-&gt;select (ae | ae &lt;self)-&gt;forAll(ae | ae.isNavigable = #false)&#10;&#10;&#10;&#10;[C-5-8] An instance may not belong by composition to more than one composite Instance.&#10;&#10;context AssociationEnd inv:&#10;&#10;self.aggregation = #ak_composite implies self.multiplicity.max &lt;= 1&#10;&#10;&#10;&#10;[C-5-9] An AssociationEnd with composite or shared aggregation semantics must be owned by an Association.&#10;&#10;context AssociationEnd inv:&#10;&#10;self.aggregation = #ak_composite or self.aggregation = #ak_shared implies&#10;&#10;self.owner.oclIsKindOf(Association)&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a167' name='org.omg.mof.idl_prefix=org.omg.cwm.objectmodel' annotation='' tagId='org.omg.mof.idl_prefix' elements='a166'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.objectmodel</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a168' name='org.omg.xmi.namespace=CWM' annotation='' tagId='org.omg.xmi.namespace' elements='a166'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a169' name='Association' annotation='An association defines a semantic relationship between classifiers. Associations have two or more named ends. Associations with two or more ends are called &quot;n-ary&quot; whereas associations with exactly two ends are called &quot;binary&quot;. Each end, depending&#10;&#10;upon its multiplicity, connects to zero or more instances of some classifier.&#10;&#10;&#10;&#10;In the metamodel, an Association is a declaration of a semantic relationship between Classifiers, such as Classes. Associations must have two, and may have more, association ends. Each end is connected to a Classifier; the same Classifier may be &#10;&#10;connected to more than one association end in the same association. (Refer to the ObjectModel?s Instance package, below, for a description of how Associations are instantiated.)&#10;&#10;&#10;&#10;Because Associations are classifiers, they own and order their association ends (which are Attributes) via the ClassifierFeature association. In addition, because Associations are Classes, they can also own more traditional StructuralFeatures such as Attributes. Consequently, they may act in a manner similar to &quot;association classes&quot; described by&#10;&#10;some other object models.&#10;&#10;&#10;&#10;An association may represent an aggregation (i.e., a whole/part relationship). In this case, the association end attached to the whole element is designated, and the other association end represents the parts of the aggregation.&#10;&#10;&#10;&#10;Associations can be of three different kinds: (1) ordinary association, (2) composite aggregate, and (3) shareable aggregate. Since the aggregate construct can have several different meanings depending on the application area, CWM gives a more precise meaning to two of these constructs (i.e., association and composite aggregate) and leaves the shareable aggregate more loosely defined in between. Only binary Associations can have composite or sharable aggregation semantics.&#10;&#10;&#10;&#10;Composite aggregation is a strong form of aggregation which requires that a part instance be included in at most one composite at a time and that the composite object has sole responsibility for the disposition of its parts. This means that the composite object is responsible for the creation and destruction of the parts. In implementation terms, it is responsible for their memory allocation. If a composite object is destroyed, it must destroy all of its parts. It may remove a part and give it to another composite object, which then assumes responsibility for it. If the multiplicity from a part to composite is zero-to-one, the composite may remove the part and the part may assume responsibility for itself, otherwise it may not live apart from a  composite.&#10;&#10;&#10;&#10;A consequence of these rules is that a composite aggregation implies propagation semantics (i.e., some of the dynamic semantics of the whole is propagated to its parts). For example, if the whole is copied or destroyed, then so are the parts as well (because a part may belong to at most one composite).&#10;&#10;&#10;&#10;A classifier on the composite end of an association may have parts that are classifiers and associations. At the instance level, an instance of a part element is considered &quot;part of&quot; the instance of a composite element. If an association is part of a composite and it connects two classes that are also part of the same composite, then an instance of the association will connect objects that are part of the same composite object of which the instance is part.&#10;&#10;&#10;&#10;A shareable aggregation denotes weak ownership (i.e., the part may be included in several aggregates) and its owner may also change over time. However, the semantics of a shareable aggregation does not imply deletion of the parts when an aggregate&#10;&#10;referencing it is deleted. Both kinds of aggregations define a transitive, antisymmetric relationship (i.e., the instances form a directed, non-cyclic graph). Composition instances form a strict tree (or rather a forest).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
        </Model:Class>
        <Model:Class xmi.id='a170' name='AssociationEnd' annotation='An association end is an endpoint of an association, which connects the association to a classifier. Each association end is part of one association. The association ends of each association are ordered.&#10;&#10;&#10;&#10;In the metamodel, an AssociationEnd is part of an Association and specifies the connection of an Association to some other Classifier. Because AssociationEnds are a kind of StructuralFeature, they are owned and ordered by Association instances via the ClassifierFeature association. The StructuralFeatureType association is used to identify the Classifier to which the AssociationEnd is attached. Each AssociationEnd has a name and defines a set of properties of the connection.&#10;&#10;&#10;&#10;The multiplicity property of an association end specifies how many instances of the classifier at a given end (the one bearing the multiplicity value) may be associated with a single instance of the classifier at the other end. The association end also states whether or not the connection may be traversed towards the instance playing that role in the connection (the isNavigable attribute), that is, if the instance is directly reachable via the association.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a39'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a171' name='aggregation' annotation='When placed on one end (the &quot;target&quot; end), specifies whether the class on the target end is an aggregation with respect to the class on the other end (the &quot;source&quot; end). Only one end of an association can be an aggregation.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a172'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a173' name='isNavigable' annotation='When placed on a target end, specifies whether traversal from a source instance to its associated target instances is possible. A value of true means that the association can be navigated by the source class and the target rolename can be used in navigation expressions. Specification of navigability for each direction is defined independently.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a174' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a175' name='Generalization' annotation='A generalization is a taxonomic relationship between a more general element and a more specific element. The more specific element is fully consistent with the more general element (it has all of its properties, members, and relationships) and may contain additional information.&#10;&#10;&#10;&#10;In the metamodel, a Generalization is a directed inheritance relationship, uniting a Classifier with a more general Classifier in a hierarchy. Generalization is a subtyping relationship; that is, an instance of the more general (&quot;parent&quot;) Classifier may be substituted by an instance of the more specific (&quot;child&quot;) Classifier.&#10;&#10;&#10;&#10;To understand inheritance fully, it is necessary to understand the concept of a full descriptor and a segment descriptor. A full descriptor is the full description needed to describe an instance of a metamodel object. It contains a description of all of the&#10;&#10;attributes, associations, and operations that the object contains.&#10;&#10;&#10;&#10;In a pre-object-oriented language, the full descriptor of a data structure was declared directly in its entirety. In an object-oriented language, the description of an object is built out of incremental segments that are combined using inheritance to produce a full descriptor for an object. The segments are the modeling elements that are actually declared in a model. Each classifier contains a list of features and other relationships that it adds to what it inherits from its ancestors. The mechanism of inheritance defines how full descriptors are produced from a set of segments connected by  generalization.The full descriptors are implicit, but they define the structure of actual instances. Features of a classifier that have private visibility are not visible to descendants of the classifier.&#10;&#10;&#10;&#10;If a classifier has no parent, then its full descriptor is the same as its segment descriptor. If a classifier has one or more parents, then its full descriptor contains the union of the features from its own segment descriptor and the segment descriptors of all of its ancestors. No attribute, operation, or association end with the same signature may be declared in more than one of the segments (in other words, they may not be redefined). A method may be declared in more than one segment. A method declared in any segment supersedes and replaces a method with the same signature declared in any ancestor. If two or more methods nevertheless remain, then they conflict and the model is ill-formed. The constraints on the full descriptor are the union of the constraints on the segment itself and all of its ancestors. If any of them are inconsistent, then the model is ill-formed.&#10;&#10;&#10;&#10;In any full descriptor for a classifier, each method must have a corresponding operation. In a concrete classifier, each operation in its full descriptor must have a corresponding method in the full descriptor.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a176' name='child' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a177'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a178' name='parent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a179'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:DataType xmi.id='a172' name='AggregationKind' annotation='An enumeration that denotes what kind of aggregation an Association defines. When placed on a target end, specifies the relationship of the target end to the source end. &#10;&#10;&#10;&#10;The default value is ak_none.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='AggregationKind' xmi.tcId='IDL:org.omg.cwm.objectmodel/Relationships/AggregationKind:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='ak_none'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='ak_aggregate'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='ak_composite'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a180' name='org.omg.xmi.enumerationUnprefix=ak_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a172'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>ak_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Association xmi.id='a181' name='ChildElement' annotation='The ChildElement association links Classifiers with the Generalization instances that describe where they participate as children in the inheritance hierarchy.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a177' name='child' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a182' name='generalization' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a175'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a183' name='ParentElement' annotation='The ParentElement association links Classifiers with the Generalization instances that describe where the Classifiers participate as parents in the inheritance hierarchy.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a179' name='parent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a184' name='specialization' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a175'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a185' name='Instance' annotation='The Instance metamodel depends on the following package:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;&#10;&#10;In addition to the metadata normally interchanged with CWM, it is sometimes useful to interchange specific data instances as well. The ObjectModel?s Instance metamodel allows the inclusion of data instances with the metadata.&#10;&#10;&#10;&#10;OCL Representation of Instance Constraints&#10;&#10;&#10;&#10;Constraints&#10;&#10;&#10;&#10;[C-6-1] A DataValue originates from a Classifier that is a DataType.&#10;&#10;context DataValue inv:&#10;&#10;self.classifier.oclIsKindOf(DataType)&#10;&#10;&#10;&#10;[C-6-2] A DataValue has no Slots.&#10;&#10;context DataValue inv:&#10;&#10;self.valueSlot-&gt;isEmpty&#10;&#10;&#10;&#10;[C-6-3] An Object may only own Objects and DataValues.&#10;&#10;context Object inv:&#10;&#10;self.contents-&gt;forAll(c | c.oclIsKindOf(Object) or c.oclIsKindOf(DataValue))&#10;&#10;&#10;&#10;[C-6-4] If an Object represents an association, at least two of its ends must be not be empty.&#10;&#10;context Object inv:&#10;&#10;self.classifier.oclIsKindOf(Association) implies&#10;&#10;self.slot.feature-&gt;iterate( ae ; cnt : Integer = 0 |&#10;&#10;if ae.oclIsKindOf(AssociationEnd) and ae.value.notEmpty then&#10;&#10;   cnt + 1&#10;&#10;else&#10;&#10;   cnt&#10;&#10;end if ) &gt; 1&#10;&#10;&#10;&#10;[C-6-5] If the StructuralFeature describing a Slot is an AssociationEnd, the Classifier associated with the Object owning the Slot must be an Association.&#10;&#10;context Slot inv:&#10;&#10;self.feature.oclIsKindOf(AssociationEnd) implies&#10;&#10;self.value.classifier.oclIsKindOf(Association)&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a186' name='org.omg.mof.idl_prefix=org.omg.cwm.objectmodel' annotation='' tagId='org.omg.mof.idl_prefix' elements='a185'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.objectmodel</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a187' name='org.omg.xmi.namespace=CWM' annotation='' tagId='org.omg.xmi.namespace' elements='a185'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a188' name='Instance' annotation='The instance construct defines an entity to which a set of operations can be applied and which has a state that stores the effects of the operations. In the metamodel Instance is connected to a Classifier that declares its structure and behavior. It has a set of attribute values matching the definition of its Classifier. The set of attribute values implements the current state of the Instance. Because Instance is an abstract class, all Instances are either Object or DataValue instances.&#10;&#10;&#10;&#10;The data content of an Instance comprises one value for each attribute in its full descriptor (and nothing more). The value must be consistent with the type of the attribute. An instance must obey any constraints on the full descriptor of the Classifier&#10;&#10;of which it is an instance (including both explicit constraints and built-in constraints such as multiplicity).&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a189' name='classifier' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a190'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a191' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a192' name='Slot' annotation='A slot is a named location in an Object instance that holds the current value of the StructuralFeature associated with the Slot instance. Normally, the StructuralFeature associated with the slot will be either an Attribute instance or an AssociationEnd instance. Slots are owned by Objects; DataValues do not have slots.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a193' name='object' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a194' referencedEnd='a195'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a196' name='value' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a188' referencedEnd='a197'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a198' name='feature' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a39' referencedEnd='a199'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a200' name='DataValue' annotation='A data value is an instance with no identity. In the metamodel, DataValue is a child of Instance that cannot change its state, i.e. all operations that are applicable to it are pure functions or queries that do not cause any side effects. DataValues are typically used&#10;&#10;as attribute values.&#10;&#10;&#10;&#10;Since it is not possible to differentiate between two data values that appear to be the same, it becomes more of a philosophical issue whether there are several data values representing the same value or just one for each value. In addition, a data value cannot change its data type and it does not have contained instances.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a188'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a201' name='value' annotation='A string representation of the value.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a194' name='Object' annotation='An object is an instance that originates from a class.&#10;&#10;&#10;&#10;In the metamodel, Object is a subclass of Instance originating from a Class. The Class may be modified dynamically, which means that the set of features of the Object may change during its life-time.&#10;&#10;&#10;&#10;An object is an instance that originates from a class; it is structured and behaves according to its class. All objects originating from the same class are structured in the same way, although each of them has its own set of attribute slots. Each attribute slot references an instance, usually a data value or possibly, another object. The number of attribute slots with the same name fulfills the multiplicity of the corresponding attribute in the class. The set may be modified according to the specification in the corresponding attribute, e.g. each referenced instance must originate from (a specialization of) the type of the attribute, and attribute slots may be added or removed according to the changeable property of the attribute.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a188'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a202' name='slot' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a192' referencedEnd='a203'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a204' name='org.omg.mof.idl_substitute_name=UmlObject' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a194'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>UmlObject</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a205' name='Extent' annotation='Each instance of Extent owns a collection of instances and is used to link such collections to their structural and behavioral definitions in CWM Resource packages. Because Extent is a subclass of package, it owns member instances via the&#10;&#10;ElementOwnership associaton.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
        </Model:Class>
        <Model:Association xmi.id='a206' name='SlotValue' annotation='The SlotValue association connects slot instances with the DataValue or Object instance that contains the current value held by the slot.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a207' name='valueSlot' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a192'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a197' name='value' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a188'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Tag xmi.id='a208' name='org.omg.mof.idl_substitute_name=cwmlValue' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a197'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>cwmlValue</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Association xmi.id='a209' name='InstanceClassifier' annotation='The InstanceClassifier association links Instances with Classifiers that describe them.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a210' name='instance' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a188'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a190' name='classifier' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a211' name='ObjectSlot' annotation='The ObjectSlot association connects Slot instances with their owning Object instances.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a203' name='slot' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a192'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a195' name='object' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a194'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a212' name='FeatureSlot' annotation='The FeatureSlot association connects Slot instances with the StructuralFeature instance (usually either an Attribute or AssociationEnd instance) describing the structure of the value held by the Slot.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a199' name='feature' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a39'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a213' name='slot' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a192'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a214' name='BusinessInformation' annotation='The Business Information package depends on the following package:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;&#10;&#10;The Business Information Metamodel provides general purpose services available to all CWM packages for defining business-oriented information about model elements. The business-oriented services described here are designed to support the needs of data warehousing and business intelligence systems; they are not intended as a complete representation of general purpose business intelligence metamodel.&#10;&#10;&#10;&#10;Business Information Metamodel services support the notions of responsible parties and information about how to contact them, identification of off-line documentation and support for general-purpose descriptive information. Three CWM classes &quot;anchor&quot; these services: ResponsibleParty, Document and Description, respectively.&#10;&#10;&#10;&#10;To aid in representing the diversity of organizational structures and documentation relationships that may be encountered in a business intelligence system, the metamodel provides robust relationships between the anchor classes and every model element in the CWM metamodel. The necessary robustness is achieved in several ways.&#10;&#10;&#10;&#10;First, every CWM model element may have zero or more instances of each anchor class associated with it. This means, for example, that a single Description instance can be used to describe many different model elements. Conversely, a single model element may be described by many different Description instances. Likewise, Document and ResponsibleParty instances can be associated in completely ad hoc ways with any model element. Extending this idea means, for example, that Description instances could be used to further describe ResponsibleParty and Document instance, if needed.&#10;&#10;&#10;&#10;Second, because they are Namespaces, the anchor classes can be organized into hierarchies using the ElementOwnership association. For instance, an organizational structure can be represented by a hierarchy of ResponsibleParty instances. Also, the internal structure of a document (i.e., its chapters, sections, subsections, etc.) might be represented by a hierarchy of Document instances.&#10;&#10;&#10;&#10;Finally, instances of the three anchor classes can be associated with any model element (via their individual associations to ModelElement) and referenced by multiple instances of any of the three anchor classes. Because of the strong containment of the ElementOwnership association in the ObjectModel, anchor class instances can only participate in one hierarchy, but there are no restrictions preventing anchor class instances embedded in a hierarchy from referencing, or being referenced by, other model elements (even other members of the same hierarchy).&#10;&#10;&#10;&#10;To illustrate some of the ways that the metamodel can be used, the following figure shows a simple document hierarchy with responsibility assignments and descriptive comments (boxes represent instances of metamodel classes and labelled lines represent metamodel associations connecting instances). In the example, the product plan document for the Widget product is composed of three subplans: a marketing plan, an engineering plan, and a resource plan. The relationships between the subplans documents is shown as a hierarchy with the product plan owning the three subordinate plans via the ElementOwnership association. Each part of the plan is assigned to a reponsible party using the ModelElementResponsibility association. Finally, Description instances are used to record roles for the responsible parties.&#10;&#10;&#10;&#10;OCL Representation of BusinessInformation Constraints&#10;&#10;&#10;&#10;[C-3-1] A Description may not describe itself.&#10;&#10;context Description inv:&#10;&#10;self.modelElement-&gt;forAll(p | p &lt;&gt; self)&#10;&#10;&#10;&#10;[C-3-2] A Document may not describe itself.&#10;&#10;context Document inv:&#10;&#10;self.modelElement-&gt;forAll(p | p &lt;&gt; self)&#10;&#10;&#10;&#10;[C-3-3] A ResponsibleParty may not describe itself.&#10;&#10;context ResponsibleParty inv:&#10;&#10;self.modelElement-&gt;forAll(p | p &lt;&gt; self)' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a215' name='org.omg.xmi.namespace=CWM' annotation='' tagId='org.omg.xmi.namespace' elements='a214'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a216' name='org.omg.mof.idl_prefix=org.omg.cwm.foundation' annotation='' tagId='org.omg.mof.idl_prefix' elements='a214'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.foundation</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a217' name='ResponsibleParty' annotation='The ResponsibleParty class allows representation of entities within an information system that are in some way interested in receiving information about, or are otherwise responsible for, particular ModelElements. Each ResponsibleParty may own multiple sets of contact information, and a single ResponsibleParty may be associated with many ModelElements.&#10;&#10;&#10;&#10;ResponsibleParty instances may represent any entity appropriate to the system being modeled and need not be limited to people. For example, a ResponsibleParty instance might represent an individual such as &quot;George Washington&quot;, a role (the &quot;President&quot;), or an organization (&quot;Congress&quot;), depending upon the needs of the system being modeled. Similarly, the precise semantics of the responsibility attribute are open to intrepretation and may be adapted on a system-by-system basis.&#10;&#10;&#10;&#10;Because ResponsibleParty instances are Namespaces, they can be organized into hierarchies of ResponsibleParty instances, capturing organizational structures or similar relationships.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a19'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a218' name='responsibility' annotation='Textual identification or description of the ResponsibleParty in a usage-dependent format.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a219' name='contact' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a220' referencedEnd='a221'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a222' name='modelElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a223'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a224' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a225' name='Telephone' annotation='Instances of the Telephone class represent telephone contact information.&#10;&#10;&#10;&#10;Because telephones are first class objects within the CWM, they can be used for purposes beyond those associated with the CWM Foundation?s Business Information concepts.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a226' name='phoneNumber' annotation='A textual representation of the telephone?s number.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a227' name='phoneType' annotation='A textual representation of the telephone?s type, such as &quot;multi-line&quot;, or its usage,&#10;&#10;such as &quot;home&quot;, &quot;work&quot;, &quot;fax&quot;, or &quot;mobile&quot;.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a228' name='contact' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a220' referencedEnd='a229'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a230' name='Email' annotation='An Email instance identifies a single email address. Via a Contact instance, an email address can be associated with one or more ResponsibleParty instances. Email instances might, for example, be used by an automated tool to send an automatically generated email message to a ResponsibleParty instance responsible about some change of state for a particular ModelElement. Multiple Email instances may be associated with a single Contact instance and the ordering of the association between them may be used to represent the sequence in which the Email instances should be contacted.&#10;&#10;&#10;&#10;Because email addresses are first class objects within the CWM, they can be used for purposes beyond those associated with the CWMFoundation?s Business Information concepts.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a231' name='emailAddress' annotation='A textual representation of an email address.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a232' name='emailType' annotation='Contains a textual representation of the type of the email address. Interesting values might include location information such as &quot;home&quot; or &quot;work&quot;, or perhaps an indication of the type of email system for which the eMailAddress is formatted, such as &quot;SMTP&quot; or &quot;X.400&quot;.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a233' name='contact' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a220' referencedEnd='a234'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a235' name='Location' annotation='Instances of the Location class represent physical locations. Note that the name of a Location is derived from its superclass, ModelElement.&#10;&#10;&#10;&#10;Because Locations are first class objects within the CWM, they can be used for purposes beyond those associated with the CWM Foundation?s Business Information concepts. If additional attributes about Location instances are required, they should be added by creating subtypes of the Location class and placing the additional attributes therein.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a236' name='locationType' annotation='Descriptive information about the character or identity of the Location instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a237' name='address' annotation='The address of the Location instance. The precise content of this string is usage-defined.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a238' name='city' annotation='The name of the city in which the Location instance is found. The precise content of this string is usage-defined.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a239' name='postCode' annotation='The postal code of the Location instance. The precise content of this string is usage-defined.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a240' name='area' annotation='The area in which the Location instance is found. The precise content of this string is usage-defined, but a common usage would be to refer to a geographical subdivision such as a state or province.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a241' name='country' annotation='The name of the country in which the Location instance is found. The precise content of this string is usage-defined.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a242' name='contact' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a220' referencedEnd='a243'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a220' name='Contact' annotation='Each Contact instance collects together the various types of related contact information. Each Contact instance can be associated with multiple Email, Location and Telephone instances. Conversely, each Email, Location, ResourceLocator and Telephone instance can be associated with many Contact instances. The ordering constraints on the associations between these classes and the Contact class can be used to represent a prioritized sequence in which the various types of contact information  should be used.&#10;&#10;&#10;&#10;A particular ResponsibleParty instance may have multiple instances of Contact associated with it via the ResponsiblePartyContact association. This association is ordered to support representation of the sequence in which Contact instances should be used. For example, a ResponsibleParty instance representing an employee might be associated with Contact instances representing their office, home, and mobile contact information with an indication that the employee should be contacted first at the office, then at home, and finally via their mobile phone.&#10;&#10;&#10;&#10;To maximize flexibility of the metamodel, Contact instances may provide contact information for multiple ResponsibleParty instances.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a244' name='email' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a230' referencedEnd='a245'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a246' name='location' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a235' referencedEnd='a247'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a248' name='responsibleParty' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a217' referencedEnd='a249'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a250' name='telephone' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a225' referencedEnd='a251'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a252' name='url' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a253' referencedEnd='a254'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a255' name='Description' annotation='Instances of the Description class contain arbitrary textual information relevant to a particular ModelElement. While Description instances may contain any desired textual information, they will typically contain documentation or references to external reference information about the owning ModelElement.&#10;&#10;&#10;&#10;Any ModelElement may have multiple Description instances associated with it. Indeed, a ModelElement instance that is a Description instance may itself have multiple Description instances linked to it. Also, a hierarchies of Description instances can be constructed.&#10;&#10;&#10;&#10;Description instances are meant to hold descriptive textual information that will be stored in the metamodel itself. In contrast, Document instances are meant to describe the location documentary information stored outside the metamodel.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a19'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a256' name='body' annotation='Contains a textual description of information pertaining to the owning ModelElement. ' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a257' name='language' annotation='Contains an identification of the language in which the content of the body attribute is specified. If desired, the language specification may be applied to the name attribute derived from ModelElement as well.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a6'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a258' name='type' annotation='Contains a textual description of the type of information the Description represents. Specific contents are usage defined.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a259' name='modelElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a260'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a261' name='Document' annotation='The Document class represents externally stored descriptive information about some aspect of the modeled system. An instance of Document might be associated with one or more ModelElements. The name of a Document instance is derived from its superclasses.&#10;&#10;&#10;&#10;Although the purposes of the Description and Document types may overlap somewhat, their chief distinction is that Description instances are stored with the CWM metadata whereas Documentation instances are stored externally to the CWM metadata. Although there is an implication here that Documentation instances might represent more voluminous information than Description instances, there is no particular requirement that this be so.&#10;&#10;&#10;&#10;Because Documentation instances are themselves Namespace instances, hierarchical relationships between various externally stored documents can be represented.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a19'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a262' name='reference' annotation='Contains a textual representation of the identification, and perhaps the physical location, of externally maintained documentary information about some aspect of the ModelElement(s) with which the Document instance is associated.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a263' name='type' annotation='Contains a textual description of the type of information the Document represents. Specific contents are usage defined.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a264' name='modelElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a265'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a253' name='ResourceLocator' annotation='Instances of the ResourceLocator class provide a general means for describing the resources whose location is not defined by a traditional mailing address. For example, a ResourceLocator instance could refer to anything from a location within a building (&quot;Room 317, third file cabinet, 2nd drawer&quot;) to a web location (&quot;www.omg.org&quot;).&#10;&#10;&#10;&#10;Because they are first class objects in the CWM, ResourceLocator instances may also be used for purposes beyond those associated with the CWM Foundation&apos;s Business Information concepts.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a266' name='url' annotation='Contains the text of the resource location. For Internet locations, this will be a web URL (Uniform Resource Locator) but there is no requirement that this be so. In fact, the string can contain any text meaningful to its intended use in a particular environment.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a267' name='contact' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a220' referencedEnd='a268'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a269' name='ContactEmail' annotation='The ContactEmail association indicates the Email instances relevant used by Contact instances.&#10;&#10;' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a245' name='email' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a230'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a234' name='contact' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a220'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a270' name='ContactLocation' annotation='The ContactLocation association relates Contact instances to relevant Location instances.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a247' name='location' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a235'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a243' name='contact' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a220'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a271' name='ContactResourceLocator' annotation='The ContactResourceLocator association relates ResourceLocator instances to the Contact instances in which they participate.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a254' name='url' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a253'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a268' name='contact' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a220'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a272' name='ContactTelephone' annotation='The ContactTelephone association relates telephones to the Contact instances that reference them.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a251' name='telephone' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a225'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a229' name='contact' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a220'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a273' name='DocumentDescribes' annotation='The DocumentDescribes association connects a Document instance with the ModelElement instances to which it pertains.&#10;&#10;' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a265' name='modelElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a274' name='document' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a261'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a275' name='ModelElementDescription' annotation='The ModelElementDescription association connects a Description instance with the ModelElement instances to which it applies.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a260' name='modelElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a276' name='description' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a255'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a277' name='ModelElementResponsibility' annotation='The ModelElement Responsibility association identifies the ResponsibleParty instances for each ModelElement and allows determination of the ModelElements for which a ResponsibleParty instance is responsible.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a223' name='modelElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a278' name='responsibleParty' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a217'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a279' name='ResponsiblePartyContact' annotation='The ResponsiblePartyContact association allows a ResponsibleParty to have multiple sets of contact information. The ordered constraint can be used to determine the sequence in which the sets of contact information should be used.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a221' name='contact' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a220'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a249' name='responsibleParty' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a217'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a280' name='DataTypes' annotation='The DataTypes package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;&#10;&#10;The CWM DataTypes metamodel supports definition of metamodel constructs that modelers can use to create the specific data types they need. Although the CWM Foundation itself does not contain specific data type definitions, a number of data type definitions for widely used environments are provided (in the CWM Data Types chapter) as examples of the appropriate usage of CWM Foundation classes for creating&#10;&#10;data type definitions.&#10;&#10;&#10;&#10;OCL Representation of DataTypes Constraints&#10;&#10;&#10;&#10;[C-4-1] A TypeAlias instance cannot alias itself.&#10;&#10;context TypeAlias inv:&#10;&#10;self.type &lt;&gt; self&#10;&#10;&#10;&#10;[C-4-2] A Union can have at most one default UnionMember instance.&#10;&#10;context Union inv:&#10;&#10;self.allFeatures-&gt;select(isDefault)-&gt;size &lt;= 1&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a281' name='org.omg.xmi.namespace=CWM' annotation='' tagId='org.omg.xmi.namespace' elements='a280'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a282' name='org.omg.mof.idl_prefix=org.omg.cwm.foundation' annotation='' tagId='org.omg.mof.idl_prefix' elements='a280'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.foundation</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a283' name='Enumeration' annotation='The Enumeration class is intended as a starting point from which enumerated data types can be created. An enumerated data type is a collection of identifiers often used as the permitted states that some other attribute or property of the enumerated type may take.&#10;&#10;&#10;&#10;The isOrdered attribute of an Enumeration instance is used to determine if the ordered constraint on the EnumerationLiterals association is relevant for the enumeration. The particular ordering of EnumerationLiteral instances is obtained from the ordered constraint on the association even if the value attributes of the EnumerationLiteral instances contain non-null values that might be used to determine ordering. This is done to provide more flexible ordering semantics.&#10;&#10;&#10;&#10;An instance of Enumeration is also required to create a range data type. Refer to the EnumerationLiteral class for details.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a30'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a284' name='isOrdered' annotation='If True, the ordered constraint on the EnumerationLiterals association is relevant. Otherwise, the ordering of EnumerationLiteral instances is considered unspecified.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a285' name='literal' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a286' referencedEnd='a287'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a288' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a286' name='EnumerationLiteral' annotation='EnumerationLiteral instances describe the enumeration identifiers, and possibly the&#10;&#10;values, associated with an enumerated data type. Enumeration identifiers are contained&#10;&#10;in the name attribute derived from the EnumerationLiteral instance?s ModelElement superclass.&#10;&#10;&#10;&#10;EnumerationLiteral instances may also be used to define expression-based values such as ranges. To do so, simply state the membership expression in the instance?s value. For example, a range literal can be created by setting the value attribute to &quot;m..n&quot;, where m represents the lower bound of the range, and n, the upper bound. In this way, ranges and other more complicated expressions can be intermixed with simple&#10;&#10;enumeration literals. For example, an enumeration might contain the literals &quot;1&quot;, &quot;2&quot;, &quot;4..7&quot;, and &quot;&gt; 10&quot;.&#10;&#10;&#10;&#10;Consequently, a simple range data type can be created with an Enumeration instance that owns a single EnumerationLiteral instance. For example, a data type for positive integers could be created as shown in the following instance diagram. A model attribute of this data type might then be declared as &quot;posInt : PositiveInteger&quot;.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a289' name='value' annotation='The value associated with an enumeration identifier can be stored here. The attribute is optional because enumeration literals are not required to have a specific, displayable value. This is indicated by either an empty value attribute or a value attribute value whose expression body attribute is a zero-length string.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a51'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a290' name='enumeration' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a283' referencedEnd='a291'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a292' name='org.omg.IDL Substitute Name=umlValue' annotation='' tagId='org.omg.IDL Substitute Name' elements='a289'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>umlValue</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a293' name='QueryExpression' annotation='QueryExpression instances contain query statements in language-dependent form.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a65'>
        </Model:Class>
        <Model:Tag xmi.id='a294' name='org.omg.CORBA Declaration=typedef Foundation.DataTypes.ProcedureExpression QueryExpression;' annotation='' tagId='org.omg.CORBA Declaration' elements='a293'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>typedef Foundation.DataTypes.ProcedureExpression QueryExpression;</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a295' name='TypeAlias' annotation='The TypeAlias class is intended to provide a renaming capability for Classifier instances. This class is required to support situations in which creation of an alias for a class effectively creates a new class. For example, CORBA IDL type aliases have different typeCodes than their base types and are therefore treated as distinct types.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a30'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a296' name='type' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a297'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a298' name='Union' annotation='The Union class represents programming language unions and similarly structured data types. Because of the diversity of union semantics found across software systems, the Union and UnionMember classes are likely candidates for specialization to better capture union semantics in specific language extension packages.&#10;&#10;&#10;&#10;A discriminated Union has a collection of UnionMembers that determine the sets of contents that the Union may contain. Such Unions have an attribute called the discriminator that identifies the memberCase value of the UnionMember that the Union currently contains. The discriminator is found via the UnionDiscriminator association to StructuralFeature. The discriminator may be embedded within UnionMembers or may be located outside the discriminator. If it is located within UnionMembers, the discriminator should occur in every UnionMember at the same location (often, the first).&#10;&#10;&#10;&#10;Undiscriminated unions (for example, a C language union) are also supported, but have an empty discriminator reference, and the memberCase attribute of the UnionMembers it contains is ignored.&#10;&#10;&#10;&#10;Undiscriminated Unions are often used to represent alternate views of a single physical&#10;&#10;storage area. A fine degree of control over this aspect of Unions may be obtained by&#10;&#10;creating a class that derives from both UnionMember and FixedOffsetField (in the&#10;&#10;CWM Record package) and setting the offset attribute instances of that class&#10;&#10;accordingly.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a23'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a299' name='discriminator' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a39' referencedEnd='a300'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a301' name='org.omg.mof.idl_substitute_name=CwmUnion' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a298'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CwmUnion</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a302' name='UnionMember' annotation='UnionMembers are described as features of a Union and each represents one of the members of a Union. Note, however, that multiple case values can map to a single UnionMember. If isDefault is true, the union member is the default member.&#10;&#10;&#10;&#10;UnionMember instances are allowed to have a memberCase and be the default case. UnionMember instances often represent structured storage areas. A particular UnionMember may be associated with a Classifier that describes its internal structure via the StructuralFeatureType association (defined in the ObjectModel::Core package). For example, the Record::Group class, itself a Classifier, can be used as the type of a UnionMember in a manner completely analogous to how it is used to describe the type of a structured field (see the instance diagrams in the Record metamodel chapter for details).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a303' name='memberCase' annotation='Contains the value of the Union?s discriminator for this UnionMember.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a51'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a304' name='isDefault' annotation='Indicates if this UnionMember is the default member of the Union (implying that when unstated, the Union?s discriminator would assume this instance?s memberCase value).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a305' name='ClassifierAlias' annotation='The ClassifierAlias association connects TypeAlias instances with the Classifier instances which they rename.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a297' name='type' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a306' name='alias' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a295'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a307' name='EnumerationLiterals' annotation='The EnumerationLiterals association links enumeration literals to the Enumeration instances that contain them.&#10;&#10;&#10;&#10;If the Enumeration?s isOrdered attribute is True, the ordering constraint on the association is relevant. Otherwise, it is ignored.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a291' name='enumeration' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a283'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a287' name='literal' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a286'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a308' name='UnionDiscriminator' annotation='The UnionDiscriminator association connects a Union instance with the StructuralFeature instance that can be used to determine which UnionMember instance is currently present in the Union instance. This &quot;discriminating&quot; attribute may be a feature of the UnionMembers themselves or may be a feature of some Classifier that contains the Union instance as one of its Features. In the former case, the&#10;&#10;discriminating feature will usually be present at the same offset in each UnionMember instance. If the discriminator reference is empty for a particular Union instance, it is considered to be an &quot;undiscriminated&quot; Union and determination of the current UnionMember residing in the Union is usage-defined.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a300' name='discriminator' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a39'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a309' name='discriminatedUnion' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a298'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a310' name='Expressions' annotation='The Expressions package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;&#10;&#10;The CWM Expressions metamodel provides basic support for the definition of expression trees within the CWM. The intent of the Expressions metamodel is to provide a place for other CWM packages (such as Transformation) and CWM compliant tools to record shared expressions in a common form that can be used for interchange and lineage tracking.&#10;&#10;&#10;&#10;The expression concept in the CWM Foundation takes a functional view of expression trees, resulting in the ability of relatively few expression types to represent a broad range of expressions. Every function or traditional mathematical operator that appears in an expression hierarchy is represented as a FeatureNode. For example, the arithmetic plus operation ?a + b? can be thought of as the function ?sum(a, b).? The semantics of a particular function or operation are left to specific tool implementations and are not captured by the CWM. &#10;&#10;&#10;&#10;The hierarchical nature of the CWM?s representation of expressions is achieved by the recursive nature of the OperationArgument association. This association allows the sub-hierarchies within an expression to be treated as actual parameters of their parent nodes.&#10;&#10;&#10;&#10;OCL Representation of Expressions Constraints&#10;&#10;&#10;&#10;[C-5-1] A FeatureNode that has parameters other than the&quot;this&quot; parameter represents a Feature that is also an Operation.&#10;&#10;context FeatureNode inv:&#10;&#10;if self.feature.ownerScope = #instance&#10;&#10;then self.argument-&gt;size &gt; 1 implies&#10;&#10;   self.feature.oclIsKindOf(Operation)&#10;&#10;else self.argument-&gt;size &gt; 0 implies&#10;&#10;   self.feature.oclIsKindOf(Operation)&#10;&#10;endif&#10;&#10;&#10;&#10;[C-5-2] If the FeatureNode represents an instance-scope feature, the first argument is a &quot;this&quot; or &quot;self&quot; argument; that is, the object invoking the feature. The convention is enforced by checking that the type of the first argument is the same as the type of the feature.&#10;&#10;context FeatureNode inv:&#10;&#10;self.feature.ownerScope = #instance implies&#10;&#10;self.argument-&gt;first.type.allFeatures-&gt;includes(self.feature)&#10;&#10;&#10;&#10;[C-5-3] If the FeatureNode represents a BehavioralFeature, the number of arguments must be equal to the number of the BehavioralFeature?s parameters, plus one for the ?this? parameter if the BehavioralFeature is of instance scope.&#10;&#10;context FeatureNode inv:&#10;&#10;self.feature.oclIsKindOf(BehavioralFeature) implies&#10;&#10;(if self.feature.ownerScope = #instance&#10;&#10;   then self.argument-&gt;size =&#10;&#10;      self.feature.oclAsType(BehavioralFeature).parameters-&gt;size + 1&#10;&#10;   else self.argument-&gt;size =&#10;&#10;      self.feature.oclAsType(BehavioralFeature).parameters-&gt;size&#10;&#10;endif)' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a311' name='org.omg.xmi.namespace=CWM' annotation='' tagId='org.omg.xmi.namespace' elements='a310'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a312' name='org.omg.mof.idl_prefix=org.omg.cwm.foundation' annotation='' tagId='org.omg.mof.idl_prefix' elements='a310'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.foundation</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a313' name='ExpressionNode' annotation='All node types within an expression are derived from the ExpressionNode type.&#10;&#10;&#10;&#10;An expression is stored as a collection of instances of the subtypes of ExpressionNode arranged in a hierarchical fashion. The ExpressionNode instance at the top (or ?root?) of the hierarchy represents the value of the expression and serves as a starting point for expression evaluation. Refer to the descriptions of the subtypes of ExpressionNode (ElementNode, ConstantNode, and FeatureNode) for additional information about the representation of expressions.&#10;&#10;&#10;&#10;One important purpose for providing storage of expressions as a general feature of the CWM is to promote sharing them between tools and to provide a means for recording lineage relationships between components within expressions. Specific details of the implementation of expression operators are left to the implementing tools.&#10;&#10;&#10;&#10;When ExpressionNode is used as the type of an Attribute, an instance of the Attribute can contain either an expression tree as described here or a textual representation of the expression in body and language values of in an attribute of type Expression (defined ObjectModel). The expression attribute is provided for the latter usage. To obtain CWM?s sharing and lineage tracking features for elements within an expression, the expression must be represented as an expression hierarcy.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a3'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a314' name='expression' annotation='Contains a textual representation of the expression relevant for this ExpressionNode instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a51'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a315' name='featureNode' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a316' referencedEnd='a317'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a318' name='type' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a319'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a320' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a321' name='ConstantNode' annotation='Instances of the ConstantNode class are ExpressionNodes that represent constant values within expressions. Appropriate uses of the ConstantNode class place the values of constants in the value attribute, rather than in the expression::body attribute inherited from ExpressionNode. The latter attribute is intended for a different purpose; see the description of the ExpressionNode class for details.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a313'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a322' name='value' annotation='The value of a constant in an expression tree.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a91'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a323' name='org.omg.IDL Substitute Name=umlValue' annotation='' tagId='org.omg.IDL Substitute Name' elements='a322'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>umlValue</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a324' name='ElementNode' annotation='An ElementNode is a node in an expression that references some ModelElement instance. This subclass of ExpressionNode allows an expression to reference any CWM model element that is not a Feature and cannot, therefore, be represented as a FeatureNode.&#10;&#10;&#10;&#10;Typically, use of this subclass of ExpressionNode implies that a tool attempting to evaluate the expression will be able to determine if the referenced ModelElement instance is also an instance of some interesting subclass of ModelElement that contains a value of interest in the expression.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a313'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a325' name='modelElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a326'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a316' name='FeatureNode' annotation='The FeatureNode class represents ExpressionNode instances that are features (i.e., attributes or operations) of some Classifier instance within the CWM.&#10;&#10;&#10;&#10;A FeatureNode with a null OperationArgument association represents either a parameter-less operation or an attribute value obtained from some StructuralFeature instance.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a313'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a327' name='argument' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a313' referencedEnd='a328'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a329' name='feature' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a27' referencedEnd='a330'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a331' name='ExpressionNodeClassifier' annotation='The ExpressionNodeClassifier association identifies the type of an ExpressionNode instance.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a319' name='type' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a332' name='expressionNode' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a313'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a333' name='NodeFeature' annotation='The NodeFeature association identifies the Feature (usually, an Attribute or Operation subtype) that FeatureNode represents.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a330' name='feature' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a27'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a334' name='featureNode' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a316'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a335' name='OperationArgument' annotation='The OperationArgument association identifies and orders the actual arguments of an Operation indicated by the FeatureNode end of the association. This association is meaningful only if the FeatureNode references, via the NodeFeature association, a Feature that is also an Operation. The association is not meaningful under other&#10;&#10;circumstances.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a317' name='featureNode' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a316'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a328' name='argument' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a313'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a336' name='ReferencedElement' annotation='The ReferencedElement association links the ElementNode instances of an expression with the ModelElement instances to which they refer.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a326' name='modelElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a337' name='elementNode' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a324'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a338' name='KeysIndexes' annotation='The KeysIndexes package depends on the following package:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;&#10;&#10;Keys and indexes as means for specifying instances and for identifying alternate sortings of instances are  epresented in the CWMFoundation so that they can be shared among the various data models that employ hem. The CWM Foundation defines the base concepts (uniqueness and relationships implemented as keys)  pon which more specific key structures can be built by other CWM and tool-specific packages.&#10;&#10;&#10;&#10;The concepts of key and index have been placed in the CWM Foundation because they are available in many  types of data resources. In the CWM Foundation class and association descriptions that follow, relational model  examples are frequently used when discussing the definition and usage of key and index types. This is done because of the wide-spread availability of relational systems and is thought to promote an understanding of the underlying concepts. These concepts, however, are no less applicable to other data models as well.&#10;&#10;&#10;&#10;The two central classes for representing the concept of keys are UniqueKey and KeyRelationship. UniqueKey instances correspond to the notion that keys represent the identity of instances -- similar to the relational model?s concept of a primary key or an object model?s concept of an object identity. In contrast, KeyRelationship instancescorrespond to the notion that keys embedded in an instance can be used to determine the identity of other related instances -- similar to the relational model concept of foreign key and the object model concept of a reference. Consequently, UniqueKey and KeyRelationship are best thought of as representing roles that collections of Features of Classifiers play rather than Classifiers describing the internal structure of keys. Representing keys as roles rather than structural entities provides greater flexibility and allows the reuse of  Features in multiple keys and in differing relationships to each other. Associations within the KeysIndexes package describe how UniqueKey and KeyRelationship instances describe the roles they play for various&#10;&#10;Class instances and the StructuralFeature instances they contain.&#10;&#10;&#10;&#10;OCL Representation of KeysIndexes Constraints&#10;&#10;&#10;&#10;[C-6-1]The isAscending attribute is valid only if the isSorted attribute is True.&#10;&#10;context IndexedFeature inv:&#10;&#10;self.isAscending-&gt;notEmpty implies self.index.isSorted&#10;&#10;&#10;&#10;[C-6-2] A KeyRelationship instance must be owned by one and only one Class&#10;&#10;instance.&#10;&#10;context KeyRelationship inv:&#10;&#10;(self.namespace-&gt;size = 1) and self.namespace.oclIsKindOf(Class)&#10;&#10;&#10;&#10;[C-6-3] An UniqueKey instance must be owned by one and only one Class instance.&#10;&#10;context UniqueKey inv:&#10;&#10;(self.namespace-&gt;size = 1) and self.namespace.oclIsKindOf(Class)' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a339' name='org.omg.xmi.namespace=CWM' annotation='' tagId='org.omg.xmi.namespace' elements='a338'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a340' name='org.omg.mof.idl_prefix=org.omg.cwm.foundation' annotation='' tagId='org.omg.mof.idl_prefix' elements='a338'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.foundation</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a341' name='UniqueKey' annotation='A UniqueKey represents a collection of features of some Class that, taken together, uniquely identify instances of the Class. Instances of UniqueKey for which all features are required to have non-null values are candidates for use as primary keys such as those defined by relational DBMSs.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a342' name='feature' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a39' referencedEnd='a343'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a344' name='keyRelationship' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a345' referencedEnd='a346'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a347' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a348' name='Index' annotation='Instances of the Index class represent the ordering of the instances of some other Class, and the Index is said to &quot;span&quot; the Class. Indexes normally have an ordered set of attributes of the Class instance they span that make up the &quot;key&quot; of the index; this set of relationships is represented by the IndexedFeature class that indicates how the attributes are used by the Index instance.&#10;&#10;&#10;&#10;The Index class is intended primarily as a starting point for tools that require the notion&#10;&#10;of an index.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a349' name='isPartitioning' annotation='If True, this Index instance is used as a partitioning index.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a350' name='isSorted' annotation='If True, the Index instance is maintained in a sorted order.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a351' name='isUnique' annotation='The isUnique attribute is True if the Index instance guarantees all of its instances have a unique key value.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a352' name='indexedFeature' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a353' referencedEnd='a354'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a355' name='spannedClass' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a29' referencedEnd='a356'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a345' name='KeyRelationship' annotation='KeyRelationship instances represent relationships between UniqueKey instances and the Class(es) that reference them. This class is intended as a starting point for the creation of &quot;foreign key&quot; and other associative relationships.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a357' name='feature' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a39' referencedEnd='a358'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a359' name='uniqueKey' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a341' referencedEnd='a360'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a353' name='IndexedFeature' annotation='Instances of the IndexedFeature class map StructuralFeature instances of the spanned Class instance to the Index instances that employ them as (part of) their key. Attributes of IndexedFeature instances indicate how specific StructuralFeature instance are used in Index keys.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a361' name='isAscending' annotation='The isAscending attribute is true if the feature is sorted in ascending order and false, if descending order.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a362' name='feature' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a39' referencedEnd='a363'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a364' name='index' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a348' referencedEnd='a365'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a366' name='IndexedFeatures' annotation='The IndexedFeatures association links StructuralFeature instances to information about how they participate in the keys of Index instances.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a363' name='feature' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a39'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a367' name='indexedFeature' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a353'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a368' name='IndexedFeatureInfo' annotation='The IndexedFeatureInfo association connects an Index instance to information about how the StructuralFeature instances that are constituents of the Index?s key are used by the Index.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a365' name='index' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a348'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a354' name='indexedFeature' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a353'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a369' name='KeyRelationshipFeatures' annotation='The KeyRelationshipFeatures association links KeyRelationship instances with the&#10;&#10;StructuralFeature instances that comprise their key.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a358' name='feature' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a39'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a370' name='keyRelationship' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a345'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a371' name='UniqueFeature' annotation='The UniqueFeature association identifies the Feature instances of a Class instance that confer uniqueness. The ordered constraint is used to determine the order of StructuralFeature instances in the UniqueKey instance.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a343' name='feature' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a39'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a372' name='uniqueKey' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a341'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a373' name='UniqueKeyRelationship' annotation='The UniqueKeyRelationship association links a KeyRelationship with the UniqueKey with which it is paired. For example, in relational model terms, this association links a foreign key -- the KeyRelationship instance -- with the primary key -- the UniqueKey instance -- with which it is paired.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a346' name='keyRelationship' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a345'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a360' name='uniqueKey' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a341'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a374' name='IndexSpansClass' annotation='Associates indexes with the classes they span. This relationship is separate from the ownership of indexes, to allow modeling of systems where an index is NOT owned by the object it spans. In most situations, however, the spanned and owning Class instances will be the same.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a356' name='spannedClass' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a29'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a375' name='index' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a348'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a376' name='SoftwareDeployment' annotation='The Software Deployment package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::Foundation::BusinessInformation&#10;&#10;    org.omg::CWM::Foundation::TypeMapping&#10;&#10;&#10;&#10;The Software Deployment package contains classes to record how the software in a data warehouse is used.&#10;&#10;&#10;&#10;A software package is represented as a SoftwareSystem object, which is a subtype of Subsystem. A SoftwareSystem may reference one or more TypeSystems that define the datatypes supported by the SoftwareSystem. The mappings between datatypes in different TypeSystems may be recorded as TypeMappings, as described in the TypeMapping metamodel.&#10;&#10;&#10;&#10;The separate components of a software package are each represented as Components that are either owned or imported by the SoftwareSystem. When a SoftwareSystem is installed, the deployment is recorded as a DeployedSoftwareSystem and a set of DeployedComponents.&#10;&#10;&#10;&#10;A DeployedComponent represents the deployment of a specific Component on a specific computer. Dependencies between DeployedComponents on the same computer may be documented as Usage dependencies between them.&#10;&#10;&#10;&#10;Individual computers are represented as Machine objects, located at a Site. A Site represents a geographical location, which may be recorded at any relevant level of granularity, e.g. a country, a building, or a room in a building. Hierarchical links between Sites at different levels of granularity may be documented.&#10;&#10;&#10;&#10;A DataManager is a DeployedComponent such as a DBMS or file management system that provides access to data. It may be associated with one or more data Packages identifying the Schema, Relational Catalog, Files or other data containers that it provides access to.&#10;&#10;&#10;&#10;A DataProvider is a DeployedComponent that acts as a client to provide access to data held by a DataManager. For example, an ODBC or JDBC client on a specific Machine would be represented as a DataProvider. A DataProvider may have several ProviderConnections, each identifying a DataManager that may be accessed using the DataProvider.&#10;&#10;&#10;&#10;If a DataProvider uses a name for a data Package that is different from the actual name used by the DataManager, a PackageUsage object can be added to record this. &#10;&#10;&#10;&#10;As a DataProvider is a subtype of DataManager, it is possible for a DataProvider to access data from a DataManager which is actually a DataProvider acting as a client to yet another DataManager.&#10;&#10;&#10;&#10;The model for the Software Deployment package is shown in three diagrams. The first diagram shows the objects related to software deployment, while the second diagram displays the DataManager and DataProvider area of the model. The third diagram shows the inheritance structure for all the classes in the Software Deployment package.&#10;&#10;&#10;&#10;OCL Representation of SoftwareDeployment Constraints&#10;&#10;&#10;&#10;[C-8-1] A PackageUsage must have a single Package (or subtype of Package) as its supplier&#10;&#10;context PackageUsage inv:&#10;&#10;self.supplier-&gt;size=1 and&#10;&#10;self.supplier-&gt;at(1).oclIsKindOf(Package)&#10;&#10;&#10;&#10;[C-8-2] A ProviderConnection must not associate a DataProvider with itself&#10;&#10;context ProviderConnection inv:&#10;&#10;self.dataManager &lt;&gt; self.dataProvider&#10;&#10;&#10;&#10;[C-8-3] A Site must not have a containingSite reference that refers to itself.&#10;&#10;context Site inv:&#10;&#10;self.containingSite -&gt; forAll (c | c &lt;&gt; self)' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a377' name='org.omg.mof.idl_prefix=org.omg.cwm.foundation' annotation='' tagId='org.omg.mof.idl_prefix' elements='a376'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.foundation</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a378' name='org.omg.xmi.namespace=CWM' annotation='' tagId='org.omg.xmi.namespace' elements='a376'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a379' name='Site' annotation='A Site represents a geographical location. It provides a grouping mechanism for a group of machines at the same location.&#10;&#10;&#10;&#10;Sites may be documented at different levels of granularity; containment links may be used to record hierarchical relationships between Sites.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a235'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a380' name='containingSite' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a379' referencedEnd='a381'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a382' name='Machine' annotation='A Machine represents a computer. The Site at which the Machine is located and the Components deployed on the Machine may be recorded.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a19'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a383' name='ipAddress' annotation='A fixed IP address for the Machine.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a384' name='hostName' annotation='A Host Name for the Machine. This may be used to identify the Machine on the network when IP addresses are dynamically allocated.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a385' name='machineID' annotation='An identification code for the Machine.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a386' name='site' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a379' referencedEnd='a387'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a388' name='deployedComponent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a389' referencedEnd='a390'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a391' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a392' name='SoftwareSystem' annotation='A SoftwareSystem represents a specific release of a software product. It consists of a set of software Components.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a33'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a393' name='type' annotation='Identifies the type of the software product. One of the following predefined values should be used if appropriate:&#10;&#10;&#10;&#10;    OS, DBMS, MDDB, FileSystem, ODBC, JDBC or Application.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a394' name='subtype' annotation='This is used in conjunction with the type attribute to provide additional information about the type of the software product.&#10;&#10;&#10;&#10;For some of the predefined types, suggested subtype values are listed below:&#10;&#10;&#10;&#10;   For an Operating System product (type OS):  &#10;&#10;      AIX, Linux, MVS, NT, Solaris, SunOS, VMS or Windows.&#10;&#10;   For a Database Management System product (type DBMS): &#10;&#10;      DB2, DMS II, IMS, Informix, Oracle, SQLServer or Sybase.&#10;&#10;   For a Multidimensional Database product (type MDDB): &#10;&#10;      Essbase or Express.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a395' name='supplier' annotation='The supplier of the software product.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a396' name='version' annotation='The version identification for the software product.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a397' name='typespace' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a398' referencedEnd='a399'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a400' name='TypeMapping' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a401'>
        </Model:Import>
        <Model:Class xmi.id='a389' name='DeployedComponent' annotation='A DeployedComponent represents the deployment of a Component on a specific Machine.&#10;&#10;&#10;&#10;It may represent the deployment of any type of Component. However, if the Component is part of a SoftwareSystem, the DeployedComponent should be part of a DeployedSoftwareSystem.&#10;&#10;&#10;&#10;Usage dependencies may be used to document that one DeployedComponent uses another DeployedComponent.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a402' name='pathname' annotation='A pathname for the DeployedComponent within the Machine?s file system.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a403' name='component' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a404' referencedEnd='a405'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a406' name='machine' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a382' referencedEnd='a407'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a408' name='DeployedSoftwareSystem' annotation='A DeployedSoftwareSystem represents a deployment of a SoftwareSystem.&#10;&#10;&#10;&#10;Its associated DeployedComponents identify the individual Component deployments that constitute the DeployedSoftwareSystem. These DeployedComponents are not necessarily all deployed on the same Machine.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a409' name='softwareSystem' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a392' referencedEnd='a410'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a411' name='DataManager' annotation='A DataManager represents a DeployedComponent that manages access to data. For example, a deployed DBMS or File Management System would be represented as a DataManager.&#10;&#10;&#10;&#10;The DataManager may be associated with one or more data Packages identifying the Schema, Relational Catalog, Files, or other data container that it provides access to.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a389'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a412' name='isCaseSensitive' annotation='Indicates whether or not the DataManager treats lower case letters within object names as being different from the corresponding upper case letters.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a413' name='dataPackage' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a16' referencedEnd='a414'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a415' name='DataProvider' annotation='A DataProvider is a deployed software Component that acts as a client to provide access to data that is managed by another product. For instance, a DataProvider might represent a deployed ODBC or JDBC product.&#10;&#10;&#10;&#10;The DataProvider may have resourceConnection references to ProviderConnections identifying the DataManagers to which it provides access.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a411'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a416' name='resourceConnection' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a417' referencedEnd='a418'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a417' name='ProviderConnection' annotation='A ProviderConnection represents a connection that allows a DataProvider acting as a client to access data from a specific DataManager. For example a ProviderConnection could represent a connection from an ODBC or JDBC client to a DBMS.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a419' name='isReadOnly' annotation='Indicates whether the ProviderConnection only allows read access to the DataManager.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a420' name='dataProvider' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a415' referencedEnd='a421'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a422' name='dataManager' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a411' referencedEnd='a423'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a404' name='Component' annotation='A Component represents a physical piece of implementation of a system, including software code (source, binary or executable) or equivalents such as scripts or command files. A Component is a subtype of Classifier, and so may have its own Features, such as Attributes and Operations.&#10;&#10;&#10;&#10;Deployment of a Component on a specific Machine is represented as a DeployedComponent.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a23'>
        </Model:Class>
        <Model:Class xmi.id='a424' name='PackageUsage' annotation='A PackageUsage represents a usage of a Package. It is particularly relevant in situations where a specific usage uses an alternative name for the Package, as this alternative name can be recorded using the packageAlias attribute.&#10;&#10;&#10;&#10;For example, if a DataProvider representing an ODBC or JDBC client uses a name for a relational database that is different from the dataPackage name used by the RDBMS server, a PackageUsage that has the relevant ProviderConnection as client and the server?s data Package as supplier can be added. Its packageAlias attribute can be used to record the name by which the data Package is known to the DataProvider.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a10'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a425' name='packageAlias' annotation='If this attribute is present, it identifies the name by which the Package is known to the client.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a6'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a426' name='RelatedSites' annotation='This may be used to record hierarchical relationships between Sites.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a381' name='containingSite' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a379'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a427' name='containedSite' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a379'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a428' name='ComponentsOnMachine' annotation='Identifies the Machine on which a DeployedComponent is deployed.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a407' name='machine' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a382'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a390' name='deployedComponent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a389'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a429' name='SiteMachines' annotation='Identifies the Site on which a Machine is located.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a387' name='site' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a379'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a430' name='machine' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a382'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a431' name='DataProviderConnections' annotation='Identifies the ProviderConnections that a DataProvider acting as a client may use.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a421' name='dataProvider' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a415'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a418' name='resourceConnection' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a417'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a432' name='DataManagerConnections' annotation='Identifies the DataManager that is accessed by a ProviderConnection.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a423' name='dataManager' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a411'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a433' name='clientConnection' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a417'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a434' name='SoftwareSystemDeployments' annotation='Identifies the deployments of a SoftwareSystem.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a435' name='deployment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a408'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a410' name='softwareSystem' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a392'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a436' name='DataManagerDataPackage' annotation='This associates the Package(s) containing the definition of the data with the DataManager that is used to access it.&#10;&#10;&#10;&#10;For example, it may be used to associate a Schema, Relational Catalog or File with the DataManager that manages access to it.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a414' name='dataPackage' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a16'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a437' name='dataManager' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a411'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a438' name='DeployedSoftwareSystemComponents' annotation='This association identifies the DeployedComponents that constitute a DeployedSoftwareSystem.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a439' name='deployedSoftwareSystem' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a408'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a440' name='deployedComponent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a389'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a441' name='ComponentDeployments' annotation='This association identifies the deployments of a Component.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a405' name='component' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a404'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a442' name='deployment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a389'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a443' name='SystemTypespace' annotation='A SoftwareSystem?s typespace identifies the TypeSystem(s) containing the datatypes supported by the SoftwareSystem.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a399' name='typespace' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a398'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a444' name='supportingSystem' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a392'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a445' name='BusinessInformation' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a214'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a401' name='TypeMapping' annotation='The TypeMapping package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;&#10;&#10;The TypeMapping package supports the mapping of data types between different systems. The purpose of these mappings is to indicate data types in different systems that are sufficiently compatible that data values can be interchanged between them. Multiple mappings are allowed between any pair of types and a means of identifying the preferred mapping is provided.&#10;&#10;&#10;&#10;OCL Representation of TypeMapping Constraints&#10;&#10;&#10;&#10;[C-8-1] The sourceType and targetType references may not refer to the same&#10;&#10;Classifier instance.&#10;&#10;context TypeMapping inv:&#10;&#10;self.sourceType &lt;&gt; self.targetType&#10;&#10;&#10;&#10;[C-8-2] A TypeSystem may own only Classifiers and TypeMappings.&#10;&#10;context TypeSystem inv:&#10;&#10;self.ownedElement-&gt;forAll( e | e.oclIsKindOf(Classifier) or e.oclIsKindOf(TypeMapping))' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a446' name='org.omg.xmi.namespace=CWM' annotation='' tagId='org.omg.xmi.namespace' elements='a401'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a447' name='org.omg.mof.idl_prefix=org.omg.cwm.foundation' annotation='' tagId='org.omg.mof.idl_prefix' elements='a401'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.foundation</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a448' name='TypeMapping' annotation='TypeMapping instances permit the creation of mappings between data types defined within different environments and are used to indicate data type compatibilities that permit direct assignment of values from one environment (the &quot;source&quot; type) into equivalent values in another environment (the &quot;target&quot; type). For example, an integer field data type in a record-oriented DBMS (the source type) might be mapped to a compatible integer data type in a relational DBMS (the target type).&#10;&#10;&#10;&#10;Whereas the actual transfer of data values between environments is accomplished using the CWM?s Transformation package, TypeMapping instances can be used the identify both the permissible and preferred mappings between data types. Value interchange between a pair of data types is considered permissible if a TypeMapping instance is defined for the pair. A TypeMapping instance is considered the preferred mapping if the instance?s isBestMatch attribute has the value true.&#10;&#10;&#10;&#10;Typically, there will be one TypeMapping Instance between a pair of data types that is considered the preferred mapping. To promote flexible use of this feature, there is no requirement that a preferred TypeMapping instance must be identified between a pair of data types nor are multiple preferred instances prohibited. In these latter cases, however, the precise semantics are usage-defined.&#10;&#10;&#10;&#10;Interchange between data types defined by non-preferred mappings may often function as intended. However, the isLossy boolean may be set to indicate that such interchanges may be subject to validity restrictions in certain circumstances. For example, it may be valid to move data values from a 32-bit integer data type to a 16-bit integer data type as long as the actual values in the 32-bit underlying data type do not exceed the range permitted for 16-bit integers. The CWM Foundation leaves the understanding and handling of such differences to individual tools. If such differences must be modeled, consider using the CWM Transformation package to filter data values during interchange.&#10;&#10;&#10;&#10;TypeMapping instances are unidirectional, so two instances are required to show that a data type pair can be mutually interchanged between environments.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a449' name='isBestMatch' annotation='True if this TypeMapping instance represents the best available mapping between a pair of data types in different software systems.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a450' name='isLossy' annotation='True if this TypeMapping instance may result in a data conversion error if the source data is within certain ranges. For example, storing a 32-bit unsigned integer value into a 16-bit unsigned integer container will result in a data conversion error only when the source data has a value greater than 65535.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a451' name='sourceType' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a452'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a453' name='targetType' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a454'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a455' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a398' name='TypeSystem' annotation='Instances of the TypeSystem class collect together the data types (subclasses of Classifier) defined by a software system and the TypeMapping instances defining how they are mapped to data types in other TypeSystems. TypeMapping instances collected by a TypeSystem instance include both those in which the software system?s data types act as sources and as targets of mappings. Classifiers and TapeMappings are&#10;&#10;maintained in a single collection via the ElementOwnership association but can be distinguished by their respective types.&#10;&#10;&#10;&#10;Because it is a Package, a TypeSystem can also serve to collect together the Classifier instances for a particular software system.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a456' name='version' annotation='A string describing the version identification of the type system represented.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a457' name='MappingSource' annotation='The MappingSource association indicates the underlying Classifier instance of a particular TypeMapping.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a452' name='sourceType' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a458' name='mappingFrom' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a448'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a459' name='MappingTarget' annotation='The MappingTarget association indicates the exposed data type for a particular TypeMapping instance.&#10;&#10;' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a454' name='targetType' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a460' name='mappingTo' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a448'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a461' name='Relational' annotation='The Relational package describes data accessible through a relational interface such as a native RDBMS, ODBC, or JDBC. The Relational package is based on the [SQL] standard section concerning RDBMS catalogs.&#10;&#10;&#10;&#10;The scope of the top level container, Catalog, is intended to cover all the tables a user can use in a single statement. A catalog is also the unit which is managed by a data resource. A catalog contains schemas which themselves contain tables. Tables are made of columns which have an associated data type.&#10;&#10;&#10;&#10;The Relational package uses constructs in the ObjectModel package to describe the object extensions added to SQL by the [SQL] standards. &#10;&#10;&#10;&#10;The Relational package also addresses the issues of indexing, primary keys and foreign keys by extending the corresponding concepts from the Foundation packages.&#10;&#10;&#10;&#10;The Relational package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Behavioral&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::ObjectModel::Instance&#10;&#10;    org.omg::CWM::Foundation::DataTypes&#10;&#10;    org.omg::CWM::Foundation::KeysIndexes&#10;&#10;&#10;&#10;The Relational package references the ObjectModel and Foundation packages.&#10;&#10;&#10;&#10;OCL Representation of Relational Constraints&#10;&#10;&#10;&#10;[C-1] temporaryScope is valid only if the isTemporary is True.&#10;&#10;context Tabl e inv:&#10;&#10;self.temporaryScope.notEmpty implies self.isTemporary=True&#10;&#10;&#10;&#10;[C-2] checkOption is valid only if isReadOnly is False.&#10;&#10;context View inv:&#10;&#10;self.checkOption implies self.isReadOnly=False&#10;&#10;&#10;&#10;[C-3] scale is valid only if precision is specified.&#10;&#10;context Column inv:&#10;&#10;self.scale.nonEmpty implies self.precision.notEmpty' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a462' name='org.omg.xmi.namespace=CWMRDB' annotation='' tagId='org.omg.xmi.namespace' elements='a461'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMRDB</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a463' name='org.omg.mof.idl_prefix=org.omg.cwm.resource' annotation='' tagId='org.omg.mof.idl_prefix' elements='a461'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.resource</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Package xmi.id='a464' name='Enumerations' annotation='The enumerations and datatypes used in the Relational model.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
          <Model:Namespace.contents>
            <Model:DataType xmi.id='a465' name='ActionOrientationType' annotation='Used in Trigger. &#10;&#10;It indicates if the trigger is called once per statement execution or before/after each row of the table is modified.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='ActionOrientationType' xmi.tcId='IDL:org.omg.cwm.resource/Relational/Enumerations/ActionOrientationType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='row'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='statement'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a466' name='ConditionTimingType' annotation='Used in Triggers.&#10;&#10;It indicates if the trigger activity is run before or after the statement or row is modified.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='ConditionTimingType' xmi.tcId='IDL:org.omg.cwm.resource/Relational/Enumerations/ConditionTimingType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='before'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='after'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a467' name='DeferrabilityType' annotation='Used in Foreign Keys&#10;&#10;Indicates if the Foreign Key validation should be deferred to the end of the transaction or executed immadiately at the end of the statement.&#10;&#10;This is the value used at the beginning of a transaction. It can be changed within a transaction.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='DeferrabilityType' xmi.tcId='IDL:org.omg.cwm.resource/Relational/Enumerations/DeferrabilityType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='initiallyDeferred'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='initiallyImmediate'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='notDeferrable'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a468' name='EventManipulationType' annotation='Used in Trigger.&#10;&#10;Indicates what types of events are using the current Trigger. &#10;&#10;' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='EventManipulationType' xmi.tcId='IDL:org.omg.cwm.resource/Relational/Enumerations/EventManipulationType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='insert'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='delete'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='update'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a469' name='NullableType' annotation='Used in Column.&#10;&#10;Indicates if a Column may contain null values.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='NullableType' xmi.tcId='IDL:org.omg.cwm.resource/Relational/Enumerations/NullableType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='columnNoNulls'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='columnNullable'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='columnNullableUnknown'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a470' name='ProcedureType' annotation='Used in Procedure.&#10;&#10;Indicates if the Procedure is a Function or a Procedure' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='ProcedureType' xmi.tcId='IDL:org.omg.cwm.resource/Relational/Enumerations/ProcedureType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='procedure'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='function'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a471' name='ReferentialRuleType' annotation='Used in Foreign Key.&#10;&#10;It indicates the action taken on the row containing a foreign key value, when the primary key value referenced is deleted or updated.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='ReferentialRuleType' xmi.tcId='IDL:org.omg.cwm.resource/Relational/Enumerations/ReferentialRuleType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='importedKeyNoAction'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='importedKeyCascade'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='importedKeySetNull'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='importedKeyRestrict'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='importedKeySetDefault'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
          </Model:Namespace.contents>
        </Model:Package>
        <Model:Class xmi.id='a472' name='Catalog' annotation='A Catalog is the unit of logon and identification. It also identifies the scope of SQL statements: the tables contained in a catalog can be used in a single SQL statement.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a473' name='defaultCharacterSetName' annotation='The name of the default character set used for the values in the column.&#10;&#10;This field applies only to columns whose datatype is a character string.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a474' name='defaultCollationName' annotation='The name of the default collation sequence used to sort the data values in the column.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a475' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a476' name='Schema' annotation='A schema is a named collection of tables' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
        </Model:Class>
        <Model:Class xmi.id='a477' name='ColumnSet' annotation='A set of columns, representing either the result of a query, a view or a physical table.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
        </Model:Class>
        <Model:Tag xmi.id='a478' name='org.omg.IDL Substitute Name=RelationalColumnSet' annotation='' tagId='org.omg.IDL Substitute Name' elements='a477'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>RelationalColumnSet</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a479' name='org.omg.mof.idl_substitute_name=CwmColumnSet' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a477'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CwmColumnSet</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a480' name='NamedColumnSet' annotation='A catalogued set of columns, which may be Table or View.&#10;&#10;&#10;&#10;Note for typed tables: It is assumed that the typed table will own a set of columns conforming to the type they are OF. This set of columns allows the manipulation of the table by products which ignore this [SQL] extension. It also allows the columns of type REF, to be copied to a column with a SCOPE reference.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a477'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a481' name='optionScopeColumn' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a482' referencedEnd='a483'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a484' name='type' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a485' referencedEnd='a486'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a487' name='usingTrigger' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a488' referencedEnd='a489'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a490' name='Table' annotation='A materialized NamedColumnSet.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a480'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a491' name='isTemporary' annotation='Indicates that the table content is temporary. SQL92 standards provide two types of temporary tables (local Temporary and Global Temporary). However, RDBMS products have implemented variations on this theme. It is recommended that the product manufacturers provide specific temporary information (besides the temporaryScope attribute) in their extensions. ' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a492' name='temporaryScope' annotation='This attribute is meaningful only when the isTemporary flag is True [C-1]. The scope indicates when the data of this table are available. &quot;SESSION&quot;, &quot;APPLICATION&quot; are examples of possible values. Look at the Scope attribute for Global Temporary tables in the SQL standards for more details.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a493' name='trigger' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a488' referencedEnd='a494'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Attribute xmi.id='a495' name='isSystem' annotation='Indicates that the Table is a System Table (generally part of or view on the system catalog).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a496' name='View' annotation='A view is a non-materialized set of rows, defined by the associated query.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a480'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a497' name='isReadOnly' annotation='Indicates whether the underlying tables can be updated through an update to this View.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a498' name='checkOption' annotation='This field is meaningful only if the view is not ReadOnly. CheckOption indicates that the RDBMS will validate that changes made to the data verify the view filtering condition and belong to the view result set.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a499' name='queryExpression' annotation='The query associated with the View.&#10;&#10;&#10;&#10;The query result must match the set of Columns associated with the View (in parent class ColumnSet)' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a293'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a500' name='DataTypes' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a280'>
        </Model:Import>
        <Model:Class xmi.id='a501' name='QueryColumnSet' annotation='The result set of a query.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a477'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a502' name='query' annotation='The query expression generating this result. The language attribute of the expression should generally begin with &quot;SQL&quot;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a293'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a503' name='SQLDataType' annotation='A SQLDataType is used to reference any datatype associated with a column' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a23'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a504' name='typeNumber' annotation='The number assigned to the datatype by the owning RDBMS' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a505' name='SQLDistinctType' annotation='A datatype defined as a Distinct Type, per [SQL] standard.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a503 a295'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a506' name='length' annotation='The length of fixed length character or byte strings. Maximum length if length is&#10;&#10;variable.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a507' name='precision' annotation='The total number of digits in the field' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a508' name='scale' annotation='The number of digits on the right of the decimal separator.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a509' name='sqlSimpleType' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a510' referencedEnd='a511'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a510' name='SQLSimpleType' annotation='A simple datatype used with an SQL column. Examples are Integer, Varchar, LOB, CLOB, etc...' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a503 a30'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a512' name='characterMaximumLength' annotation='See [SQL], corresponding field in DATA_TYPE_DESCRIPTOR' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a513' name='characterOctetLength' annotation='See [SQL], corresponding field in DATA_TYPE_DESCRIPTOR' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a514' name='numericPrecision' annotation='See [SQL], corresponding field in DATA_TYPE_DESCRIPTOR' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a515' name='numericPrecisionRadix' annotation='See [SQL], corresponding field in DATA_TYPE_DESCRIPTOR' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a516' name='numericScale' annotation='See [SQL], corresponding field in DATA_TYPE_DESCRIPTOR' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a517' name='dateTimePrecision' annotation='See [SQL], corresponding field in DATA_TYPE_DESCRIPTOR' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a485' name='SQLStructuredType' annotation='A Datatype defined as Structured Type, per [SQL] standard.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a503 a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a518' name='referencingColumn' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a482' referencedEnd='a519'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a520' name='columnSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a480' referencedEnd='a521'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a482' name='Column' annotation='A column in a result set, a view, a table, or an SQLStructuredType.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a522' name='precision' annotation='The total number of digits in the field.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a523' name='scale' annotation='The number of digits on the right of the decimal separator.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a524' name='isNullable' annotation='Indicates if null values are valid in this column.&#10;&#10;&#10;&#10;Note: Default values for Column data are provided in initialValue in the UML Attribute class (the class from which the Column class inherits).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a469'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a525' name='length' annotation='The length of fixed length character or byte strings. Maximum length if length is variable.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a526' name='collationName' annotation='The name of the collation sequence used to sort the data values in the column.&#10;&#10;This applies only to columns whose datatype is a form of character string.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a527' name='characterSetName' annotation='The name of the character set used for the values in the column.&#10;&#10;This field applies only to columns whose datatype is a character string.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a528' name='optionScopeColumnSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a480' referencedEnd='a529'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a530' name='referencedTableType' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a485' referencedEnd='a531'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a532' name='Procedure' annotation='This class describes Relational DBMS Stored procedures and functions.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a141'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a533' name='type' annotation='A Procedure can be either a Function or a true Procedure. This indicates whether this object returns a value or not.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a470'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a488' name='Trigger' annotation='An action run by the DBMS when specified events occur on the table owning the Trigger' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a534' name='eventManipulation' annotation='Indicates what types of events are using the current Trigger.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a468'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a535' name='actionCondition' annotation='A boolean expression which defines when the trigger has to be executed' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a53'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a536' name='actionStatement' annotation='The Trigger action itself' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a65'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a537' name='actionOrientation' annotation='It indicates if the trigger is called once per statement execution or before or after each row of the table is modified.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a465'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a538' name='conditionTiming' annotation='It indicates if the trigger activity is run before or after the statement or row is modified.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a466'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a539' name='conditionReferenceNewTable' annotation='The alias for the owning table name, used in the actionStatement, to represent the state of the table after the insert/delete/update' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a540' name='conditionReferenceOldTable' annotation='The alias for the name of the owning table, used in the actionStatement, to represent the state of the table before the update/delete/insert.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a541' name='table' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a490' referencedEnd='a542'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a543' name='usedColumnSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a480' referencedEnd='a544'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a545' name='SQLIndex' annotation='An Index on a table.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a348'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a546' name='filterCondition' annotation='Which subset of the table is indexed' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a547' name='isNullable' annotation='Entries in this index can be null' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a548' name='autoUpdate' annotation='The index is updated automatically' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a549' name='UniqueConstraint' annotation='A condition to define uniqueness of rows in a table. An example of UniqueConstraint is a primary key' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a341'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a550' name='deferrability' annotation='Indicates if the validity of the UniqueConstraint is to be tested at each statement or at the end of a transaction.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a467'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a551' name='ForeignKey' annotation='A Foreign Key associates columns from one table with columns of another table.&#10;&#10;&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a345'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a552' name='deleteRule' annotation='An enumerated type. Indicates the disposition of the data records containing the foreign key value when the record of the matching primary key is deleted.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a471'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a553' name='updateRule' annotation='Same as deleteRule for updates of the primary key data record' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a471'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a554' name='deferrability' annotation='Indicates if the validity of the ForeignKey is to be tested at each statement or at the end of a transaction.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a467'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a555' name='SQLIndexColumn' annotation='Associates an index with its columns.&#10;&#10;&#10;&#10;This is really an association (link) class. It is associated with one index and one column.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a353'>
        </Model:Class>
        <Model:Class xmi.id='a556' name='PrimaryKey' annotation='There is only one UniqueConstraint of type PrimaryKey per Table. It is implemented specifically by each RDBMS.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a549'>
        </Model:Class>
        <Model:Class xmi.id='a557' name='Row' annotation='An instance of a ColumnSet.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a194'>
        </Model:Class>
        <Model:Class xmi.id='a558' name='ColumnValue' annotation='The value in a column instance.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a200'>
        </Model:Class>
        <Model:Class xmi.id='a559' name='CheckConstraint' annotation='A rule that specifies the values allowed in one or more columns of every row of a table.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a13'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a560' name='deferrability' annotation='Indicates the timing of the constraint enforcement during multiple-user updates.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a467'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a561' name='RowSet' annotation='Each instance of RowSet owns a collection of Row instances. The inherited association between Namespace (a superclass of Package) and ModelElement is used to contain Instances.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a205'>
        </Model:Class>
        <Model:Tag xmi.id='a562' name='org.omg.mof.idl_substitute_name=CwmRowSet' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a561'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CwmRowSet</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a563' name='SQLParameter' annotation='Parameters of stored procedures.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a129'>
        </Model:Class>
        <Model:Association xmi.id='a564' name='TriggerUsingColumnSet' annotation='This associates a Trigger with the NamedColumnSets it uses in its expressions.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a544' name='usedColumnSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a480'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a489' name='usingTrigger' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a488'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a565' name='TableOwningTrigger' annotation='Associates a Table with its Triggers. The Trigger will be activated when an action is performed on the Table.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a542' name='table' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a490'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a494' name='trigger' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a488'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a566' name='ColumnSetOfStructuredType' annotation='Associates structured types with NamedColumnSets defined of this type.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a486' name='type' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a485'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a521' name='columnSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a480'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a567' name='ColumnRefStructuredType' annotation='Associates Columns of a StructuredType with the Type they reference in the REF clause' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a531' name='referencedTableType' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a485'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a519' name='referencingColumn' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a482'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a568' name='ColumnOptionsColumnSet' annotation='Associates Columns with NamedColumnSets they reference in their OPTIONS clause.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a483' name='optionScopeColumn' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a482'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a529' name='optionScopeColumnSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a480'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a569' name='DistinctTypeHasSimpleType' annotation='' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a570' name='sqlDistinctType' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a505'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a511' name='sqlSimpleType' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a510'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a571' name='Behavioral' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a116'>
        </Model:Import>
        <Model:Import xmi.id='a572' name='Instance' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a185'>
        </Model:Import>
        <Model:Import xmi.id='a573' name='KeysIndexes' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a338'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a574' name='Record' annotation='The Record package covers the basic concept of a record and its structure. The package takes a broad view of the notion of record, including both traditional data records such as those stored in files and databases, as well as programming language structured data types. In fact, the concepts described here can be used as a foundation for extension packages describing any information structure that is fundamentally hierarchical, or &quot;nested,&quot; in nature such as documents, questionnaires, and organizational structures.&#10;&#10;&#10;&#10;The Record package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::ObjectModel::Instance&#10;&#10;&#10;&#10;Because of the antiquity of many record-based models, individual system implementations employing record models may have unusual features (such as occurs-depending arrays, various COBOL rename/remapping semantics, etc.) that are not shared with other implementations. When such features are limited to single&#10;&#10;implementations or languages, they have been purposefully left out of the Record metamodel. Rather, unusual features of this sort should be placed into extension packages designed to meet the needs of those implementations or languages. For example, record structuring features endemic to the COBOL language have been placed in the COBOLData metamodel in the CWMX package described in Volume 2 and do not appear here. In this way, COBOL-only features do not burden other record oriented implementations unnecessarily.&#10;&#10;&#10;&#10;OCL Representation of Record Constraints&#10;&#10;&#10;&#10;[C-1] The owner of a Field and the type of a Field may not refer to the same Classifier instance.&#10;&#10;context Field inv:&#10;&#10;self.owner &lt;&gt; self.type&#10;&#10;&#10;&#10;[C-2] The scale attribute is valid only if the precision attribute is specified.&#10;&#10;context Field inv:&#10;&#10;self.scale-&gt;notEmpty implies self.precision-&gt;notEmpty&#10;&#10;&#10;&#10;[C-3] The precision attribute is valid only if the length attribute is not specified.&#10;&#10;context Field inv:&#10;&#10;self.precision-&gt;notEmpty implies self.length-&gt;isEmpty::filely one' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a575' name='org.omg.xmi.namespace=CWMREC' annotation='' tagId='org.omg.xmi.namespace' elements='a574'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMREC</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a576' name='org.omg.mof.idl_prefix=org.omg.cwm.resource' annotation='' tagId='org.omg.mof.idl_prefix' elements='a574'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.resource</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a577' name='Field' annotation='A Field is the fundamental information container within a RecordDef. It holds one piece of information, which may itself have structure. The inherited associations StructuralFeatureType and ElementOwnership provide access to a Field instance?s type and owning classifier, respectively.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a578' name='length' annotation='The length of a fixed length character or byte string field.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a579' name='precision' annotation='The total number of digits in a numeric field.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a580' name='scale' annotation='The number of digits on the right of the decimal separator in a numeric field.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a581' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a582' name='RecordDef' annotation='A RecordDef is an ordered collection of Fields representing the structure of a Record.&#10;&#10;&#10;&#10;Examples of RecordDefs include definitions of&#10;&#10;&#10;&#10;    language-specific data structures&#10;&#10;    database records&#10;&#10;    IMS segments&#10;&#10;&#10;&#10;The internal structure of a RecordDef instance is constructed by adding Field instances as features (using the ElementOwnership association) and pointing each Field instance?s inherited type reference to the Classifier instance representing the Field?s data type. The referenced instance can be either a primitive data type (an instance of DataType, such as &quot;integer&quot;) or a structured data type (such as a Group instance).&#10;&#10;&#10;&#10;Refer to the example for more details of the relationships between RecordDefs, Fields, Records, and their values.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a583' name='fieldDelimiter' annotation='The value of a fieldDelimiter used to separate field values in an input stream.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a584' name='isFixedWidth' annotation='True if the record is fixed length. Otherwise, the record can be of variable length.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a585' name='textDelimiter' annotation='The delimiter of a text string in the record, such as a quote.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a586' name='file' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a587' referencedEnd='a588'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a589' name='FixedOffsetField' annotation='Instances of FixeOffsetField represent fields that have a fixed location in a record.&#10;&#10;&#10;&#10;FixedOffsetFields can be used as a foundation for recording details of physical record layouts and as a means of representing the internal structure of undiscriminated (ie, C-type) unions.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a577'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a590' name='offset' annotation='Specifies the offset of the field within its container in units of the number of bits indicated in the offsetUnitBits attribute.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a591' name='offsetUnitBits' annotation='The number of bits making up one record offset unit. For example, for a byte-relative offset, the value of this attribute would typically be 8.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a587' name='RecordFile' annotation='A RecordFile is the definition of a file. It may have one or more RecordDefs, defining the structure of the records in the file. Each of these RecordDefs defines a valid structure for records in the file. Subclasses of RecordFile in extensions to support specific languages and systems may be used to represent specific types of files such as COBOL CopyLib files and C-language header files.&#10;&#10;&#10;&#10;Physical deployments of a RecordFile can be found via the DataManagerDataPackage association in the SoftwareDeployment package .' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a592' name='isSelfDescribing' annotation='True if the contents of fields in the first record of the file contain field names applicable to subsequent records.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a593' name='recordDelimiter' annotation='Contains the value that serves as a logical end-of-record indication in a stream-oriented file. A common examples include the usage of carriage-return characters and carriage-return/line-feed character pairs as new-line characters in ASCII text files.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a594' name='skipRecords' annotation='The number of records to ignore at the beginning of a file. The specific semantics of records that are skipped may be beyond the scope of CWM.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a595' name='record' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a582' referencedEnd='a596'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a597' name='FieldValue' annotation='The value currently held in a Field instance.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a200'>
        </Model:Class>
        <Model:Class xmi.id='a598' name='Record' annotation='A Record, a subclass of Object, represents a single data record. Each Record is described by a RecordDef instance found via the Object?s InstanceClassifier association.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a194'>
        </Model:Class>
        <Model:Class xmi.id='a599' name='RecordSet' annotation='A RecordSet represents a collection of Record instances.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a205'>
        </Model:Class>
        <Model:Tag xmi.id='a600' name='org.omg.mof.idl_substitute_name=CwmRecordSet' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a599'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CwmRecordSet</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a601' name='Group' annotation='A Group is a structured data type and is used to collect together Field instances within a Record. Groups can be used in RecordDef instances as shown in the foregoing example.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a23'>
        </Model:Class>
        <Model:Association xmi.id='a602' name='RecordToFile' annotation='A Record definition can appy to records stored in a RecordFile.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a588' name='file' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a587'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a596' name='record' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a582'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a603' name='Instance' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a185'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a604' name='Multidimensional' annotation='The CWM Multidimensional metamodel is a generic representation of a multidimensional database.&#10;&#10;&#10;&#10;Multidimensional databases are OLAP databases that are directly implemented by multidimensional database systems. In a multidimensional database, key OLAP constructs (dimensions, hierarchies, etc.) are represented by the internal data structures of a ultidimensional database server, and common OLAP operations (consolidation, drill-down, etc.) are performed by the server acting on those data structures. &#10;&#10;&#10;&#10;Multidimensional databases are often classified as &quot;physical OLAP&quot; or &quot;MOLAP&quot; (memory-based OLAP) databases.&#10;&#10;&#10;&#10;Multidimensional databases offer enhanced performance and flexibility over OLAP systems that simulate multidimensional functionality using other technologies (e.g., relational database or spreadsheet):&#10;&#10;&#10;&#10;Performance: Multidimensional databases provide rapid consolidation times and formula calculations, and consistent query response times regardless of query complexity. This is accomplished, in part, through the use of efficient cell storage techniques and highly-optimized index paths.&#10;&#10;&#10;&#10;Flexibility: The specification and use of multidimensional schemas and queries (including the design of cubes, dimensions, hierarchies, member formulas, the manipulation of query result sets, etc.) can be accomplished in a relatively straight-forward manner, since the server directly supports (and exposes) the multidimensional paradigm.&#10;&#10;&#10;&#10;The CWM Multidimensional metamodel does not attempt to provide a complete representation of all aspects of commercially available, multidimensional databases. Unlike relational database management systems, multidimensional databases tend to be proprietary in structure, and there are no published, widely agreed upon, standard representations of the logical schema of a multidimensional database. Therefore, the CWM Multidimensional Database metamodel is oriented toward complete generality of specification. Tool-specific extensions to the metamodel are relatively easy to formulate, and several examples are provided in Volume 2, Extensions, of the CWM Specification.&#10;&#10;&#10;&#10;The Multidimensional package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::ObjectModel::Instance&#10;&#10;&#10;&#10;The major classes and associations of the Multidimensional metamodel are shown in Figure 11-1.&#10;&#10;&#10;&#10;Schema is the container of all elements comprising a Multidimensional model. It also represents the logical unit of deployment of a Multidimensional database instance.&#10;&#10;Dimension represents a physical dimension in a Multidimensional database. Whereas&#10;&#10;the OLAP metamodel defines ?dimension? as a purely conceptual entity, this&#10;&#10;Dimension represents the dimension object exposed by the programming model of a&#10;&#10;Multidimensional database.&#10;&#10;A Dimension may reference other instances of Dimension to form arbitrarily complex&#10;&#10;dimensional structures (e.g., hierarchies with varying levels of detail).&#10;&#10;&#10;&#10;DimensionedObject represents an attribute of Dimension. Examples of DimensionedObjects include measures (variables), formulas, consolidation functions, member alias names, etc. DimensionedObjects are contained by the Schema and referenced by the Dimensions that use them. &#10;&#10;&#10;&#10;MemberSet represents the collection of Members associated with an instance of Dimension, and MemberValue represents an instance value of a Member. MemberSet, Member and MemberValue enable the specification and interchange of both M1-level Multidimensional models and associated M0-level data values.&#10;&#10;&#10;&#10;Figure 11-2 illustrates the inheritance of the Multidimensional classes from metaclasses of the Object Model.&#10;&#10;&#10;&#10;OCL Representation of Multidimensional Constraints&#10;&#10;&#10;&#10;[C-1] A Dimension may not reference itself as a component, nor as a composite.&#10;&#10;context Dimension&#10;&#10;inv: self.component-&gt;excludes( self )&#10;&#10;inv: self.composite-&gt;excludes( self )&#10;&#10;&#10;&#10;The transitive closure of components of an instance of Dimension must not include the&#10;&#10;Dimension instance.&#10;&#10;&#10;&#10;The transitive closure of composites of an instance of Dimension must not include the&#10;&#10;Dimension instance.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a605' name='org.omg.xmi.namespace=CWMMDB' annotation='' tagId='org.omg.xmi.namespace' elements='a604'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMMDB</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a606' name='org.omg.mof.idl_prefix=org.omg.cwm.resource' annotation='' tagId='org.omg.mof.idl_prefix' elements='a604'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.resource</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a607' name='Dimension' annotation='Dimension represents physical dimension in a multidimensional database (e.g., a dimension object defined by the programming model/API of an OLAP database server). Tool-specific extensions to the Multidimensional package will generally contain classes that derive from Dimension.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a608' name='dimensionedObject' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a609' referencedEnd='a610'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a611' name='component' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a607' referencedEnd='a612'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a613' name='composite' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a607' referencedEnd='a614'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a615' name='memberSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a616' referencedEnd='a617'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a618' name='schema' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a619' referencedEnd='a620'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a621' name='org.omg.mof.idl_substitute_name=CwmDimension' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a607'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CwmDimension</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a609' name='DimensionedObject' annotation='DimensionedObject represents an attribute of Dimension.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a622' name='dimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a607' referencedEnd='a623'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a624' name='schema' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a619' referencedEnd='a625'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a626' name='Member' annotation='Member represents a member of a Dimension.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a194'>
        </Model:Class>
        <Model:Class xmi.id='a616' name='MemberSet' annotation='MemberSet represents the collection of Members associated with an instance of Dimension.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a205'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a627' name='dimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a607' referencedEnd='a628'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a629' name='org.omg.mof.idl_substitute_name=CwmMemberSet' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a616'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CwmMemberSet</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a630' name='MemberValue' annotation='MemberValue represents an instance value of a Member.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a200'>
        </Model:Class>
        <Model:Class xmi.id='a619' name='Schema' annotation='Schema contains all elements comprising a Multidimensional database.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a631' name='dimensionedObject' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a609' referencedEnd='a632'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a633' name='dimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a607' referencedEnd='a634'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a635' name='DimensionsReferenceDimensionedObjects' annotation='A Dimension may reference several instances of DimensionedObject. A DimensionedObject may be referenced by several Dimensions.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a623' name='dimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a607'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a610' name='dimensionedObject' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a609'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a636' name='CompositesReferenceComponents' annotation='A Dimension may reference other instances of Dimension in order to derive more complex dimensional structures.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a614' name='composite' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a607'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a612' name='component' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a607'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a637' name='MDSchemaOwnsDimensionedObjects' annotation='A Multidimensional Schema may own any number of DimensionedObjects.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a632' name='dimensionedObject' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a609'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a625' name='schema' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a619'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a638' name='MDSchemaOwnsDimensions' annotation='A Multidimensional Schema may own any number of Dimensions.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a634' name='dimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a607'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a620' name='schema' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a619'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a639' name='DimensionOwnsMemberSets' annotation='A Dimension may own any number of MemberSets.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a617' name='memberSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a616'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a628' name='dimension' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a607'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a640' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Import xmi.id='a641' name='Instance' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a185'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a642' name='XML' annotation='XML is rapidly becoming a very important type of data resource, especially in the Internet environment. On the one hand, HTML is evolving to be XML-compliant; in the near future, all HTML documents can be expected to become valid XML documents. On the other hand, XML is quickly becoming the standard format for interchange of data and/or metadata (e.g., XMI). Therefore, XML documents (or streams) representing data and/or metadata can be expected to appear everywhere. &#10;&#10;&#10;&#10;The XML package contains classes and associations that represent common metadata describing XML data resources. It is based on XML 1.0 [XML]. XML Schema is an ongoing activity in the W3C. As future standards are adopted by the W3C on XML Schema, this package will be revised and extended accordingly.&#10;&#10;&#10;&#10;This section provides a description of the main features of the XML package.&#10;&#10;&#10;&#10;An XML schema contains a set of definitions and declarations, in the form of XML element type definitions. An XML element type may contain a set of XML attributes and/or a content model. An attribute can have one of the following defaults: required, implied, default, or fixed. The content model can be one of the following types: empty, any, mixed, or element. Except for the empty content model, a content model consists of constituent parts, particularly element type references. The allowed occurrence of the constituents can be one of the following types: one, zero or one, zero or more, or&#10;&#10;one or more.&#10;&#10;&#10;&#10;An any content model consists of any element types. A mixed content model consists of character data and specified element type references. An element content model consists of specified element type references and/or element content models. An element content model can be one of the following types: choice or sequence.&#10;&#10;&#10;&#10;The XML package depends on the following packages:&#10;&#10;&#10;&#10;    omg.org::CWM::ObjectModel::Core&#10;&#10;    omg.org::CWM::ObjectModel::Instance&#10;&#10;    omg.org::CWM::Foundation::DataTypes&#10;&#10;&#10;&#10;The metamodel diagram for the XML package is split into two parts. The first diagram shows the XML classes and associations, while the second shows the inheritance hierarchy.&#10;&#10;&#10;&#10;OCL Representation of XML Constraints&#10;&#10;&#10;&#10;   None' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a643' name='org.omg.xmi.namespace=CWMXML' annotation='' tagId='org.omg.xmi.namespace' elements='a642'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMXML</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a644' name='org.omg.mof.idl_prefix=org.omg.cwm.resource' annotation='' tagId='org.omg.mof.idl_prefix' elements='a642'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.resource</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a645' name='Schema' annotation='This represents an XML schema which contains a set of definitions and declarations. In XML, this is known as document type definition, or DTD, which provides a grammar for a class of documents.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a646' name='version' annotation='Identifies the version of the XML.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a647' name='xmlNamespace' annotation='Identifies the XML namespace of the Schema.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a648' name='elementType' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a22'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a649' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a650' name='ElementType' annotation='This represents an XML element type definition. In XML, each document contains one or more elements. The element structure may, for validation purposes, be constrained using element type and attribute declarations. An element type declaration constrains the element?s content.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a651' name='schema' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a19' referencedEnd='a20'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a652' name='attribute' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a27' referencedEnd='a28'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a653' name='content' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a654' referencedEnd='a655'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a656' name='org.omg.mof.idl_substitute_name=xmlAttribute' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a652'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>xmlAttribute</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a657' name='Attribute' annotation='This represents an XML attribute declaration. In XML, attributes are used to associate name-value pairs with elements. Each attribute declaration specifies the name, data type, and default value (if any) of each attribute associated with a given element type.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a658' name='defaultKind' annotation='Identifies the kind of attribute default.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a659'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a660' name='elementType' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a38'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a661' name='org.omg.IDL Substitute Name=XmlAttribute' annotation='' tagId='org.omg.IDL Substitute Name' elements='a657'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>XmlAttribute</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a662' name='org.omg.mof.idl_substitute_name=XmlAttribute' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a657'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>XmlAttribute</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a654' name='Content' annotation='This represents the content model of an ElementType. In XML, each document contains one or more elements, the boundaries of which are normally delimited by start-tags and end-tags. The body between the start-tag and end-tag is called the element?s content. An element type declaration constrains the element?s content.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a663' name='type' annotation='Identifies the type of the content model.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a664'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a665' name='occurrence' annotation='Identifies the allowed occurrence of the content constituents.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a666'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a667' name='elementType' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a650' referencedEnd='a668'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a669' name='ownedElementType' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a670' referencedEnd='a671'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a672' name='ElementContent' annotation='This represents an element content which contains only ElementTypeReferences. In XML, an element type has element content when elements of that type must contain only child elements (no character data), optionally separated by white space. In this case, the constraint includes a content model that governs the allowed types of the child elements and the order in which they are allowed to appear.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a654'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a673' name='order' annotation='Identifies the order type of the element content.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a674'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a675' name='ownedContent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a672' referencedEnd='a676'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a677' name='ownerContent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a672' referencedEnd='a678'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a679' name='MixedContent' annotation='This represents a mixed content of character data and ElementTypeReferences. In XML, an element type has mixed content when elements of that type may contain character data, optionally interspersed with child elements. In this case, the types of the child elements may be constrained, but not their order or their number of occurrences.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a654'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a680' name='text' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a681' referencedEnd='a682'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:DataType xmi.id='a659' name='AttributeDefault' annotation='required, implied, default, fixed' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='AttributeDefault' xmi.tcId='IDL:org.omg.cwm.resource/XML/AttributeDefault:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_required'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_implied'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_default'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_fixed'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a683' name='org.omg.xmi.enumerationUnprefix=xml_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a659 a664 a666 a674'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>xml_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:DataType xmi.id='a664' name='ContentType' annotation='empty, any, mixed, element' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='ContentType' xmi.tcId='IDL:org.omg.cwm.resource/XML/ContentType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_empty'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_any'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_mixed'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_element'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a666' name='OccurrenceType' annotation='one, zeroOrOne, zeroOrMore, OneOrMore' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='OccurrenceType' xmi.tcId='IDL:org.omg.cwm.resource/XML/OccurrenceType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_one'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_zeroOrOne'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_zeroOrMore'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_oneOrMore'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a674' name='ElementOrderType' annotation='choice, sequence' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='ElementOrderType' xmi.tcId='IDL:org.omg.cwm.resource/XML/ElementOrderType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_choice'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='xml_sequence'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Class xmi.id='a670' name='ElementTypeReference' annotation='This represents an XML element type reference. In XML, an element content or a mixed content of an element type may contain references to element type definitions.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a684' name='occurrence' annotation='Identifies the allowed occurrence of the ElementTypeReference.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a666'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a685' name='ownerContent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a654' referencedEnd='a686'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a681' name='Text' annotation='This represents character data. In XML, a mixed content of an element type may contain text.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a687' name='ownerContent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a679' referencedEnd='a688'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a689' name='Element' annotation='This represents an instance of an ElementType.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a194'>
        </Model:Class>
        <Model:Tag xmi.id='a690' name='org.omg.mof.idl_substitute_name=XmlElement' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a689'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>XmlElement</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a691' name='Document' annotation='This represents an XML document, which is a collection of XML Elements.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a205'>
        </Model:Class>
        <Model:Association xmi.id='a692' name='ElementTypeContent' annotation='This association relates an ElementType with its Content.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a655' name='content' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a654'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a668' name='elementType' annotation='' isNavigable='true' aggregation='shared' isChangeable='true' type='a650'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a693' name='OwnedElementContent' annotation='This association relates an ElementContent with its constituent ElementContents.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a678' name='ownerContent' annotation='' isNavigable='true' aggregation='shared' isChangeable='true' type='a672'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a676' name='ownedContent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a672'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a694' name='ContentElementTypeReference' annotation='This association relates a Content with its constituent ElementTypeReferences.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a671' name='ownedElementType' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a670'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a686' name='ownerContent' annotation='' isNavigable='true' aggregation='shared' isChangeable='true' type='a654'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a695' name='MixedContentText' annotation='This association relates a MixedContent with its Text.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a682' name='text' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a681'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a688' name='ownerContent' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a679'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a696' name='Instance' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a185'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a697' name='Transformation' annotation='A key aspect of data warehousing is to extract, transform, and load data from&#10;&#10;operational resources to a data warehouse or data mart for analysis. Extraction,&#10;&#10;transformation, and loading can all be characterized as transformations. In fact,&#10;&#10;whenever data needs to be converted from one form to another in data warehousing,&#10;&#10;whether for storage, retrieval, or presentation purposes, transformations are involved.&#10;&#10;Transformation, therefore, is central to data warehousing.&#10;&#10;The Transformation package contains classes and associations that represent common&#10;&#10;transformation metadata used in data warehousing. It covers basic transformations&#10;&#10;among all types of data sources and targets: object-oriented, relational, record,&#10;&#10;multidimensional, XML, OLAP, and data mining.&#10;&#10;The Transformation package is designed to enable interchange of common metadata about transformation tools and activities. Specifically it is designed to: &#10;&#10;&#10;&#10;1. Relate a transformation with its data sources and targets. These data sources and targets can be of any type (e.g., object-oriented, relational) or granularity (e.g., class, attribute, table, column). They can be persistent (e.g., stored in a relational database) or transient.&#10;&#10;&#10;&#10;2. Accommodate both &quot;black box&quot; and &quot;white box&quot; transformations. In the case of &quot;black box&quot; transformations, data sources and targets are related to a transformation and to each other at a coarse-grain level. We know the data sources and targets are related through the transformation, but we don?t know how a specific piece of a data source is related to a specific piece of a data target. In the case of &quot;white box&quot; transformations, however, data sources and targets are related to a transformation and to each other at a fine-grain level. We know exactly how a specific piece of a data source is related to a specific piece of a data target through a specific part of the transformation.&#10;&#10;&#10;&#10;3. Allow grouping of transformations into logical units. At the functional level, a logical unit defines a single unit of work, within which all transformations must be executed and completed together. At the execution level, logical units can be used to define the execution grouping and sequencing (either explicitly through precedence constraints or implicitly through data dependencies). A key consideration here is that both parallel and sequential executions (or a combination of both) can be accommodated.&#10;&#10;&#10;&#10;The Transformation package assumes the existence of the following packages that represent types of potential data sources or targets: ObjectModel (object-oriented), Relational, Record, Multidimensional, XML, OLAP, and Data Mining. The Transformation package is an integral part of the following packages: OLAP, Data Mining, Warehouse Process, and Warehouse Operation. In particular, the Transformation and Warehouse Process packages together provide metamodel constructs that facilitate scheduling and execution in data warehousing, and the Transformation and Warehouse Operation packages together provide metamodel constructs that enable data lineage in data  warehousing.&#10;&#10;&#10;&#10;This section provides a description of the main features of the Transformation package,&#10;&#10;as illustrated in Figure 13-1 (see specification document for figure).&#10;&#10;&#10;&#10;A transformation transforms a set of source objects into a set of target objects. The elements of a data object set can be any ObjectModel model elements, but typically are tables, columns, or model elements that represent transient, in memory, objects. Data object sets can be both sources and targets for different transformations. In particular, a given data object set can be the target of one transformation and the source of one or more transformations within the same logical unit. This is often the case with transformation that produce and consume temporary objects. &#10;&#10;&#10;&#10;Transformations allow a wide range of types (and granularity) to be defined for their data sources and targets. For example, the source type of a transformation can be an XML schema while the target type is a column, if the transformation deals with storing an XML document in a column of a relational database. More typically, the source types of a transformation are classes and attributes while the target types are tables and columns, or vice versa, if the transformation deals with converting object data into relational data, or vice versa.&#10;&#10;&#10;&#10;Existing programs, queries, or rules (in fact, any ObjectModel operations) can be used to perform a transformation by associating them with the transformation using the transformation use dependency.&#10;&#10;&#10;&#10;Transformations can be grouped into logical units. At the functional level, they are grouped into transformation tasks, each of which defines a set of transformations that must be executed and completed together - a logical unit of work. At the execution level, transformation steps are used to coordinate the flow of control between transformation tasks, with each transformation step executing a single transformation task. The transformation steps are further grouped into transformation activities.&#10;&#10;Within each transformation activity, the execution sequence of its transformation steps are defined either explicitly by using the step precedence dependency or precedence constraint, or implicitly through data dependency.&#10;&#10;&#10;&#10;There are certain &quot;white-box&quot; transformations which are commonly used and which can relate data sources and targets to a transformation and to each other at a detailed level. These transformations are convenient to use and they provide data lineage at a fine-grain level. One such transformation is the transformation map which consists of a set of classifier maps that in turn consists of a set of feature maps or classifier-feature maps. The other is the transformation tree, which represents a transformation as an unary or binary expression tree. For an example usage of the transformation map, please see Figure 13-4.&#10;&#10;&#10;&#10;The Transformation package depends on the following packages: &#10;&#10;&#10;&#10;    omg.org::CWM::ObjectModel::Behavioral&#10;&#10;    omg.org::CWM::ObjectModel::Core&#10;&#10;    omg.org::CWM::Foundation::Expressions&#10;&#10;    omg.org::CWM::Foundation::SoftwareDeployment&#10;&#10;&#10;&#10;The CWM uses packages to control complexity and create groupings of logically interrelated classes and associations. The Transformation package is one such package. Within the Transformation package itself, however, the definition of subpackages is purposefully left out to reduce the length and complexity of the fully qualified names of Transformation classes and associations. There are, however, several groupings of classes and associations that form related sets of functionality within the Transformation package. Although separate subpackages have not been created for these functional areas, their identification improves the understandability of the Transformation package.&#10;&#10;&#10;&#10;The Transformation package contains metamodel elements that support the following functions:&#10;&#10;&#10;&#10;1. Transformation and data lineage. These classes and associations deal with transformations and their sources, targets, constraints, and operations.&#10;&#10;&#10;&#10;2. Transformation grouping and execution. These classes and associations deal with grouping of transformations to form logical units and to define execution sequences.&#10;&#10;&#10;&#10;3. Specialized transformations. These classes and associations define specialized, &quot;white box&quot;, transformations that are commonly used in data warehousing. The specific Transformation classes and associations supporting each functional area are delineated in Table 13-1 (see specification document for table).&#10;&#10;&#10;&#10;The metamodel diagram for the Transformation package is split into four parts. The first two diagrams show the Transformation classes and associations, while the last two show the inheritance hierarchy.&#10;&#10;&#10;&#10;13.5 OCL Representation of Transformation Constraints&#10;&#10;&#10;&#10;[C-1] The preceding step and succeeding step of StepPrecedence must not be the same.&#10;&#10;context StepPrecedence&#10;&#10;inv: self.precedingStep-&gt;forAll( p | self.succeedingStep-&gt;forAll( q | p &lt;&gt; q ) )&#10;&#10;&#10;&#10;[C-2] A TransformationTask may not be its own inverse task.&#10;&#10;Identifies the Transformation&#10;&#10;context TransformationTask&#10;&#10;inv: self.inverseTask-&gt;forAll( p | p &lt;&gt; self )&#10;&#10;&#10;&#10;[C-3] A TransformationTask may not be its own original task.&#10;&#10;context TransformationTask&#10;&#10;inv: self.originalTask-&gt;forAll( p | p &lt;&gt; self )&#10;&#10;&#10;&#10;[C-4] The ClassifierMapToCFMap association is derived from the Namespace-ModelElement association. All ownedElement ends of the association must be ClassifierFeatureMaps.&#10;&#10;context ClassifierMapToCFMap&#10;&#10;inv Namespace-ModelElement.allInstances.select( ownedElement.oclIsKindOf(&#10;&#10;ClassifierFeatureMap ) )&#10;&#10;&#10;&#10;[C-5] The ClassifierMapToFeatureMap association is derived from the Namespace-ModelElement association. All ownedElement ends of the association must be FeatureMaps.&#10;&#10;context ClassifierMapToFeatureMap&#10;&#10;inv Namespace-ModelElement.allInstances.select( ownedElement.oclIsKindOf(&#10;&#10;FeatureMap ) )' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a698' name='org.omg.xmi.namespace=CWMTFM' annotation='' tagId='org.omg.xmi.namespace' elements='a697'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMTFM</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a699' name='org.omg.mof.idl_prefix=org.omg.cwm.analysis' annotation='' tagId='org.omg.mof.idl_prefix' elements='a697'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.analysis</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a700' name='Transformation' annotation='This represents a transformation from a set of sources to a set of targets. &#10;&#10;&#10;&#10;If a model already exists for the object that performs the Transformation, then the model can be related to the Transformation via a TransformationUse dependency.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a19'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a701' name='function' annotation='Any code or script for the Transformation.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a65'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a702' name='functionDescription' annotation='A short description for any code or script performed by the Transformation.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a703' name='isPrimary' annotation='This Transformation is the primary transformation for the associated TransformationTask.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a704' name='source' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a705' referencedEnd='a706'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a707' name='target' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a705' referencedEnd='a708'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a709' name='use' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a10' referencedEnd='a11'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a710' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a705' name='DataObjectSet' annotation='This represents a set of data objects that can be the source or target of a Transformation.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a711' name='element' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a712'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a713' name='sourceTransformation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a700' referencedEnd='a714'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a715' name='targetTransformation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a700' referencedEnd='a716'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a717' name='TransformationTask' annotation='This represents a set of Transformations that must be executed together as a single task (logical unit).&#10;&#10;&#10;&#10;A TransformationTask may have an inverse task. A transformation task that maps a source set &quot;A&quot; into a target set &quot;B&quot; can be reversed by the inverse transformation task that maps &quot;B&quot; into &quot;A&quot;.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a404'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a718' name='transformation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a700' referencedEnd='a719'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a720' name='inverseTask' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a717' referencedEnd='a721'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a722' name='originalTask' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a717' referencedEnd='a723'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a724' name='TransformationStep' annotation='This represents the usage of a TransformationTask in a TransformationActivity. A TransformationStep relates to one TransformationTask. &#10;&#10;&#10;&#10;TransformationSteps are used to coordinate the flow of control between their TransformationTasks. Ordering of the TransformationSteps are defined using the PrecedenceConstrainedBy dependency.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a725' name='task' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a717' referencedEnd='a726'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a727' name='activity' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a19' referencedEnd='a20'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a728' name='precedence' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a13' referencedEnd='a14'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a729' name='precedingStep' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a10' referencedEnd='a11'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a730' name='succeedingStep' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a10' referencedEnd='a101'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a731' name='TransformationActivity' annotation='This represents a transformation activity. Each TransformationActivity consists of a set&#10;&#10;of TransformationSteps.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a33'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a732' name='creationDate' annotation='When the TransformationActivity was created.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a733' name='step' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a22'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a734' name='PrecedenceConstraint' annotation='This is used to define order-of-execution constraint among TransformationSteps. It may be used independent of or in conjunction with StepPrecedence.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a13'>
        </Model:Class>
        <Model:Class xmi.id='a735' name='TransformationUse' annotation='This is a specialized dependency used to associate a Transformation to the model of an existing object (e.g., program, query, or rule) that performs the transformation.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a10'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a736' name='type' annotation='Identifies the type of object that can perform the transformation.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a737' name='transformation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a60'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a738' name='operation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a62'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a739' name='TransformationMap' annotation='This represents a specialized Transformation which consists of a group of ClassifierMaps.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a700'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a740' name='classifierMap' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a22'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a741' name='TransformationTree' annotation='This represents a specialized Transformation which can be modeled as an expression tree. ' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a700'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a742' name='type' annotation='Identifies the type of TransformationTree, which can be unary or binary.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a743'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a744' name='body' annotation='Identifies the expression tree that embodies the TransformationTree.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a745' name='Expressions' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a310'>
        </Model:Import>
        <Model:Class xmi.id='a746' name='ClassifierMap' annotation='This represents a mapping of source Classifiers to target Classifiers. A ClassifierMap may consists of a group of ClassifierFeatureMaps and/or FeatureMaps.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a19'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a747' name='function' annotation='Any code or script for the ClassifierMap.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a65'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a748' name='functionDescription' annotation='A short description for any code or script performed by the ClassifierMap.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a749' name='source' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a750'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a751' name='target' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a752'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a753' name='transformationMap' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a19' referencedEnd='a20'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a754' name='featureMap' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a755' referencedEnd='a756'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a757' name='cfMap' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a758' referencedEnd='a759'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a755' name='FeatureMap' annotation='This represents a mapping of source Features to target Features.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a760' name='function' annotation='Any code or script for the FeatureMap.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a65'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a761' name='functionDescription' annotation='A short description for any code or script performed by the FeatureMap.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a762' name='source' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a27' referencedEnd='a763'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a764' name='target' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a27' referencedEnd='a765'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a766' name='classifierMap' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a746' referencedEnd='a767'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:DataType xmi.id='a743' name='TreeType' annotation='unary, binary' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='TreeType' xmi.tcId='IDL:org.omg.cwm.analysis/Transformation/TreeType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='tfm_unary'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='tfm_binary'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a768' name='org.omg.xmi.enumerationUnprefix=tfm_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a743'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>tfm_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a769' name='StepPrecedence' annotation='This is used to define explicit order-of-execution relationships among TransformationSteps. It may be used independent of or in conjunction with PrecedenceConstraint' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a10'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a770' name='precedingStep' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a62'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a771' name='succeedingStep' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a60'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a758' name='ClassifierFeatureMap' annotation='This represents a mapping of Classifiers to Features.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a772' name='function' annotation='Any code or script for the FeatureMap.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a65'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a773' name='functionDescription' annotation='A short description for any code or script performed by the FeatureMap.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a774' name='classifierToFeature' annotation='Identifies if the mapping is from Classifiers (source) to Features (target). The default is true.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a775' name='classifier' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a776'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a777' name='feature' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a27' referencedEnd='a778'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a779' name='classifierMap' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a746' referencedEnd='a780'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a781' name='TransformationSource' annotation='This association relates a Transformation to its sources.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a714' name='sourceTransformation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a700'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a706' name='source' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a705'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a782' name='TransformationTarget' annotation='This association relates a Transformation to its targets.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a716' name='targetTransformation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a700'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a708' name='target' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a705'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a783' name='TransformationStepTask' annotation='This association relates a TransformationStep to its TransformationTask.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a784' name='step' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a724'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a726' name='task' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a717'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a785' name='InverseTransformationTask' annotation='This association relates a TransformationTask to its inverse. A transformation task that maps a source set &quot;A&quot; into a target set &quot;B&quot; can be reversed by the inverse transformation task that maps &quot;B&quot; into &quot;A&quot;' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a723' name='originalTask' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a717'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a721' name='inverseTask' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a717'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a786' name='DataObjectSetElement' annotation='This association relates a DataObjectSet to its elements.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a712' name='element' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a787' name='set' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a705'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a788' name='TransformationTaskElement' annotation='This association relates a TransformationTask to its Transformations.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a789' name='task' annotation='' isNavigable='true' aggregation='shared' isChangeable='true' type='a717'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a719' name='transformation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a700'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a790' name='ClassifierMapToFeatureMap' annotation='This association relates a ClassifierMap to its FeatureMaps.&#10;&#10;&#10;&#10;This association is derived from the Namespace-ModelElement association. All ownedElement ends of the association must be FeatureMaps. [C-5]' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a756' name='featureMap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a755'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a767' name='classifierMap' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a746'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a791' name='ClassifierMapToCFMap' annotation='This association relates a ClassifierMap to its ClassifierFeatureMaps.&#10;&#10;&#10;&#10;This association is derived from the Namespace-ModelElement association. All ownedElement ends of the association must be ClassifierFeatureMaps. [C-4]' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a759' name='cfMap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a758'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a780' name='classifierMap' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a746'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a792' name='ClassifierMapSource' annotation='This association relates a ClassifierMap to its source Classifiers.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a750' name='source' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a793' name='classifierMap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a746'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a794' name='ClassifierMapTarget' annotation='This association relates a ClassifierMap to its target Classifiers.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a752' name='target' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a795' name='classifierMap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a746'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a796' name='FeatureMapTarget' annotation='This association relates an FeatureMap to its target Features.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a765' name='target' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a27'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a797' name='featureMap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a755'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a798' name='FeatureMapSource' annotation='This association relates an FeatureMap to its source Features.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a763' name='source' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a27'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a799' name='featureMap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a755'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a800' name='CFMapClassifier' annotation='This association relates a ClassifierFeatureMap to its source/target Features.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a776' name='classifier' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a801' name='cfMap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a758'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a802' name='CFMapFeature' annotation='Identifies the ClassifierFeatureMap' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a778' name='feature' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a27'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a803' name='cfMap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a758'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a804' name='SoftwareDeployment' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a376'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a805' name='Olap' annotation='Online Analytical Processing (OLAP) is a class of analytic application software that exposes business data in a multidimensional format. This multidimensional format usually includes the consolidation of data drawn from multiple and diverse information sources. Unlike more traditionally structured representations (e.g., the tabular format of a relational database), the multidimensional orientation is a more natural expression of the way business enterprises view their strategic data. For example, an analyst might use an OLAP application to examine total sales revenue by product and geographic region over time, or, perhaps, compare sales margins for the same fiscal periods of two consecutive years. The ultimate objective of OLAP is the efficient construction of analytical models that transform raw business data into strategic business insight.&#10;&#10;&#10;&#10;There are many ways to implement OLAP. Most OLAP systems are constructed using OLAP server tools that enable logical OLAP structures to be built on top of a variety of physical database systems, such as relational or native multidimensional databases.&#10;&#10;&#10;&#10;The following features are generally found in most OLAP systems:&#10;&#10;&#10;&#10;    Multidimensional representation of business data.&#10;&#10;    Upward consolidation of multidimensional data in a hierarchical manner, possibly with the application of specialized processing rules.&#10;&#10;    The ability to navigate a hierarchy from a consolidated value to the lower level values forming it.&#10;&#10;    Support for time-series analysis; i.e., OLAP users are generally concerned with data and consolidations at specific points in time -- By date, week, quarter, etc.&#10;&#10;    Support for modeling and scenario analysis -- A user should be able to apply arbitrary &quot;what-if&quot; analyses to a result set without affecting the stored information.&#10;&#10;    Consistent response times, regardless of how queries are formulated -- This is critical for effective analysis and modeling.&#10;&#10;&#10;&#10;OLAP applications integrate well into the data warehousing environment, because a data warehouse provides relatively clean and stable data stores to drive the OLAP application. These data stores are usually maintained in relational tables that can be read directly by OLAP tools or loaded into OLAP servers. These relational tables are often structured in a manner that reveals the inherent dimensionality of the data (such as the ubiquitous Star and Snowflake schemas). Also, the data transformation and mapping services provided by a data warehouse can be used to supply OLAP systems with both metadata and data. Transformation-related metadata can be used to track the&#10;&#10;lineage of consolidated OLAP data back to its various sources.&#10;&#10;&#10;&#10;The primary objectives of the CWM OLAP package are:&#10;&#10;&#10;&#10;    Define a metamodel of essential OLAP concepts common to most OLAP systems.&#10;&#10;    Provide a facility whereby instances of the OLAP metamodel are mapped to deployment-capable structures (i.e., models of physical data resources, such as the CWM Relational and Multidimensional packages).&#10;&#10;    Ensure that navigation through the logical OLAP model hierarchy and its various resource models is always performed in a uniform manner (i.e., by defining a standard usage of the CWM Transformation package as a means of implementing these mappings).&#10;&#10;    Leverage services provided by other CWM packages, where appropriate (e.g., use the CWM Foundation package to supply a standard representation of expressions).&#10;&#10;&#10;&#10;The OLAP package depends on the following packages:&#10;&#10;&#10;&#10;   org.omg::CWM::ObjectModel::Core&#10;&#10;   org.omg::CWM::Foundation::Expressions&#10;&#10;   org.omg::CWM::Analysis::Transformation&#10;&#10;&#10;&#10;The major classes and associations of the OLAP metamodel are shown in Figure 14-1.  Schema is the logical container of all elements comprising an OLAP model. It is the root element of the model hierarchy and marks the entry point for navigating OLAP models.&#10;&#10;&#10;&#10;A Schema contains Dimensions and Cubes. A Dimension is an ordinate within a multidimensional structure and consists of a list of unique values (i.e., members) that share a common semantic meaning within the domain being modeled. Each member designates a unique position along its ordinate.&#10;&#10;&#10;&#10;A Cube is a collection of analytic values (i.e., measures) that share the same dimensionality. This dimensionality is specified by a set of unique Dimensions from the Schema. Each unique combination of members in the Cartesian product of the Cube?s Dimensions identifies precisely one data cell within a multidimensional structure.&#10;&#10;&#10;&#10;CubeDimensionAssociation relates a Cube to its defining Dimensions. Features relevant to Cube-Dimension relationships (e.g., calcHierarchy) are exposed by this class.&#10;&#10;&#10;&#10;A Dimension has zero or more Hierarchies. A Hierarchy is an organizational structure that describes a traversal pattern through a Dimension, based on parent/child relationships between members of a Dimension. Hierarchies are used to define both navigational and consolidation/computational paths through the Dimension (i.e., a value associated with a child member is aggregated by one or more parents). For example, a Time Dimension with a base periodicity of days might have a Hierarchy&#10;&#10;specifying the consolidation of days into weeks, weeks into months, months into quarters, and quarters into years.&#10;&#10;&#10;&#10;A specific Hierarchy may be designated as the default Hierarchy for display purposes (e.g., a user interface that displays the Dimension as a hierarchical tree of members).  CubeDimensionAssociation can also identify a particular Hierarchy as the default Hierarchy for consolidation calculations performed on the Cube.&#10;&#10;&#10;&#10;MemberSelection models mechanisms capable of partitioning a Dimension?s collection of members. For example, consider a Geography Dimension with members representing cities, states, and regions. An OLAP client interested specifically in cities might define an instance of MemberSelection that extracts the city members.&#10;&#10;&#10;&#10;CubeRegion models a sub-unit of a Cube that is of the same dimensionality as the Cube itself. Each &quot;dimension&quot; of a CubeRegion is represented by a MemberSelection of the corresponding Dimension  of the Cube. Each MemberSelection may define some subset of its Dimension?s members.&#10;&#10;&#10;&#10;CubeRegions are used to implement Cubes. A Cube may be realized by a set of CubeRegions that map portions of the logical Cube to physical data sources. The MemberSelections defining CubeRegions can also be grouped together via MemberSelectionGroups, enabling the definition of CubeRegions with specific semantics. For example, one can specify a CubeRegion containing only the &quot;input level&quot; data cells of a Cube.&#10;&#10;&#10;&#10;A CubeRegion may own any number of CubeDeployments. CubeDeployment is a metaclass that represents an implementation strategy for a multidimensional structure. The ordering of the CubeDeployment classes may optionally be given some implementation-specific meaning (e.g., desired order of selection of several possible deployment strategies, based on optimization considerations).&#10;&#10;&#10;&#10;The OLAP metamodel defines two special types of Dimension: Time and Measure. A Time Dimension provides a means of representing time-series data within a multidimensional structure. The members of a Time Dimension usually define some base periodicity (e.g., days of the week). The implementation of a Time Dimension might provide support for advanced &quot;time-intelligent&quot; functionality, such as the ability to automatically convert between different periodicities and calendars.&#10;&#10;&#10;&#10;The members of a Measure Dimension describe the meaning of the analytic values stored in each data cell of a multidimensional structure. For example, an OLAP application may define Sales, Quantity and Weight as its measures. In this case, each data cell within the Cube stores three values, with each value corresponding to one of the three measures. A measure may have an associated data type. For example, Sales might be of a monetary type, Quantity an integer, and Weight a real number.&#10;&#10;&#10;&#10;The OLAP metamodel specifies two subclasses of Hierarchy: LevelBasedHierarchy and ValueBasedHierarchy.&#10;&#10;&#10;&#10;LevelBasedHierarchy describes hierarchical relationships between specific levels of a Dimension. LevelBasedHierarchy is used to model both &quot;pure level&quot; hierarchies (e.g., dimension-level tables) and &quot;mixed&quot; hierarchies (i.e., levels plus linked nodes). Dimensional levels are modeled by the Level class, a subclass of MemberSelection that partitions a Dimension?s members into disjoint subsets, each representing a distinct level.&#10;&#10;&#10;&#10;For example, the Geography Dimension cited earlier contains members representing cities, states, and regions, such as &quot;Stamford&quot;, &quot;Connecticut&quot;, and &quot;NorthEast&quot;. It might also contain a single member called &quot;USA&quot; representing all regions of the United States. Therefore, the Geography Dimension could have four Levels named &quot;City&quot;, &quot;State&quot;, &apos;Region&quot;, and &quot;ALL&quot;, respectively. Each Level specifies the subset of members belonging to it: All cities belong to the &quot;City&quot; Level, all states belong to the &quot;State&quot; Level, all regions belong to the &quot;Region&quot; Level, and the single &quot;USA&quot; member belongs to the &quot;ALL&quot; Level.&#10;&#10;&#10;&#10;When used in the definition of a consolidation path, the meaning of &quot;level&quot; is quite clear: Members occupying a given Level consolidate into the next higher Level (e.g., City rolls up into State, State into Region, and Region into ALL).&#10;&#10;&#10;&#10;LevelBasedHierarchy contains an ordered collection of HierarchyLevelAssocations that defines the natural hierarchy of the Dimension. The ordering defines the hierarchical structure in top-down fashion (i.e., the &quot;first&quot; HierarchyLevelAssociation in the ordered collection represents the upper-most level of the dimensional hierarchy).&#10;&#10;&#10;&#10;A HierarchyLevelAssociation may own any number of DimensionDeployments. DimensionDeployment is a metaclass that represents an implementation strategy for hierarchical Dimensions. The ordering of the DimensionDeployment classes may optionally be given an implementation-specific meaning (e.g., desired order of selection of several possible deployment strategies, based on optimization&#10;&#10;considerations).&#10;&#10;&#10;&#10;A ValueBasedHierarchy defines a hierarchical ordering of members in which the concept of level has little or no significance. Instead, the topological structure of the hierarchy conveys meaning. ValueBasedHierarchies are often used to model situations where members are classified or ranked according to their distance from a common root member (e.g., an organizational chart of a corporation). In this case, each member of the hierarchy has some specific &quot;metric&quot; or &quot;value&quot; associated it with it. ValueBasedHierarchy can be used to model pure &quot;linked node&quot; hierarchies (e.g.,&#10;&#10;asymmetric hierarchical graphs or parent-child tables). &#10;&#10;&#10;&#10;As with LevelBasedHierarchy, ValueBasedHierarchy also has an ordered collection of dimensionDeployments, where the ordering semantics are left to implementations to define.&#10;&#10;&#10;&#10;Figure 14-3 illustrates how classes of the OLAP metamodel inherit from the CWM&#10;&#10;Object Model. Two classes requiring further explanation are:&#10;&#10;&#10;&#10;    Measure: A subclass of Attribute that describes the meaning of values stored in the data cells of a multidimensional structure. Different OLAP models often give different interpretations to the term &quot;measure&quot;. In a relational Star Schema, individual measures might be represented by non-key columns of a Fact table (e.g., &quot;Sales&quot; and &quot;Quantity&quot; columns). In this case, measure may be an attribute of a Cube or CubeRegion that models the Fact table. On the other hand, measures can&#10;&#10;also be represented by members of a Measure Dimension. A Fact table supporting this representation has a single Measure column with column values consisting of the members &quot;Sales&quot; and &quot;Quantity&quot;, and a single &quot;value&quot; column (i.e., an implicit data dimension) storing the corresponding measure values. A similar notion of Measure Dimension is used in modeling pure hypercube representations of&#10;&#10;multidimensional servers. Thus, the concept of measure can be represented either as a Dimenson or as an Attribute, depending on the type of OLAP system being modeled.&#10;&#10;&#10;&#10;    Coded Level: A subclass of Level that assigns a unique encoding, or label, to each of its members. CodedLevel is not essential to the OLAP metamodel, but is provided as a helper class for certain applications that might benefit from the ability of OLAP systems to structure data hierarchically. For example, CodedLevel could be used to model systems of nomenclature or classification.&#10;&#10;&#10;&#10;The CWM OLAP metamodel describes logical models of OLAP systems, but does not directly specify how an OLAP system is physically deployed. Modeling the deployment of an OLAP system requires mapping instances of OLAP metaclasses to instances of other CWM metaclasses representing physical resources (e.g., mapping an OLAP Dimension to a Relational Table). This approach offers several advantages:&#10;&#10;&#10;&#10;    The status of the OLAP metamodel as a conceptual model is preserved by this level of indirection. When using OLAP, a client may perceive to be working directly with OLAP objects, but the actual implementation of those objects is hidden from the client. For example, a client may view a member as a value of a Dimension, but whether that member value comes from a row of a relational table, or from a cell in a multidimensional database, is usually not obvious to the client. On the other hand, if a client needs to determine how a logical OLAP structure is physically realized, the metadata describing this mapping is fully available (assuming that the implementation allows the client to drill-down through the metadata).&#10;&#10;&#10;&#10;    The possibility of defining mappings based on expressions means that the amount of metadata required to describe large models (e.g., Dimensions containing large collections of members) can be kept within reasonable bounds. It is generally more efficient to provide expressions that specify where large metadata sets reside, how to connect to them, and how to map their contents, rather than representing them directly as part of the metadata content.&#10;&#10;&#10;&#10;All of the OLAP metaclasses are potential candidates for such deployment mappings. In addition, some OLAP models may also define mappings between several OLAP metaclass instances, forming a natural hierarchy of logical objects (e.g., Dimension Attributes are mapped to Level Attributes which, in turn, are mapped to Table Columns).&#10;&#10;&#10;&#10;The CWM Transformation package is used as the primary means of describing these mappings. A modeler constructing an OLAP model based on CWM will generally define instances of the TransformationMap metaclass to link logical OLAP objects together, and to link those logical objects to other objects representing their physical data sources.&#10;&#10;&#10;&#10;StructureMap is a subclass of TransformationMap that models structure-oriented transformation mappings (i.e., member identity and hierarchical structure). This type of transformation mapping needs to be connected to the OLAP metamodel in a very specific way (according to Level and Hierarchy), so the StructureMap subclass is defined to make these associations explicit. Two specific usages of StructureMap are defined: ListOfValues, which maps attributes identifying members residing at a specific Level, or at a specific Level within a particular Hierarchy, and ImmediateParent, which maps attributes identifying the hierarchical parent(s) of the members.&#10;&#10;&#10;&#10;On the other hand, relatively simple TransformationMaps can be defined within any OLAP model to represent attribute-oriented transformations (e.g., mapping Dimension Attributes to Table Columns that store attribute values).&#10;&#10;&#10;&#10;ContentMap is a subclass of TransformationMap that models content-oriented transformaton mappings (i.e., cell data or measure values). For example, an instance of ContentMap might be used to map each of a CubeRegion?s Measures to Columns of an underlying Fact Table.&#10;&#10;&#10;&#10;Note that, in either case (structural mapping or content mapping), the traversal patterns used by any CWM OLAP implementation are always the same, since both deployment mappings are based on the same usage of CWM TransformationMaps. In addition to representing structural mappings, instances of TransformationMap and its subclasses are also capable of storing implementation-dependent functions or procedures that yield the instance values associated with mapped model elements. For example, a &quot;list of values&quot; StructureMap might store an SQL statement such as &quot;select memberName from Product where productFamily = ?consumerElectronics? &quot;, as the value of its formula attribute.&#10;&#10;&#10;&#10;Figure 14-4 illustrates the CWM metaclasses and associations that describe deployment mappings between logical OLAP models and physical resource models. Note that it is possible to combine both Cube (content) and Dimension (structure) deployments together within the context of a single OLAP Schema (via the DeploymentGroup metaclass). Thus, an OLAP Schema can have several possible deployments that users may select based on implementation-specific considerations (e.g., physical optimizations).&#10;&#10;&#10;&#10;OCL Representation of OLAP Constraints&#10;&#10;&#10;&#10;[C-1] Ensure that the Dimensions defining a Cube are unique.&#10;&#10;context Cube inv:&#10;&#10;self.cubeDimensionAssociation-&gt;forAll( c1, c2 | c1 &lt;&gt; c2 implies&#10;&#10;c1.dimension &lt;&gt; c2.dimension )&#10;&#10;&#10;&#10;[C-2] A Cube without CubeRegions cannot be mapped to a deployment structure (i.e., physical source of data).&#10;&#10;context Cube inv:&#10;&#10;self.cubeRegion-&gt;isEmpty implies self.isVirtual = true&#10;&#10;&#10;&#10;[C-3] If a calcHierarchy is defined, it must be a Hierarchy owned by the Dimension referenced by the CubeDimensionAssociation.&#10;&#10;context CubeDimensionAssociation inv:&#10;&#10;self.calcHierarchy-&gt;notEmpty implies self.calcHierarchy.dimension = self.dimension&#10;&#10;&#10;&#10;[C-4] A &quot;fully realized&quot; CubeRegion has no MemberSelectionGroups (and hence, no MemberSelections).&#10;&#10;context CubeRegion inv:&#10;&#10;self.isFullyRealized implies self.memberSelectionGroup-&gt;isEmpty&#10;&#10;&#10;&#10;[C-5] A CubeRegion defined by MemberSelections must have, for each Dimension of its owning Cube, a corresponding MemberSelection within each of its&#10;&#10;MemberSelectionGroups.&#10;&#10;context CubeRegion inv:&#10;&#10;self.memberSelectionGroup-&gt;notEmpty implies&#10;&#10;self.cube.cubeDimensionAssociation-&gt;forAll( d |&#10;&#10;self.memberSelectionGroup-&gt;forAll( g |&#10;&#10;g.memberSelection-&gt;exists( m | m.dimension = d.dimension ) ) )&#10;&#10;&#10;&#10;[C-6] A CubeRegion defined by MemberSelections must have, within each MemberSelectionGroup, a MemberSelection corresponding to each Dimension of its&#10;&#10;owning Cube.&#10;&#10;context CubeRegion inv:&#10;&#10;self.memberSelectionGroup-&gt;notEmpty implies&#10;&#10;self.memberSelectionGroup-&gt;forAll( g |&#10;&#10;g.memberSelection-&gt;forAll( m |&#10;&#10;self.cube.cubeDimensionAssociation-&gt;exists( d | d.dimension = m.dimension ) ) )&#10;&#10;&#10;&#10;[C-7] A Dimension may be a Time Dimension, a Measure Dimension, or neither, but never both types at the same time.&#10;&#10;context Dimension inv:&#10;&#10;not ( self.isTime and self.isMeasure )&#10;&#10;&#10;&#10;[C-8] The default display Hierarchy (if defined) must be one of the Hierarchies owned by the Dimension.&#10;&#10;context Dimension inv:&#10;&#10;self.displayDefault-&gt;notEmpty implies self.hierarchy-&gt;includes( self.displayDefault )&#10;&#10;&#10;&#10;[C-9] An instance of DimensionDeployment must be referenced exclusively by either a HierarchyLevelAssociation or a ValueBasedHierarchy.&#10;&#10;context DimensionDeployment inv:&#10;&#10;self.hierarchyLevelAssociation-&gt;isEmpty xor self.valueBasedHierarchy-&gt;isEmpty&#10;&#10;&#10;&#10;[C-10] Within a DimensionDeployment, an &quot;immediate parent&quot; StructureMap must always have an associated and distinct &quot;list of values&quot; StructureMap.&#10;&#10;context DimensionDeployment inv:&#10;&#10;self.immediateParent-&gt;notEmpty implies&#10;&#10;( self.listOfValues-&gt;notEmpty and self.listOfValues &lt;&gt; self.immediateParent )&#10;&#10;&#10;&#10;[C-11] A StructureMap referenced as a &quot;list of values&quot; StructureMap must not reside outside of the DimensionDeployment?s collection of StructureMaps.&#10;&#10;context DimensionDeployment inv:&#10;&#10;self.listOfValues-&gt;notEmpty implies self.structureMap-&gt;includes( self.listOfValues )&#10;&#10;&#10;&#10;[C-12] A StructureMap referenced as an &quot;immediate parent&quot; StructureMap must not reside outside of the DimensionDeployment?s collection of StructureMaps.&#10;&#10;context DimensionDeployment inv:&#10;&#10;self.immediateParent-&gt;notEmpty implies&#10;&#10;self.structureMap-&gt;includes( self.immediateParent )&#10;&#10;&#10;&#10;[C-13] The currentLevel of each HierarchyLevelAssociation must refer to a Level owned by the Dimension of the LevelBasedHierarchy containing the HierarchyLevelAssociation.&#10;&#10;context LevelBasedHierarchy inv:&#10;&#10;self.hierarchyLevelAssociation-&gt;notEmpty implies&#10;&#10;self.hierarchyLevelAssociation-&gt;forAll( h |&#10;&#10;self.dimension.memberSelection&#10;&#10;-&gt;select( oclType = Olap::Level )-&gt;includes( h.currentLevel ) )&#10;&#10;&#10;&#10;[C-14] No two HierarchyLevelAssociations may designate the same Level instance as their &quot;current level&quot;.&#10;&#10;context LevelBasedHierarchy inv:&#10;&#10;self.hierarchyLevelAssociation-&gt;forAll( h1, h2 | h1 &lt;&gt; h2 implies&#10;&#10;h1.currentLevel &lt;&gt; h2.currentLevel )' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a806' name='org.omg.xmi.namespace=CWMOLAP' annotation='' tagId='org.omg.xmi.namespace' elements='a805'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMOLAP</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a807' name='org.omg.mof.idl_prefix=org.omg.cwm.analysis' annotation='' tagId='org.omg.mof.idl_prefix' elements='a805'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.analysis</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a808' name='ContentMap' annotation='ContentMap is a subclass of TransformationMap that maps CubeRegion attributes to their physical data sources.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a739'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a809' name='cubeDeployment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a810' referencedEnd='a811'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a812' name='Cube' annotation='A Cube is a collection of analytic values (i.e., measures) that share the same dimensionality.  This dimensionality is specified by a set of unique Dimensions from the Schema.  Each unique combination of members in the Cartesian product of the Cube?s Dimensions identifies precisely one data cell within a multidimensional structure.&#10;&#10;&#10;&#10;Synonyms: Multidimensional Array, Hypercube, Hypervolume.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a813' name='isVirtual' annotation='If true, then this Cube is a Virtual Cube (i.e., it has no physical realization).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a814' name='cubeDimensionAssociation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a815' referencedEnd='a816'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a817' name='cubeRegion' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a818' referencedEnd='a819'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a820' name='schema' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a821' referencedEnd='a822'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a823' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a810' name='CubeDeployment' annotation='CubeDeployment represents a particular implementation strategy for the data portions of an OLAP model.  It does so by organizing a collection of ContentMaps, which in turn define a mapping to an implementation model.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a824' name='cubeRegion' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a818' referencedEnd='a825'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a826' name='deploymentGroup' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a827' referencedEnd='a828'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a829' name='contentMap' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a808' referencedEnd='a830'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a815' name='CubeDimensionAssociation' annotation='CubeDimensionAssociation relates a Cube to the Dimensions that define it.  Features relevant to Cube-Dimension relationships (e.g., calcHierarchy) are exposed by this class.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a831' name='dimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a832' referencedEnd='a833'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a834' name='cube' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a812' referencedEnd='a835'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a836' name='calcHierarchy' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a837' referencedEnd='a838'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a818' name='CubeRegion' annotation='CubeRegion models a sub-unit of a Cube of the same dimensionality as the Cube itself, with each Dimension optionally subsetted in its list of members.&#10;&#10;&#10;&#10;When mapped to its physical source, a CubeRegion contains data cells identified by the member combinations of the Cartesian product of the CubeRegion&apos;s associated Dimensions and Measures.&#10;&#10;&#10;&#10;The relative ordering of CubeDeployment classes optionally implies a desired order of selection of the CubeDeployments, based on implementation-specific considerations (e.g., optimized access of aggregate data).&#10;&#10;&#10;&#10;Synonyms: Sub-Cube, Partition, Slice, Region, Area.&#10;&#10;&#10;&#10;Misc. notes:&#10;&#10;1.  A CubeRegion is not a Cube, and a Cube is not a CubeRegion.&#10;&#10;2.  A Cube has a Measure and CubeRegion may have a corresponding measure (Measures are Attributes).&#10;&#10;3.  A Cube may or may not have CubeRegions.&#10;&#10;4.  If a Cube does not have a CubeRegion, then it&apos;s not physically mapped (it&apos;s virtual).  All physical mapping is based on the CubeRegion , not the Cube.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a839' name='isReadOnly' annotation='If true, then the CubeRegion content is read-only (i.e., may not be written or updated through the CubeRegion -- e.g., a CubeRegion implemented via an SQL view may not permit updates to the underlying base table).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a840' name='isFullyRealized' annotation='If true, then this CubeRegion has a direct physical realization and is not bound by any MemberSelections.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a841' name='memberSelectionGroup' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a842' referencedEnd='a843'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a844' name='cube' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a812' referencedEnd='a845'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a846' name='cubeDeployment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a810' referencedEnd='a847'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a827' name='DeploymentGroup' annotation='DeploymentGroup represents a logical grouping of model elements defining a single, complete deployment of an instance of Olap Schema (i.e., CubeDeployments and DimensionDeployments).&#10;&#10;&#10;&#10;The usage of DeploymentGroup is as follows: A user may specify a particular DeploymentGroup as the session-wide, default deployment for all metadata queries performed throughout the session. Alternatively, for queries involving some particular deployed object (e.g., a Cube or a Dimension), the user may be asked to choose from a list of deployments.  This either becomes the default deployment for the remainder of the session, or the user may continue to be asked to specify a deployment for each  subsequent query against deployed objects.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a848' name='schema' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a821' referencedEnd='a849'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a850' name='cubeDeployment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a810' referencedEnd='a851'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a852' name='dimensionDeployment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a853' referencedEnd='a854'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a832' name='Dimension' annotation='A Dimension is an ordinate within a multidimensional structure, and consists of an ordered list of values (i.e.,  members) that share a common semantic meaning within the domain being modeled.  Each member designates a unique position along its ordinate.&#10;&#10;&#10;&#10;Typical Dimensions are: Time, Product, Geography, Scenario (e.g., actual, budget, forecast), Measure (e.g., sales, quantity).&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a855' name='isTime' annotation='If true, then this Dimension is a Time Dimension (i.e., its members collectively represent a time series).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a856' name='isMeasure' annotation='If true, then this Dimension is a Measure Dimension (i.e., its members represent Measures).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a857' name='hierarchy' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a837' referencedEnd='a858'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a859' name='memberSelection' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a860' referencedEnd='a861'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a862' name='cubeDimensionAssociation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a815' referencedEnd='a863'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a864' name='displayDefault' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a837' referencedEnd='a865'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a866' name='schema' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a821' referencedEnd='a867'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a853' name='DimensionDeployment' annotation='DimensionDeployment represents a particular implementation strategy for the dimensional/hierarchical portions of an OLAP model.  It does so by organizing a collection of StructureMaps, which in turn define a mapping to an implementation model.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a868' name='hierarchyLevelAssociation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a869' referencedEnd='a870'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a871' name='valueBasedHierarchy' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a872' referencedEnd='a873'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a874' name='structureMap' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a875' referencedEnd='a876'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a877' name='listOfValues' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a875' referencedEnd='a878'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a879' name='immediateParent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a875' referencedEnd='a880'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a881' name='deploymentGroup' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a827' referencedEnd='a882'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a837' name='Hierarchy' annotation='A Hierarchy is an organizational structure that imposes a parent/child ordering on the members of the Dimension, usually to define either a navigational or consolidation/computational paths through the Dimension (i.e., a value associated with a child member is aggregated into one or more parents). ' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a883' name='dimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a832' referencedEnd='a884'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a885' name='cubeDimensionAssociation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a815' referencedEnd='a886'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a887' name='defaultedDimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a832' referencedEnd='a888'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a869' name='HierarchyLevelAssociation' annotation='HierarchyLevelAssociation is a class that orders Levels within a LevelBasedHierarchy, and provides a means of mapping Level/Hierarchy-oriented  Dimension attributes to one or more physical deployments.&#10;&#10;&#10;&#10;The relative ordering of DimensionDeployment classes optionally implies a desired order of selection of DimensionDeployments, based on implementation-specific considerations (e.g., optimized access of aggregate data).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a889' name='levelBasedHierarchy' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a890' referencedEnd='a891'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a892' name='currentLevel' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a893' referencedEnd='a894'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a895' name='dimensionDeployment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a853' referencedEnd='a896'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a890' name='LevelBasedHierarchy' annotation='A LevelBasedHierarchy is a hierarchy that describes relationships between specific levels of a Dimension. LevelBasedHierarchy can be used to model to &quot;pure level&quot; hierarchies (e.g., dimension-level tables) and &quot;mixed&quot; hierarchies (i.e., levels + linked nodes).&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a837'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a897' name='hierarchyLevelAssociation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a869' referencedEnd='a898'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a842' name='MemberSelectionGroup' annotation='MemberSelectionGroup enables the grouping together of semantically-related MemberSelections.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a899' name='memberSelection' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a860' referencedEnd='a900'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a901' name='cubeRegion' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a818' referencedEnd='a902'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a860' name='MemberSelection' annotation='MemberSelection represents an arbitrary subset of the members of a Dimension.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a903' name='dimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a832' referencedEnd='a904'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a905' name='memberSelectionGroup' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a842' referencedEnd='a906'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a821' name='Schema' annotation='Schema contains all elements comprising an OLAP model.  A Schema may also contain any number of DeploymentGroups, representing the various physical deployments of the logical Schema.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a907' name='cube' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a812' referencedEnd='a908'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a909' name='dimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a832' referencedEnd='a910'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a911' name='deploymentGroup' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a827' referencedEnd='a912'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a872' name='ValueBasedHierarchy' annotation='ValueBasedHierarchy is a subclass of Hierarchy that ranks Dimension members according to their relative distance from the root.  Each member of a ValueBasedHierarchy has a specific &quot;metric&quot; or &quot;value&quot; associated with it.&#10;&#10;ValueBasedHierarchy is used to model pure &quot;linked node&quot; hierarchies (e.g., parent-child tables).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a837'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a913' name='dimensionDeployment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a853' referencedEnd='a914'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a893' name='Level' annotation='Level is a subclass of MemberSelection that assigns each member of a Dimension to a specific hierarchical level within the Dimension.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a860'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a915' name='hierarchyLevelAssociation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a869' referencedEnd='a916'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a917' name='CodedLevel' annotation='CodedLevel is a subclass of Level that assigns a unique encoding, or label, to each of its Dimension members.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a893'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a918' name='encoding' annotation='Encoding is an expression that generates a unique encoding, or label, for each member of a CodedLevel.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a919' name='Expressions' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a310'>
        </Model:Import>
        <Model:Class xmi.id='a920' name='Measure' annotation='Measure is a subclass of Attribute representing Dimension Measures (e.g., Sales, Quantity, Weight).  Synonym: Variable.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
        </Model:Class>
        <Model:Class xmi.id='a875' name='StructureMap' annotation='StructureMap is a subclass of TransformationMap that maps Dimension attributes to their physical data sources.&#10;&#10;&#10;&#10;(Note: Multiple StructureMaps may be grouped together into single, cohesive unit via TransformationTask.)' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a739'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a921' name='dimensionDeployment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a853' referencedEnd='a922'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a923' name='dimensionDeploymentLV' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a853' referencedEnd='a924'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a925' name='dimensionDeploymentIP' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a853' referencedEnd='a926'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a927' name='LevelBasedHierarchyOwnsHierarchyLevelAssociations' annotation='A LevelBasedHierarchy generally owns one or more HierarchyLevelAssociations.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a891' name='levelBasedHierarchy' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a890'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a898' name='hierarchyLevelAssociation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a869'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a928' name='HierarchyLevelAssocsReferenceLevel' annotation='Each HierarchyLevelAssoc references precisely one Level as its current level.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a894' name='currentLevel' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a893'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a916' name='hierarchyLevelAssociation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a869'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a929' name='DimensionOwnsMemberSelections' annotation='A Dimension may own any number of MemberSelections.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a904' name='dimension' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a832'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a861' name='memberSelection' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a860'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a930' name='CubeOwnsCubeDimensionAssociations' annotation='The dimensionality of a Cube is defined by a collection of unique Dimensions.  Each Dimension is represented by an instance of CubeDimensionAssociation.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a835' name='cube' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a812'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a816' name='cubeDimensionAssociation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a815'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a931' name='CubeDimensionAssociationsReferenceDimension' annotation='Each CubeDimenjsionAssociation references a single Dimension.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a833' name='dimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a832'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a863' name='cubeDimensionAssociation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a815'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a932' name='DimensionOwnsHierarchies' annotation='A Dimension may own several Hierarchies.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a884' name='dimension' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a832'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a858' name='hierarchy' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a837'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a933' name='DimensionHasDefaultHierarchy' annotation='A Dimension may designate a default Hierarchy for display purposes.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a865' name='displayDefault' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a837'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a888' name='defaultedDimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a832'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a934' name='CubeDimensionAssociationsReferenceCalcHierarchy' annotation='A CubeDimensionAssociation may designate a default Hierarchy for calculation purposes.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a838' name='calcHierarchy' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a837'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a886' name='cubeDimensionAssociation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a815'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a935' name='MemberSelectionGroupReferencesMemberSelections' annotation='A MemberSelectionGroup references at least one unique MemberSelection.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a900' name='memberSelection' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a860'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a906' name='memberSelectionGroup' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a842'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a936' name='SchemaOwnsCubes' annotation='A Schema may own any number of Cubes.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a908' name='cube' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a812'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a822' name='schema' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a821'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a937' name='SchemaOwnsDimensions' annotation='A Schema may own any number of Dimensions.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a910' name='dimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a832'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a867' name='schema' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a821'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a938' name='HierarchyLevelAssociationOwnsDimensionDeployments' annotation='A HierarchyLevelAssociation may own any number of DimensionDeployments.&#10;&#10;&#10;&#10;The ordering of the DimensionDeployment classes may optionally be assigned an implementation-specific meaning (e.g., desired order of selection of multiple deployments, based on optimized access to aggregated data).' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a896' name='dimensionDeployment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a853'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a870' name='hierarchyLevelAssociation' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a869'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a939' name='ValueBasedHierarchyOwnsDimensionDeployments' annotation='A ValueBasedHierarchy may own any number of DimensionDeployments.&#10;&#10;&#10;&#10;The ordering of the DimensionDeployment classes may optionally be assigned an implementation-specific meaning (e.g., desired order of selection of multiple deployments, based on optimized access to aggregated data).' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a914' name='dimensionDeployment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a853'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a873' name='valueBasedHierarchy' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a872'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a940' name='DimensionDeploymentOwnsStructureMaps' annotation='An instance of DimensionDeployment may own zero or more StructureMaps.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a876' name='structureMap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a875'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a922' name='dimensionDeployment' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a853'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a941' name='DimensionDeploymentHasListOfValues' annotation='An instance of DimensionDeployment may reference zero or one StructureMaps as its &quot;list of values&quot; StructureMap.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a878' name='listOfValues' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a875'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a924' name='dimensionDeploymentLV' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a853'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a942' name='DimensionDeploymentHasImmediateParent' annotation='An instance of DimensionDeployment may reference zero or one StructureMaps as its &quot;immediate parent&quot; StructureMap.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a880' name='immediateParent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a875'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a926' name='dimensionDeploymentIP' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a853'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a943' name='CubeOwnsCubeRegions' annotation='A Cube may own any number of CubeRegions.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a819' name='cubeRegion' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a818'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a845' name='cube' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a812'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a944' name='CubeRegionOwnsMemberSelectionGroups' annotation='A CubeRegion may own any number of MemberSelectionGroups.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a843' name='memberSelectionGroup' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a842'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a902' name='cubeRegion' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a818'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a945' name='CubeRegionOwnsCubeDeployments' annotation='A CubeRegion may own any number of CubeDeployments.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a847' name='cubeDeployment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a810'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a825' name='cubeRegion' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a818'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a946' name='SchemaOwnsDeploymentGroups' annotation='A Schema may own any number of DeploymentGroups.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a912' name='deploymentGroup' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a827'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a849' name='schema' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a821'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a947' name='DeploymentGroupReferencesCubeDeployments' annotation='A DeploymentGroup may reference any number of CubeDeployments.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a851' name='cubeDeployment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a810'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a828' name='deploymentGroup' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a827'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a948' name='DeploymentGroupReferencesDimensionDeployments' annotation='A DeploymentGroup may reference any number of DimensionDeployments.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a854' name='dimensionDeployment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a853'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a882' name='deploymentGroup' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a827'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a949' name='CubeDeploymentOwnsContentMaps' annotation='A CubeDeployment owns any number of ContentMaps.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a830' name='contentMap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a808'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a811' name='cubeDeployment' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a810'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a950' name='Transformation' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a697'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a951' name='DataMining' annotation='Data mining is the application of mathematical or statistical processes for the purpose of extracting hidden knowledge from large data sets. This knowledge is subsequently used as actionable business intelligence.&#10;&#10;&#10;&#10;Data mining techniques provide descriptive information that is manifest in inherent patterns or relations between the data. This can be achieved, for example, with algorithms for clustering or association rules detection (link analysis).&#10;&#10;&#10;&#10;They also uncover correlations, often due to causal relationships, between the data and a specific target property. This information is used to make predictions about unknown data or future behavior. Techniques generating these models are known as supervised learning algorithms, and include classification and numeric prediction algorithms.&#10;&#10;&#10;&#10;Whereas most analysis tools support the retrospective analysis of data sets by verifying a user?s hypotheses, data mining attempts to discover trends and behaviors without the need for guessing about possible relationships.&#10;&#10;&#10;&#10;Data mining tools are particularly effective in the data warehouse environment, because data warehouses offer large quantities of cleansed business data for consumption by data mining tools. Also, the advanced query and analytical capabilities available in most data warehouses (e.g., relational databases, OLAP servers, and information visualization tools) can be used to great advantage by data mining tools in their formulation of models, and in the evaluation of those models by human users.&#10;&#10;&#10;&#10;The Data Mining package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::ObjectModel::Instance&#10;&#10;&#10;&#10;The CWM Data Mining metamodel represents three conceptual areas: The overall Model description itself, Settings, and Attributes. Each area is represented by the diagrams in Figs. 15-1, 15-2, and 15-3, respectively.&#10;&#10;&#10;&#10;The Model conceptual area consists of a generic representation of a data mining model (that is, a mathematical model produced or generated by the execution of a data mining algorithm). This consists of MiningModel, a representation of the mining model itself, MiningSettings, which drive the construction of the model, ApplicationInputSpecification, which specifies the set of input attributes for the model, and MiningModelResult, which represents the result set produced by the testing or application of a generated model.&#10;&#10;&#10;&#10;The Settings conceptual area elaborates further on the Mining Settings and their usage relationships to the attributes of the input specification.&#10;&#10;&#10;&#10;Mining Settings has four subclasses representing settings for StatisticsSettings, ClusteringSettings, SupervisedMiningSettings and AssociationRulesSettings. The SupervisedMiningSettings are further subclassed as ClassificationSettings and RegressionSettings, and a CostMatrix is defined for representing cost values associated with misclassifications.&#10;&#10;&#10;&#10;AttributeUsageRelation consists of attributes that further classify the usage of MiningAttributes by MiningSettings (e.g., relative weight).  Several association are also used to explicitly define requirements placed on attributes by certain subclasses of settings (e.g., target, transactionId and itemId).&#10;&#10;&#10;&#10;The Attributes conceptual area defines two subclasses of Mining Attribute:&#10;&#10;&#10;&#10;NumericAttribute and CategoricalAttribute. Category represents the category properties and values that either a CategoricalAttribute or OrdinalAttribute might possess, while CategoryHierarchy represents any taxonomy that a CategoricalAttribute might be associated with.&#10;&#10;&#10;&#10;The inheritance of the Data Mining metamodel from the CWM ObjectModel is shown in Fig. 15-4.&#10;&#10;&#10;&#10;OCL Representation of Data Mining Constraints&#10;&#10;&#10;&#10;[C-1] Function must specify &quot;AssociationRules.&#10;&#10;context AssociationRulesSettings inv:&#10;&#10;self.function = &quot;AssociationRules&#10;&#10;&#10;&#10;[C-2] Category values must be unique.&#10;&#10;context CategoricalAttribute inv:&#10;&#10;self.category-&gt;forAll( c1, c2 | c1.value = c2.value implies c1 = c2 )&#10;&#10;&#10;&#10;[C-3] An instance of Category must be owned by precisely one instance of&#10;&#10;CategoricalAttribute or any of its subclasses.&#10;&#10;context Category inv:&#10;&#10;self.categoricalAttribute-&gt;isEmpty xor self.ordinalAttribute-&gt;isEmpty&#10;&#10;&#10;&#10;[C-4] Function must specify &quot;Classification&quot;.&#10;&#10;context ClassificationSettings inv:&#10;&#10;self.function = &quot;Classification&quot;&#10;&#10;&#10;&#10;[C-5] Function must specify &quot;Clustering&quot;.&#10;&#10;context ClusteringSettings inv:&#10;&#10;self.function = &quot;Clustering&quot;&#10;&#10;&#10;&#10;[C-6] maxNumberOfClusters must be positive.&#10;&#10;context ClusteringSettings inv:&#10;&#10;self.maxNumberOfClusters &gt; 0&#10;&#10;&#10;&#10;[C-7] Attributes must have unique names.&#10;&#10;context MiningDataSpecification inv:&#10;&#10;self.attribute-&gt;forAll( a1, a2 | a1.name = a2.name implies a1 = a2 )&#10;&#10;&#10;&#10;[C-8] Function and algorithm must be equal to function and algorithm of&#10;&#10;MiningSettings, respectively.&#10;&#10;context MiningModel inv:&#10;&#10;self.settings-&gt;isEmpty or (self.function = self.settings.function and&#10;&#10;self.algorithm = self.settings.algorithm)&#10;&#10;&#10;&#10;[C-9] lowerBound must be less than or equal to upperBound.&#10;&#10;context NumericAttribute inv:&#10;&#10;self.lowerBound &lt;= self.upperBound&#10;&#10;&#10;&#10;[C-10] Function must specify &quot;Regression&quot;.&#10;&#10;context RegressionSettings inv:&#10;&#10;self.function = &quot;Regression&quot;&#10;&#10;&#10;&#10;[C-11] Function must specify &quot;StatisticalAnalysis&quot;.&#10;&#10;context StatisticsSettings inv:&#10;&#10;self.function = &quot;StatisticalAnalysis&quot;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a952' name='org.omg.mof.idl_prefix=org.omg.cwm.analysis' annotation='' tagId='org.omg.mof.idl_prefix' elements='a951'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.analysis</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a953' name='org.omg.xmi.namespace=CWMMIN' annotation='' tagId='org.omg.xmi.namespace' elements='a951'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMMIN</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a954' name='ApplicationInputSpecification' annotation='ApplicationInputSpecification is a collection of ApplicationAttributes that drive the MiningModel.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a955' name='miningModel' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a956' referencedEnd='a957'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a958' name='inputAttribute' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a959' referencedEnd='a960'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:DataType xmi.id='a961' name='AttributeType' annotation='Defines the possible Attribute types.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='AttributeType' xmi.tcId='IDL:org.omg.cwm.analysis/DataMining/AttributeType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='categorical'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='numerical'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:DataType xmi.id='a962' name='AttributeUsage' annotation='Ways to use an attribute as part of a mining operation.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='AttributeUsage' xmi.tcId='IDL:org.omg.cwm.analysis/DataMining/AttributeUsage:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='active'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='inactive'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='supplementary'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Class xmi.id='a963' name='AttributeUsageRelation' annotation='Parameters for mining activities that are specific for an attribute. Mining attribute usage is intended as a specification apart from the mining input specification itself to enable reuse of the mining input specification for different mining settings.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a964' name='usageType' annotation='Indicates how the attribute is used by the mining function.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a962'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a965' name='includeInApplyResult' annotation='Indicates whether the attribute is included in the output.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a966' name='weight' annotation='Relative weight of the attribute.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a92'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a967' name='suppressNormalization' annotation='Indicates whether normalization is to be suppressed.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a968' name='attribute' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a969' referencedEnd='a970'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a971' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Tag xmi.id='a972' name='org.omg.mof.idl_substitute_name=miningAttribute' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a968 a973 a974 a970'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>miningAttribute</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a975' name='Category' annotation='A potential value of categoricalAttribute. For a given categoricalAttribute, all categories must be of the same Category subclass.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a976' name='displayValue' annotation='A string used when the category is displayed.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a977' name='property' annotation='Categories with &quot;missing&quot; property represent that no information is available. If there are categories with property &quot;invalid&quot; then other categories are valid by default. If there are categories with property &quot;valid&quot; then other categories are invalid by default. Positive and negative define allowed values of a binary attribute.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a978'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a979' name='value' annotation='Value holder for the Category.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a91'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a980' name='CategoryHierarchy' annotation='Defines a hierarchical ordering (aka taxonomy) between groups of items.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
        </Model:Class>
        <Model:DataType xmi.id='a978' name='CategoryProperty' annotation='' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='CategoryProperty' xmi.tcId='IDL:org.omg.cwm.analysis/DataMining/CategoryProperty:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='missing'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='invalid'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='valid'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='positive'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='negative'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Class xmi.id='a981' name='CostMatrix' annotation='Defines cost of misclassifications.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
        </Model:Class>
        <Model:Class xmi.id='a969' name='MiningAttribute' annotation='An attribute (aka field or variable). It carries the following user specifications:&#10;&#10;&#10;&#10;    valid values&#10;&#10;    ordering&#10;&#10;    taxonomy&#10;&#10;    normalization' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
        </Model:Class>
        <Model:Class xmi.id='a982' name='MiningDataSpecification' annotation='The collection of mining attributes specifying how to interpret the input data attributes.&#10;&#10;A description of the attributes accepted by the model for scoring data.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a973' name='attribute' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a969' referencedEnd='a974'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a956' name='MiningModel' annotation='Description of the data produced by a mining function.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a983' name='function' annotation='Names the mining function. The following functions are predefined:  StatisticalAnalysis, FeatureSelection, AssociationRules, Classification, Clustering, Regression.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a984' name='algorithm' annotation='Names the algorithm used to perform the mining function. The following algorithms are predefined: decisionTree, neuralNetwork, naiveBayes, selfOrganizingMap, centerBasedClustering, distributionBasedClustering, associationRules, polynomialRegression, radialBasisFunction, ruleBasedClassification, principalComponentAnalysis, factorAnalysis, bivariateAnalysis, descriptiveAnalysis, geneticAlgorithm' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a985' name='settings' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a986' referencedEnd='a987'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a988' name='inputSpec' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a954' referencedEnd='a989'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a990' name='MiningModelResult' annotation='Describes the result set produced by a run of a MiningModel.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a991' name='type' annotation='Type of information contained in mining result. The following types are predefined: sensitivityResult, liftResult, classificationEvalResult, regressionEvalResult' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a992' name='model' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a956' referencedEnd='a993'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a994' name='NumericAttribute' annotation='Attribute containing numbers, for which numeric operations are meaningful.&#10;&#10;&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a969'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a995' name='lowerBound' annotation='Least non-outlier value.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a92'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a996' name='upperBound' annotation='Greatest non-outlier value.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a92'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a997' name='isCyclic' annotation='Indicates attributes with cyclic value range such as angles or numbers representing the day of the week. If true, lowerBound and upperBound define the base interval.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a998' name='isDiscrete' annotation='Tells the algorithms whether to deal with the numbers as discrete values.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a999' name='SupervisedMiningModel' annotation='Description of data produced by a predictive mining function.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a956'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1000' name='target' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a959' referencedEnd='a1001'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1002' name='CategoricalAttribute' annotation='An attribute with discrete values upon which performing numeric operations is typically not meaningful.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a969'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1003' name='taxonomy' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a980' referencedEnd='a1004'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1005' name='category' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a975' referencedEnd='a1006'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:DataType xmi.id='a1007' name='OrderType' annotation='Ways to define an ordering on a set of string values.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='OrderType' xmi.tcId='IDL:org.omg.cwm.analysis/DataMining/OrderType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='alphabetic'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='date'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='numeric'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='inSequence'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Class xmi.id='a1008' name='OrdinalAttribute' annotation='Subclass of CategoricalAttribute that represents ordinal attributes.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1002'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1009' name='isCyclic' annotation='Indicates ordinal attributes with cyclic value ranges, in which case the first and last attributes in the ordered sequence of attributes define the base interval.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1010' name='orderingType' annotation='Indicates if categories are ordered. If orderingType is inSequence then the aggregation of categories defines the ordering relation.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1007'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a986' name='MiningSettings' annotation='Parameters for mining activities. Mining settings indicate how the model should be or was built.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1011' name='function' annotation='Names the mining function. The following functions are predefined: StatisticalAnalysis, FeatureSelection, AssociationRules, Classification, Clustering, Regression' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1012' name='algorithm' annotation='Names the algorithm used to perform the mining function. The following algorithms are predefined: decisionTree, neuralNetwork, naiveBayes, selfOrganizingMap, centerBasedClustering, distributionBasedClustering associationRules, polynomialRegression, radialBasisFunction, ruleBasedClassification, principalComponentAnalysis, factorAnalysis, bivariateAnalysis, descriptiveAnalysis, geneticAlgorithm' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1013' name='attributeUsage' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a963' referencedEnd='a1014'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1015' name='dataSpecification' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a982' referencedEnd='a1016'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1017' name='ClusteringSettings' annotation='Parameters for computing a clustering model partitioning the input records into segments.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a986'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1018' name='maxNumberOfClusters' annotation='Upper limit for the number of computed clusters.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1019' name='clusterIdAttributeName' annotation='Attribute name for output of cluster id values.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1020' name='StatisticsSettings' annotation='Parameters for computing statistics-based models.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a986'>
        </Model:Class>
        <Model:Class xmi.id='a1021' name='SupervisedMiningSettings' annotation='Parameters for computing a supervised model, i.e., one that requires a target attribute against which to measure model accuracy.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a986'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1022' name='confidenceAttributeName' annotation='Attribute name for output of confidence values of the prediction.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1023' name='predictedAttributeName' annotation='Attribute name for output of predicted values.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1024' name='costFunction' annotation='Function specifying the cost of incorrect predictions. Predefined methods are:  entropy, Gini, costMatrix, pnorm, none.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1025' name='target' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a969' referencedEnd='a1026'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1027' name='ClassificationSettings' annotation='Parameters for computing a classification model.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1021'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1028' name='costMatrix' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a981' referencedEnd='a1029'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1030' name='RegressionSettings' annotation='Parameters for computing a regression model.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1021'>
        </Model:Class>
        <Model:Class xmi.id='a1031' name='AssociationRulesSettings' annotation='Parameters for computing association rules.&#10;&#10;&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a986'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1032' name='minimumSupport' annotation='The minimum support required for association rules.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a92'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1033' name='minimumConfidence' annotation='The minimum confidence required for association rules.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a92'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1034' name='itemId' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a969' referencedEnd='a1035'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1036' name='transactionId' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a969' referencedEnd='a1037'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a959' name='ApplicationAttribute' annotation='Attribute used when the model was generated.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1038' name='usageType' annotation='Indicates whether attribute was actively used when the model was generated.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a962'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1039' name='attributeType' annotation='Type of ApplicationAttribute.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a961'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a1040' name='DerivedFromSettings' annotation='A mining model is derived from its settings.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1041' name='miningModel' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a956'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a987' name='settings' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a986'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1042' name='InputSpecOwnsAttributes' annotation='An ApplicationInputSpecification owns one or more ApplicationAttributes.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1043' name='inputSpec' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a954'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a960' name='inputAttribute' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a959'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1044' name='ProducedByModel' annotation='A mining model has a result set produced by a run of the model.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1045' name='miningResult' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a990'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a993' name='model' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a956'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1046' name='HasAttribute' annotation='MiningDataSpecification owns one or more MiningAttributes.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1047' name='dataSpecification' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a982'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a974' name='attribute' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a969'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1048' name='UsesAsTaxonomy' annotation='CategoricalAttributes may reference a taxonomy.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1049' name='categoricalAttribute' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1002'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1004' name='taxonomy' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a980'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1050' name='ContainsCategory' annotation='A CategoricalAttribute may have zero or more Categories.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1051' name='categoricalAttribute' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1002'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1006' name='category' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a975'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1052' name='ContainsAttributeUsage' annotation='Settings may have one or more AttributeUsageRelations.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1053' name='settings' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a986'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1014' name='attributeUsage' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a963'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1054' name='UsesAsInput' annotation='Settings references one MiningDataSpecification.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1055' name='settings' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a986'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1016' name='dataSpecification' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a982'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1056' name='PertainsToAttribute' annotation='An AttributeUsageRelation references a single MiningAttribute.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1057' name='attributeUsage' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a963'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a970' name='attribute' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a969'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1058' name='UsesItemId' annotation='The attribute that contains the item identifier needed for building the association rules model.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1059' name='settings' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1031'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1035' name='itemId' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a969'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1060' name='UsesTransactionId' annotation='The attribute that contains the transaction identifier needed for building the association rules model.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1061' name='settings' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1031'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1037' name='transactionId' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a969'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1062' name='UsesAsTarget' annotation='The attribute that contains the target values for building supervised models.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1063' name='settings' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1021'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1026' name='target' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a969'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1064' name='UsesCostMatrix' annotation='ClassificationSettings may reference a CostMatrix.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1065' name='settings' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1027'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1029' name='costMatrix' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a981'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1066' name='MiningModelOwnsInputSpecification' annotation='A MiningModel owns at most one ApplicationInputSpecification.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a957' name='miningModel' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a956'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a989' name='inputSpec' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a954'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1067' name='SupervisedMiningModelReferencesTargetAttribute' annotation='Each instance of SupervisedMiningModel references a single instance of ApplicationAttribute as its &quot;target&quot;.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1001' name='target' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a959'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1068' name='supervisedMiningModel' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a999'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1069' name='OrdersCategory' annotation='An OrdinalAttribute has an ordered collection of zero or more Categories.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1070' name='ordinalAttribute' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1008'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1071' name='category' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a975'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a1072' name='Instance' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a185'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a1073' name='InformationVisualization' annotation='The CWM Information Visualization metamodel defines metadata supporting the problem domain of &quot;information publishing&quot; or, more generally, &quot;information visualization&quot;.&#10;&#10;&#10;&#10;Within the data warehousing environment, data is collected from numerous, diverse sources and transformed into a unified representation that facilitates the analysis of data for purposes of gaining business insight. Robust and flexible information visualization tools are key to the effective analysis of this information. Information visualization tools must be capable of understanding and preserving the &quot;logical structure&quot; of data warehouse information, while enabling the user to perform any number of &quot;rendering transformations&quot; on information content (e.g., displaying the same query result set in several different formats, such as a printed report, Web page, pie chart, bar graph, etc.).&#10;&#10;&#10;&#10;Since information visualization is a very broad problem domain, with a diverse set of possible solutions and many evolving standards, the CWM Information Visualization metamodel defines very generic, container-like metadata constructs that either contain or reference more complex visualization mechanisms at the M1-level. These metadata structures are intended to support the minimal metadata required to interchange more complex M1 models of visualization mechanisms.&#10;&#10;&#10;&#10;The Information Visualization package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg.cwm.objectmodel.core&#10;&#10;    org.omg.cwm.foundation.expressions&#10;&#10;&#10;&#10;RenderedObject is the logical proxy for an arbitrary ModelElement that is to be rendered via some rendering transformation or process. A RenderedObject may be composed of an arbitrary number of other RenderedObjects (i.e., components), and may have topological relationships to still other RenderedObjects. The formula attribute allows for the specification of any implementation-dependent expression that completes the definition of a RenderedObject. For example, the formula might specify the position of the RenderedObject within a two-dimensional grid, or in relation to one of its neighbors; e.g., formula = &quot;neighbor(x, y) + (delta-x, delta-y)&quot;.&#10;&#10;&#10;&#10;A RenderedObject generally references one or more Renderings that specify how the enderedObject is actually presented. One of these associated Renderings may optionally be designated as a default Rendering. &#10;&#10;&#10;&#10;A Rendering is semantically equivalent to a transformation, in that it transforms a source RenderedObject to some target &quot;displayed&quot; (or otherwise &quot;presented&quot; object -- e.g., a displayed image or an audio clip) . An instance of Rendering is fully specified via its formula attribute, which, like RenderedObject, contains an implementation-dependent expression.&#10;&#10;&#10;&#10;Thus, a RenderedObject may be viewed as the &quot;logical description&quot; of an object to be rendered, independently of how it is actually presented by any of its associated Renderings, and Renderings may be viewed as transformations that control the presentation of the RenderedObject while preserving its logical structure. &#10;&#10;&#10;&#10;Note that a RenderedObject may be the target of a complex transformation (i.e., utilizing the CWM Transformation package). For example, an N-dimensional OLAP cube might be transformed into an equivalent, two-dimensional, composite RenderedObject, with several dimensions mapped to row and column edges, respectively, and all other dimensions constrained to single member values. Several Renderings may then be defined and associated with the resultant RenderedObject, mapping the two-dimensional logical structure to the surface of a display screen in various different formats (e.g., spreadsheet, pie chart, bar graph, etc.).&#10;&#10;&#10;&#10;Possible types of Renderings include: Screen, paper, voice, Web, HTML documents, XML/XSL, languages based on extensions to XML, SVG, visual objects, responses to keying (e.g., keying interception plus rules), etc. &#10;&#10;&#10;&#10;XSLRendering represents a useful subtype of Rendering that?s based on XSL (e.g., this subtype?s formula might contain a procedure that uses XSL to create an HTML document).&#10;&#10;&#10;&#10;Finally, RenderedObjectSet represents a simple container of both logical RenderedObjects and available Renderings.&#10;&#10;&#10;&#10;The inheritance of the Information Visualization metamodel from the Object Model is shown in Fig. 16-2.&#10;&#10;&#10;&#10;OCL Representation of Information Visualization Constraints&#10;&#10;&#10;&#10;[C-1] The set of Renderings includes the default Rendering.&#10;&#10;context RenderedObject inv:&#10;&#10;self.defaultRendering-&gt;notEmpty implies&#10;&#10;self.rendering-&gt;includes( self.defaultRendering )&#10;&#10;&#10;&#10;[C-2] A RenderedObject may not reference itself as a Neighbor nor as a Component.&#10;&#10;context RenderedObject&#10;&#10;inv: self.neighbor-&gt;excludes( self )&#10;&#10;inv: self.component-&gt;excludes( self )&#10;&#10;&#10;&#10;[C-3] A RenderedObject may not reference one of its Neighbors as a Component (and vice versa).&#10;&#10;context RenderedObject inv:&#10;&#10;(self.neighbor-&gt;notEmpty and self.component-&gt;notEmpty) implies&#10;&#10;self.neighbor-&gt;intersection( self.component )-&gt;isEmpty&#10;&#10;&#10;&#10;The transitive closure of Neighbors of an instance of RenderedObject must not include the RenderedObject instance.&#10;&#10;&#10;&#10;The transitive closure of Components of an instance of RenderedObject must not include the RenderedObject instance.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1074' name='org.omg.mof.idl_prefix=org.omg.cwm.analysis' annotation='' tagId='org.omg.mof.idl_prefix' elements='a1073'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.analysis</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a1075' name='org.omg.xmi.namespace=CWMIV' annotation='' tagId='org.omg.xmi.namespace' elements='a1073'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMIV</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1076' name='RenderedObject' annotation='RenderedObject serves as a logical &quot;proxy&quot; for an arbitrary ModelElement that is to be&#10;&#10;rendered.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a23'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1077' name='formula' annotation='Allows for the specification of any implementation-dependent expression that completes the definition of a RenderedObject.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1078' name='action' annotation='Specifies some implementation-dependent action associated with a RenderedObject.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1079' name='fileName' annotation='Specifies the name of a file persisting an instance of RenderedObject.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1080' name='type' annotation='Specifies some implementation-dependent type associated with a RenderedObject' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1081' name='url' annotation='Specifies a URL identifying some instance of RenderedObject.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1082' name='rendering' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1083' referencedEnd='a1084'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1085' name='defaultRendering' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1083' referencedEnd='a1086'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1087' name='component' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1076' referencedEnd='a1088'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1089' name='composite' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1076' referencedEnd='a1090'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1091' name='neighbor' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1076' referencedEnd='a1092'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1093' name='referencingNeighbor' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1076' referencedEnd='a1094'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1095' name='modelElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a1096'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1097' name='renderedObjectSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1098' referencedEnd='a1099'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1100' name='Expressions' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a310'>
        </Model:Import>
        <Model:Import xmi.id='a1101' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a1098' name='RenderedObjectSet' annotation='RenderedObjectSet is a container of RenderedObjects and available Renderings.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1102' name='renderedObject' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1076' referencedEnd='a1103'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1104' name='rendering' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1083' referencedEnd='a1105'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a1106' name='org.omg.mof.idl_substitute_name=CwmRenderedObjectSet' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a1098'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CwmRenderedObjectSet</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1083' name='Rendering' annotation='Rendering is a specification of how an associated RenderedObject is to be &quot;rendered&quot; in some medium.  This usually consists of a projection of an object of arbitrary dimensionality onto a 2-dimensional surface, but it may also include non-physical representations as well (such as audio).&#10;&#10;&#10;&#10;A Rendering is semantically equivalent to a Transformation, in that it transforms a source RenderedObject to some target &quot;presented&quot; object.  An instance of Rendering is fully specified via its formula attribute, which contains an implementation-dependent expression that defines the transformation and tracks transformation lineage.&#10;&#10;&#10;&#10;Possible types of instances of Rendering:&#10;&#10;Screen, Paper, Voice, Web, HTML Document, XML/XSL, languages based on extensions to XML, SVG, Visual objects, responses to keying (keying interception plus rules), etc.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a27'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1107' name='formula' annotation='Implementation-dependent procedure for generating the Rendering (e.g., a usage of XSL to generate an HTML document).  Tracks the transformation lineage of the Rendering.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1108' name='action' annotation='Specifies some implementation-dependent action associated with a Rendering.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1109' name='fileName' annotation='Specifies the name of a file persisting an instance of Rendering.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1110' name='type' annotation='Specifies some implementation-dependent type associated with a Rendering.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1111' name='url' annotation='Specifies a URL identifying some instance of Rendering.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1112' name='renderedObject' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1076' referencedEnd='a1113'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1114' name='defaultedRenderedObject' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1076' referencedEnd='a1115'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1116' name='renderedObjectSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1098' referencedEnd='a1117'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1118' name='XSLRendering' annotation='XSLRendering represents a useful subclass of Rendering based on XSL (i.e., this subclass&apos; formula might contain a procedure that uses XSL to create an HTML document).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1083'>
        </Model:Class>
        <Model:Association xmi.id='a1119' name='CompositesReferenceComponents' annotation='A RenderedObject may reference one or more &quot;component&quot; RenderedObjects, from which it is logically composed.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1090' name='composite' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1076'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1088' name='component' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1076'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1120' name='RenderedObjectsReferenceRenderings' annotation='A RenderedObject may reference any number of Renderings.  A Rendering may be referenced by any number of RenderedObjects.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1084' name='rendering' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1083'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1113' name='renderedObject' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1076'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1121' name='RenderedObjectsReferenceDefaultRendering' annotation='A RenderedObject may reference a default Rendering.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1086' name='defaultRendering' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1083'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1115' name='defaultedRenderedObject' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1076'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1122' name='RenderedObjectsReferenceModelElement' annotation='One or more RenderedObjects may reference an arbitrary ModelElement.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1123' name='renderedObject' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1076'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1096' name='modelElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1124' name='NeighborsReferenceNeighbors' annotation='A RenderedObject may reference one or more &quot;neighboring&quot; RenderedObjects.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1092' name='neighbor' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1076'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1094' name='referencingNeighbor' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1076'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1125' name='RenderedObjectSetOwnsRenderedObjects' annotation='A RenderedObjectSet may own any number of RenderedObjects.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1103' name='renderedObject' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1076'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1099' name='renderedObjectSet' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1098'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1126' name='RenderedObjectSetOwnsRenderings' annotation='A RenderedObjectSet may own any number of Renderings.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1105' name='rendering' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1083'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1117' name='renderedObjectSet' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1098'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a1127' name='BusinessNomenclature' annotation='Business users of data warehouses need to have a good understanding of what information and tools exist in a data warehouse. They need to understand what the information means from a business perspective, how it is derived, from what data resources it is derived, and what analysis and reporting tools exist for manipulating and reporting the information. They may also need to subscribe to analysis and reporting tools, and have them run with results delivered to them on a regular basis.&#10;&#10; &#10;&#10;The BusinessNomenclature package contains classes and associations that can be used to represent business metadata. Easy access to this business metadata enables business users to exploit the value of the information in a data warehouse. It can also aid technical users in certain tasks. An example is the use of common business terms and concepts for discussing information requirements with business users. Another example is accessing business intelligence tools for analyzing the impact of warehouse design changes.&#10;&#10;&#10;&#10;The scope of the BusinessNomenclature package is restricted to the domain of data warehousing and business intelligence.&#10;&#10;&#10;&#10;This section provides a description of the main features of the BusinessNomenclature package.&#10;&#10;&#10;&#10;The BusinessNomenclature package provides two main constructs to represent business terms and concepts and related semantics:&#10;&#10;&#10;&#10;    Taxonomy is a collection of concepts that provide the context for the meaning of a particular term.&#10;&#10;    Glossary is a collection of terms and various related forms of the term.&#10;&#10;&#10;&#10;A taxonomy is a collection of concepts. Concepts represent semantic information and relationships. Concepts are identified by terms, which in turn are manifested by a word or phrase. More than one term may describe the same concept and a given term may describe more than one concept.&#10;&#10;A glossary is a collection of terms that are related through explicit or implicit relationships. Terms may be preferred (the term best representing its concept) and thus represent the vocabulary of a business domain or user. Terms may be synonyms and point at the preferred term. A preferred term and its synonyms represent the fact that several terms describe the same concept although with different shades of meaning.&#10;&#10;&#10;&#10;Terms may be arranged into a hierarchy of more generic and more specific elements. This relationship allows substituting a narrower term, such as &quot;USA&quot;, for a wider term, such as &quot;country&quot;.&#10;&#10;&#10;&#10;The BusinessNomenclature package depends on the following packages:&#10;&#10;&#10;&#10;    omg.org::CWM::ObjectModel::Core&#10;&#10;&#10;&#10;The metamodel diagram for the BusinessNomenclature package is split into two parts. The first diagram shows the BusinessNomenclature classes and associations, while the second shows the inheritance hierarchy.&#10;&#10;&#10;&#10;OCL Representation of Business Nomenclature Constraints&#10;&#10;[C-1] A Concept may not relate to itself.&#10;&#10;context Concept&#10;&#10;inv: self.relatedConcept-&gt;forAll ( p | p &lt;&gt; self )&#10;&#10;&#10;&#10;[C-2] The parent of a Glossary must be a Glossary.&#10;&#10;context Glossary&#10;&#10;inv: self.parent.oclIsKindOf( Glossary )&#10;&#10;&#10;&#10;[C-3] The child of a Glossary must be a Glossary.&#10;&#10;context Glossary&#10;&#10;inv: self.child-&gt;forAll( p | p.oclIsKindOf( Glossary ) )&#10;&#10;&#10;&#10;[C-4] The parent of a Taxonomy must be a Taxonomy.&#10;&#10;context Taxonomy&#10;&#10;inv: self.parent.oclIsKindOf( Taxonomy )&#10;&#10;&#10;&#10;[C-5] The child of a Taxonomy must be a Taxonomy.&#10;&#10;context Taxonomy&#10;&#10;inv: self.child-&gt;forAll( p | p.oclIsKindOf( Taxonomy ) )&#10;&#10;&#10;&#10;[C-6] A Term may not relate to itself.&#10;&#10;context Term&#10;&#10;inv: self.relatedTerm-&gt;forAll ( p | p &lt;&gt; self )&#10;&#10;&#10;&#10;[C-7] A VocabularyElement may not relate to itself.&#10;&#10;context Vocabulary&#10;&#10;inv: self.relatedElement-&gt;forAll ( p | p &lt;&gt; self )&#10;&#10;&#10;&#10;[C-8] The RelatedConcepts association is derived from the RelatedVocabularyElements association. All ends of the RelatedConcepts association must be Concepts.&#10;&#10;context RelatedConcepts&#10;&#10;inv: RelatedVocabularyElements.allInstances.select( element.oclIsKindOf( Concept )&#10;&#10;and relatedElement.oclIsKindOf( Concept ) )&#10;&#10;&#10;&#10;[C-9] The RelatedTerms association is derived from the RelatedVocabularyElements association. All ends of the RelatedTerms association must beTerms.&#10;&#10;context RelatedTerms&#10;&#10;inv: RelatedVocabularyElements.allInstances.select( element.oclIsKindOf( Term ) and&#10;&#10;relatedElement.oclIsKindOf( Term ) )' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1128' name='org.omg.xmi.namespace=CWMBUS' annotation='' tagId='org.omg.xmi.namespace' elements='a1127'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMBUS</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a1129' name='org.omg.mof.idl_prefix=org.omg.cwm.analysis' annotation='' tagId='org.omg.mof.idl_prefix' elements='a1127'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.analysis</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1130' name='VocabularyElement' annotation='This represents a common superclass for Concepts and Terms.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1131' name='definition' annotation='Provides the definition of the VocabularyElement.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1132' name='example' annotation='Provides examples of the VocabularyElement.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1133' name='usage' annotation='Identifies typical usage of the VocabularyElement.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1134' name='modelElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a1135'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1136' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a1137' name='Nomenclature' annotation='This represents a common superclass for Taxonomy and Glossary.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
        </Model:Class>
        <Model:Class xmi.id='a1138' name='Taxonomy' annotation='This represents a collection of Concepts that form an ontology.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1137'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1139' name='domain' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a19' referencedEnd='a20'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1140' name='concept' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a22'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1141' name='subtaxonomy' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1137' referencedEnd='a1142'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1143' name='Glossary' annotation='This represents a collection of Terms.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1137'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1144' name='language' annotation='Identifies the language that the Glossary is represented in.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1145' name='taxonomy' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1138' referencedEnd='a1146'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1147' name='term' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a22'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1148' name='subglossary' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1137' referencedEnd='a1142'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1149' name='BusinessDomain' annotation='This represents a business domain.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1150' name='taxonomy' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a22'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1151' name='Concept' annotation='This represents a business idea or notion. &#10;&#10;&#10;&#10;Concepts are represented by Terms. Users use Terms that are familiar to them in their business environment to refer to Concepts.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1130'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1152' name='taxonomy' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a19' referencedEnd='a20'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1153' name='relatedConcept' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1151' referencedEnd='a1154'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1155' name='Term' annotation='This represents words or phrases used by business users to refer to Concepts.&#10;&#10;&#10;&#10;A Term has a definition in a specific context. The context is provided by the referenced Concept that describes the underlying semantics.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1130'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1156' name='glossary' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a19' referencedEnd='a20'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1157' name='concept' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1151' referencedEnd='a1158'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1159' name='relatedTerm' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1155' referencedEnd='a1160'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1161' name='preferredTerm' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1155' referencedEnd='a1162'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1163' name='narrowerTerm' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1155' referencedEnd='a1164'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a1165' name='GlossaryToTaxonomy' annotation='This association relates a Glossary to its Taxonomies.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1166' name='glossary' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1143'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1146' name='taxonomy' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1138'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1167' name='TermToConcept' annotation='This association relates a Term to its Concepts.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1158' name='concept' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1151'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1168' name='term' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1155'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1169' name='RelatedVocabularyElements' annotation='This association relates a VocabularyElement to its related VocabularyElements.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1170' name='relatedElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1130'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1171' name='element' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1130'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1172' name='RelatedConcepts' annotation='This association relates a Concept to its related Concepts.&#10;&#10;&#10;&#10;This association is derived from the RelatedVocabularyElements association. All ends of the association must be Concepts. [C-8]' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1154' name='relatedConcept' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1151'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1173' name='concept' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1151'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1174' name='RelatedTerms' annotation='This association relates a Term to its related Terms.&#10;&#10;&#10;&#10;This association is derived from the RelatedVocabularyElements association. All ends of the association must be Terms.[C-9]' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1160' name='relatedTerm' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1155'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1175' name='term' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1155'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1176' name='VocabularyElementToModelElement' annotation='This association relates a VocabularyElement to the ModelElements for which the VocabularyElement provides business meaning.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1135' name='modelElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1177' name='vocabularyElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1130'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1178' name='SynonymToPreferredTerm' annotation='This association relates a synonym to its preferred term.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1162' name='preferredTerm' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1155'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1179' name='synonym' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1155'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1180' name='WiderToNarrowerTerm' annotation='This association relates a wider term to its narrower terms.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1181' name='widerTerm' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1155'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1164' name='narrowerTerm' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1155'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1182' name='NomenclatureHierarchy' annotation='This aggregation relates a parent Nomenclature to its child Nomenclatures.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1183' name='parent' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1137'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1142' name='child' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1137'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a1184' name='WarehouseProcess' annotation='The Warehouse Process package documents the process flows used to execute transformations. These process flows may be documented at the level of a complete TransformationActivity or its individual TransformationSteps. A WarehouseProcess object associates a transformation with a set of events which will be used to trigger the execution of the transformation.&#10;&#10;&#10;&#10;The Warehouse Process package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::ObjectModel::Behavioral&#10;&#10;    org.omg::CWM::Analysis::Transformation&#10;&#10;&#10;&#10;A WarehouseProcess object represents the processing of a transformation. It is instantiated as one of its subtypes WarehouseActivity or WarehouseStep, depending on whether it represents the processing of a TransformationActivity or a Transformation Step.&#10;&#10;&#10;&#10;A WarehouseProcess may be associated with one or more WarehouseEvents, each identifying events that cause the processing to be initiated. It may also be associated with one or more internal events that will be triggered when processing terminates. A ProcessPackage may be used to group together related WarehouseActivities.&#10;&#10;&#10;&#10;WarehouseEvents are divided into three categories: scheduled, external and internal. Scheduled events can either be defined as a point in time (each Wednesday at 2 pm) or be defined by intervals (every five minutes). A point in time event can be defined as a custom calendar which contains a set of calendar dates. This allows a series of dates to be reused across several WarehouseProcesses.&#10;&#10;&#10;&#10;External events are triggered by something happening outside the data warehouse, for example by a batch process which is not described as a WarehouseProcess. Internal events are triggered by the termination of a WarehouseProcess. They can be either retry events or cascade events. Retry events normally trigger a rerun of the same WarehouseProcess, whereas cascade events normally trigger a different WarehouseProcess. An internal event may define a condition that determines whether or not the event is triggered. This condition can use details of the execution of the triggering WarehouseProcess recorded in the relevant ActivityExecution and StepExecution objects.&#10;&#10;&#10;&#10;OCL Representation of Warehouse Process Constraints&#10;&#10;&#10;&#10;[C-1] month must be specified when recurringType is everyYear.&#10;&#10;context RecurringPointInTimeEvent inv:&#10;&#10;self.recurringType=everyYear implies self.month-&gt;notEmpty&#10;&#10;&#10;&#10;[C-2] month must be between 1 and 12 (inclusive) when specified.&#10;&#10;context RecurringPointInTimeEvent inv:&#10;&#10;self.month-&gt;notEmpty implies 1 &lt;= self.month &lt;= 12&#10;&#10;&#10;&#10;[C-3] dayOfMonth must be specified when recurringType is everyYear or&#10;&#10;everyMonth.&#10;&#10;context RecurringPointInTimeEvent inv:&#10;&#10;self.recurringType=everyYear or self.recurringType=everyMonth&#10;&#10;implies self.dayOfMonth-&gt;notEmpty&#10;&#10;&#10;&#10;[C-4] dayOfMonth must be between 1 and 31 (inclusive) when specified.&#10;&#10;context RecurringPointInTimeEvent inv:&#10;&#10;self.dayOfMonth-&gt;notEmpty implies 1 &lt;= self.dayOfMonth &lt;= 31&#10;&#10;&#10;&#10;[C-5] dayOfWeek must be specified when recurringType is everyWeek.&#10;&#10;context RecurringPointInTimeEvent inv:&#10;&#10;self.recurringType=everyWeek implies self.dayOfWeek-&gt;notEmpty&#10;&#10;&#10;&#10;[C-6] hour must be specified when recurringType is everyYear or everyMonth or&#10;&#10;everyWeek or everyDay.&#10;&#10;context RecurringPointInTimeEvent inv:&#10;&#10;self.recurringType=everyYear or self.recurringType=everyMonth or&#10;&#10;self.recurringType=everyWeek or self.recurringType=everyDay&#10;&#10;implies self.hour-&gt;notEmpty&#10;&#10;&#10;&#10;[C-7] hour must be between 0 and 23 (inclusive) when specified.&#10;&#10;context RecurringPointInTimeEvent inv:&#10;&#10;self.hour-&gt;notEmpty implies 0 &lt;= hour &lt;= 23&#10;&#10;&#10;&#10;[C-8] minute must be specified when recurringType is not everyMinute.&#10;&#10;context RecurringPointInTimeEvent inv:&#10;&#10;self.recurringType&lt;&gt;everyMinute implies self.minute-&gt;notEmpty&#10;&#10;&#10;&#10;[C-9] minute must be between 0 and 59 (inclusive) when specified.&#10;&#10;context RecurringPointInTimeEvent inv:&#10;&#10;self.minute-&gt;notEmpty implies 0 &lt;= self.minute &lt;= 59&#10;&#10;&#10;&#10;[C-10] second must be between 0 and 59 (inclusive).&#10;&#10;context RecurringPointInTimeEvent inv:&#10;&#10;0 &lt;= self.second &lt;= 59' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1185' name='org.omg.xmi.namespace=CWMWHP' annotation='' tagId='org.omg.xmi.namespace' elements='a1184'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMWHP</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a1186' name='org.omg.mof.idl_prefix=org.omg.cwm.management' annotation='' tagId='org.omg.mof.idl_prefix' elements='a1184'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.management</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Package xmi.id='a1187' name='DataType' annotation='' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
          <Model:Namespace.contents>
            <Model:DataType xmi.id='a1188' name='RecurringType' annotation='everyYear, everyMonth, everyWeek, everyDay, everyHour, everyMinute' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='RecurringType' xmi.tcId='IDL:org.omg.cwm.management/WarehouseProcess/DataType/RecurringType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='everyYear'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='everyMonth'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='everyWeek'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='everyDay'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='everyHour'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='everyMinute'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1189' name='DayOfWeek' annotation='Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, workingDay, nonworkingDay' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='DayOfWeek' xmi.tcId='IDL:org.omg.cwm.management/WarehouseProcess/DataType/DayOfWeek:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='monday'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='tuesday'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='wednesday'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='thursday'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='friday'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='saturday'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='sunday'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='workingDay'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='nonworkingDay'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1190' name='WaitRuleType' annotation='waitForAll, waitForAny' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='WaitRuleType' xmi.tcId='IDL:org.omg.cwm.management/WarehouseProcess/DataType/WaitRuleType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='waitForAll'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='waitForAny'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
          </Model:Namespace.contents>
        </Model:Package>
        <Model:Package xmi.id='a1191' name='Events' annotation='' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
          <Model:Namespace.contents>
            <Model:Class xmi.id='a1192' name='WarehouseEvent' annotation='A virtual class to refer to any Event.&#10;&#10;&#10;&#10;A WarehouseEvent (or its derivations) represents what triggers the running of a WarehouseProcess. An event can be initiated by a clock, by an external trigger, or by an internal trigger (the conclusion of some WarehouseProcess).' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a136'>
              <Model:Namespace.contents>
                <Model:Reference xmi.id='a1193' name='warehouseProcess' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1194' referencedEnd='a1195'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Reference>
              </Model:Namespace.contents>
            </Model:Class>
            <Model:Class xmi.id='a1196' name='ScheduleEvent' annotation='A ScheduleEvent is an abstract class which covers all the clock based events.' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a1192'>
            </Model:Class>
            <Model:Class xmi.id='a1197' name='PointInTimeEvent' annotation='A PointInTime event is triggered at a fixed time, independently of any external context.&#10;&#10;&#10;&#10;The triggering time can be either defined functionally (as in the RecurringPointInTimeEvent extension of this class), or by an explicit list of times (CustomCalendarEvent).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1196'>
            </Model:Class>
            <Model:Class xmi.id='a1198' name='CustomCalendarEvent' annotation='This event is controlled by a list of dates and times. To make the list easily shareable between multiple WarehouseProcesses the calendar itself is in a separate class.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1197'>
              <Model:Namespace.contents>
                <Model:Reference xmi.id='a1199' name='customCalendar' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1200' referencedEnd='a1201'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Reference>
              </Model:Namespace.contents>
            </Model:Class>
            <Model:Class xmi.id='a1200' name='CustomCalendar' annotation='A named list of dates and times. ' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
              <Model:Namespace.contents>
                <Model:Reference xmi.id='a1202' name='customCalendarEvent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1198' referencedEnd='a1203'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>0</XMI.field> <!-- lower -->
                    <XMI.field>-1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>true</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Reference>
              </Model:Namespace.contents>
            </Model:Class>
            <Model:Class xmi.id='a1204' name='CalendarDate' annotation='An entry in a CustomCalendar representing a specific date and time.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
              <Model:Namespace.contents>
                <Model:Attribute xmi.id='a1205' name='specificDate' annotation='The value of the date. ' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a93'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
              </Model:Namespace.contents>
            </Model:Class>
            <Model:Class xmi.id='a1206' name='IntervalEvent' annotation='An IntervalEvent controls a continuous run of a WarehouseProcess. The Warehouse Process will run, then wait for the duration specified in the event, then run again.&#10;&#10;&#10;&#10;An IntervalEvent is not affected by the result of the WarehouseProcess.&#10;&#10;&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1196'>
              <Model:Namespace.contents>
                <Model:Attribute xmi.id='a1207' name='duration' annotation='Indicates the length of time (in seconds) to wait after a run of the WarehouseProcess before triggering the next one.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a92'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
              </Model:Namespace.contents>
            </Model:Class>
            <Model:Class xmi.id='a1208' name='ExternalEvent' annotation='An ExternalEvent allows the description of the triggering of a WarehouseProcess by a task which is not described in the model. This is merely a place holder. The actual behavior and the connection with the external trigger is left to the implementation of&#10;&#10;the scheduler.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1192'>
              <Model:Namespace.contents>
                <Model:Attribute xmi.id='a1209' name='description' annotation='A free text description of where the external triggering signal comes from.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
              </Model:Namespace.contents>
            </Model:Class>
            <Model:Class xmi.id='a1210' name='InternalEvent' annotation='An event which may be triggered, depending on whether or not a condition is satisfied, by the conclusion of one or more WarehouseProcess runs.&#10;&#10;&#10;&#10;There are two types of InternalEvents, depending whether the event triggers a series of different WarehouseProcesses, or whether the event triggers the same WarehouseProcess in an attempt to retry a failed run.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1192'>
              <Model:Namespace.contents>
                <Model:Attribute xmi.id='a1211' name='condition' annotation='Indicates what condition the triggering WarehouseProcess run must meet to be considered (success, failure, warnings, etc.).&#10;&#10;&#10;&#10;How the condition is expressed, and how the result of a Transform is generated is left to the implementation of the scheduler and the transformation, respectively.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a53'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
                <Model:Reference xmi.id='a1212' name='triggeringWP' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1194' referencedEnd='a1213'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>-1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>true</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Reference>
              </Model:Namespace.contents>
            </Model:Class>
            <Model:Class xmi.id='a1214' name='CascadeEvent' annotation='A CascadeEvent indicates that completion of one or more triggering WarehouseProcesses triggers another WarehouseProcess.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1210'>
              <Model:Namespace.contents>
                <Model:Attribute xmi.id='a1215' name='waitRule' annotation='Indicates if the event should be triggered as soon as any of the triggering WarehouseProcesses has completed that satisfies the condition (inherited from InternalEvent) or only when all the triggering WarehouseProcesses have completed (provided the condition is satisfied).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1190'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
              </Model:Namespace.contents>
            </Model:Class>
            <Model:Class xmi.id='a1216' name='RetryEvent' annotation='Indicates that a WarehouseProcess should be retried upon failure. This type of event is used for example when a WarehouseProcess relies on sources with uncertain availability (connection or uptime).&#10;&#10;&#10;&#10;In general, the triggering WarehouseProcess and the triggered WarehouseProcess are the same, and only one WarehouseProcess is involved. But this is not an imposed limitation. It is left to the schedulers to decide on the implementation behavior for complex cases.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1210'>
              <Model:Namespace.contents>
                <Model:Attribute xmi.id='a1217' name='waitDuration' annotation='Indicates the length of time (in seconds) to wait before retrying the triggered WarehouseProcess.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a92'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
                <Model:Attribute xmi.id='a1218' name='maxCount' annotation='Indicates how many times the triggered WarehouseProcess should be retried before being declared failed.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
              </Model:Namespace.contents>
            </Model:Class>
            <Model:Class xmi.id='a1219' name='RecurringPointInTimeEvent' annotation='This event triggers a WarehouseProcess on a regular basis such as a specific date or time (for example, the Wednesday of every other week, at 2:30 pm).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1197'>
              <Model:Namespace.contents>
                <Model:Attribute xmi.id='a1220' name='recurringType' annotation='Indicates how often the event should be triggered (weekly, daily, etc.).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1188'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
                <Model:Attribute xmi.id='a1221' name='frequencyFactor' annotation='Indicates the repetition of the event. For example, for a weekly recurringType, a value of 1 will mean that it is to be triggered every week, a value of 2 will mean that it is to be triggered every other week, etc.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
                <Model:Attribute xmi.id='a1222' name='month' annotation='Indicates which month of the year (from 1 to 12) an annual event is to be triggered.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>0</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
                <Model:Attribute xmi.id='a1223' name='dayOfMonth' annotation='Indicates which day of the month (from 1 to 31) a monthly or annual event is to be triggered. For a monthly event, if the day of the month is greater than the number of days in the month, it is assumed that the scheduler will run the WarehouseProcess on the last day of the month.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>0</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
                <Model:Attribute xmi.id='a1224' name='dayOfWeek' annotation='Indicates which day of the week a weekly schedule is running.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1189'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>0</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
                <Model:Attribute xmi.id='a1225' name='hour' annotation='Indicates at what hour (from 0 to 23) an annual, monthly, weekly, or daily event is being triggered.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>0</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
                <Model:Attribute xmi.id='a1226' name='minute' annotation='Indicates at what minute (from 0 to 59) an event is triggered. Applies to all events except the &quot;everyMinute&quot; ones.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>0</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
                <Model:Attribute xmi.id='a1227' name='second' annotation='Indicates at what second (from 0 to 59) an event must be run. Applies to all events.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
                  <Model:StructuralFeature.multiplicity>
                    <XMI.field>1</XMI.field> <!-- lower -->
                    <XMI.field>1</XMI.field> <!-- upper -->
                    <XMI.field>false</XMI.field> <!-- is_ordered -->
                    <XMI.field>false</XMI.field> <!-- is_unique -->
                  </Model:StructuralFeature.multiplicity>
                </Model:Attribute>
              </Model:Namespace.contents>
            </Model:Class>
          </Model:Namespace.contents>
        </Model:Package>
        <Model:Import xmi.id='a1228' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a1194' name='WarehouseProcess' annotation='A WarehouseProcess represents the processing of a transformation. It is instantiated as one of its subtypes WarehouseActivity or WarehouseStep, depending on whether it represents the processing of a TransformationActivity or a Transformation Step.&#10;&#10;A WarehouseProcess may be associated with one or more WarehouseEvents, each identifying events that cause the processing to be initiated. It may also be associated with one or more internal events that will be triggered when processing terminates.' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1229' name='staticDefinition' annotation='When a WarehouseProcess is a constant mapping (such as a Relational View of legacy data or a continuous data propagation process), this flag indicates that the mapping does not require to be run for the target to be up-to-date and in sync with&#10;&#10;the source.&#10;&#10;&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1230' name='isSequential' annotation='This flag indicates if more than one instance of this WarehouseProcess may run at a time. If this flag is true, the scheduler should fail any attempt to trigger this WarehouseProcess while an instance is already in progress.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1231' name='warehouseEvent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1192' referencedEnd='a1232'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1233' name='internalEvent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1210' referencedEnd='a1234'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1235' name='WarehouseStep' annotation='A WarehouseStep is a component of a WarehouseActivity. It represents the processing of an individual TransformationStep. It may be used to identify WarehouseEvents that trigger the processing of the TransformationStep and/or InternalEvents that are&#10;&#10;triggered by the conclusion of the processing of the TransformationStep.&#10;&#10;&#10;&#10;For example, a WarehouseStep may be used to document how a specific TransformationStep should be retried upon failure.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1194'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1236' name='transformationStep' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a724' referencedEnd='a1237'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1238' name='warehouseActivity' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1239' referencedEnd='a1240'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1241' name='Transformation' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a697'>
        </Model:Import>
        <Model:Class xmi.id='a1242' name='ProcessPackage' annotation='A group of related WarehouseActivities.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
        </Model:Class>
        <Model:Class xmi.id='a1239' name='WarehouseActivity' annotation='A WarehouseActivity is a subtype of WarehouseProcess that represents the processing of a TransformationActivity. It may identify WarehouseEvents that trigger the processing of the TransformationActivity and InternalEvents that are triggered by the&#10;&#10;conclusion of this processing. It may contain a set of WarehouseSteps that define in more detail the processing of the individual TransformationSteps of the TransformationActivity.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1194'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1243' name='transformationActivity' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a731' referencedEnd='a1244'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1245' name='warehouseStep' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1235' referencedEnd='a1246'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a1247' name='EventUsesCustomCalendar' annotation='Indicates which custom calendar is used for this schedule' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1201' name='customCalendar' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1200'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1203' name='customCalendarEvent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1198'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1248' name='Event' annotation='Associates a WarehouseProcess with a set of events of various types, which will be used to trigger the execution of the WarehouseProcess and its associated transformations.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1195' name='warehouseProcess' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1194'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1232' name='warehouseEvent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1192'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1249' name='TriggeringProcess' annotation='Associates an internal event with the WarehouseProcess that triggers it when processing of that WarehouseProcess terminates.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1213' name='triggeringWP' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1194'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1234' name='internalEvent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1210'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1250' name='WarehouseStepRunsTransformationStep' annotation='Identifies a TransformationStep that is run by a WarehouseStep.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1237' name='transformationStep' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a724'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1251' name='warehouseStep' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1235'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1252' name='WarehouseActivityStep' annotation='Associates a WarehouseActivity with its constituent WarehouseSteps.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1240' name='warehouseActivity' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1239'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1246' name='warehouseStep' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1235'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1253' name='WarehouseActivityRunsTransformationActivity' annotation='Indicates which TransformationActivity is run by the WarehouseActivity.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1254' name='warehouseActivity' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1239'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1244' name='transformationActivity' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a731'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a1255' name='Behavioral' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a116'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a1256' name='WarehouseOperation' annotation='The Warehouse Operation package contains classes recording the day-to-day operation of the warehouse processes.&#10;&#10;&#10;&#10;The package covers three separate areas:&#10;&#10;&#10;&#10;    Transformation Executions&#10;&#10;    Measurements&#10;&#10;    Change Requests&#10;&#10;&#10;&#10;Details of the most recent executions of transformations can be recorded, identifying when they ran and whether they completed successfully. This can be used to determine how complete and up-to-date specific information in the data warehouse is.&#10;&#10;&#10;&#10;An ActivityExecution represents an execution of a whole TransformationActivity, and a StepExecution object represents an execution of an individual TransformationStep. If a TransformationStep involves the use of an Operation , an associated StepExecution may reference a CallAction that records the actual arguments passed to the Operation. These classes allow the lineage of data in a data warehouse to be preserved, by recording when and how it was derived, and where it came from.&#10;&#10;&#10;&#10;Measurement objects allow metrics to be held for any ModelElement. For example, they may be used to hold actual, estimated or planned values for the size of a table.&#10;&#10;&#10;&#10;ChangeRequests allow details of proposed changes affecting any ModelElement to be recorded. They may also be used to keep a historical record of changes implemented or rejected. &#10;&#10;&#10;&#10;The Warehouse Operation package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::ObjectModel::Behavioral&#10;&#10;    org.omg::CWM::Analysis::Transformation&#10;&#10;&#10;&#10;Separate model diagrams are shown below for each of the three main areas supported by the package.&#10;&#10;&#10;&#10;OCL Representation of Warehouse Operation Constraints&#10;&#10;&#10;&#10;[C-1] A ChangeRequest instance must not apply to itself.&#10;&#10;context ChangeRequest&#10;&#10;inv: self.modelElement -&gt; forAll (element | element &lt;&gt; self)&#10;&#10;&#10;&#10;[C-2] A completionDate may only be provided for a completed ChangeRequest.&#10;&#10;context ChangeRequest&#10;&#10;inv: self.completionDate-&gt;notEmpty implies self.completed&#10;&#10;&#10;&#10;[C-3] A Measurement instance must not apply to itself.&#10;&#10;context Measurement&#10;&#10;inv: self.modelElement &lt;&gt; self&#10;&#10;&#10;&#10;[C-4] If the TransformationExecution is not inProgress, the successful, status and endDate attributes must be present, and endDate must not be earlier than startDate.&#10;&#10;context TransformationExecution&#10;&#10;inv: self.inProgress=false implies (self.successful-&gt;notEmpty and&#10;&#10;self.status-&gt;notEmpty and self.endDate-&gt;notEmpty and&#10;&#10;self.endDate &gt;= self.startDate)&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1257' name='org.omg.xmi.namespace=CWMWHO' annotation='' tagId='org.omg.xmi.namespace' elements='a1256'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMWHO</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a1258' name='org.omg.mof.idl_prefix=org.omg.cwm.management' annotation='' tagId='org.omg.mof.idl_prefix' elements='a1256'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwm.management</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1259' name='Measurement' annotation='A Measurement object indicates the value of some attribute of an object. It can be the number of rows in a table, the number of pages in an index, the number of different values in a column, etc. &#10;&#10;&#10;&#10;The flexibility of this class allows for product specific extensions, without changing the model. ' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1260' name='value' annotation='The value of this Measurement.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a92'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1261' name='unit' annotation='The unit of measurement.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1262' name='type' annotation='Identifies how the value was computed.&#10;&#10;&#10;&#10;The following values have specific meanings:&#10;&#10;&#10;&#10;   measure (measured value)&#10;&#10;   estimate (estimated value)&#10;&#10;   plan (planned value)&#10;&#10;   minimum (minimum value)&#10;&#10;   maximum (maximum value)&#10;&#10;   average (average value)' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1263' name='creationDate' annotation='When the value has been computed (see also effectiveDate).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a93'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1264' name='effectiveDate' annotation='When the value is effective. For measured values, effective and creation dates should be the same. For estimated actual values, the creation date may be later than the effective date. For plan values, the effective date is normally later than the creation date.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a93'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1265' name='modelElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a1266'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a1267' name='org.omg.IDL Substitute Name=umlValue' annotation='' tagId='org.omg.IDL Substitute Name' elements='a1260'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>umlValue</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Import xmi.id='a1268' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a1269' name='ChangeRequest' annotation='This represents a request for change affecting one or more ModelElements. The change request may represent a proposed change or one that has been implemented or rejected.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1270' name='changeDescription' annotation='A description of the change.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1271' name='changeReason' annotation='The reason or justification for the ChangeRequest.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1272' name='status' annotation='The status of the ChangeRequest. This would normally contain a string such as proposed, agreed, implemented or rejected.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1273' name='completed' annotation='Indicates that no further action is required for this change request, i.e. it has either&#10;&#10;been implemented or been rejected.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1274' name='requestDate' annotation='When the change request was raised.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a93'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1275' name='completionDate' annotation='The date when all action on the change request was completed (i.e. when implementation was completed or it was rejected).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a93'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1276' name='modelElement' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a1277'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1278' name='TransformationExecution' annotation='A TransformationExecution is used to record details of a specific execution.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1279' name='startDate' annotation='The date and time when the execution started.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a93'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1280' name='endDate' annotation='The date and time when the execution ended.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a93'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1281' name='inProgress' annotation='A boolean indicating whether or not the execution is in progress.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1282' name='successful' annotation='A boolean indicating whether or not the execution completed successfully.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1283' name='status' annotation='An expression that may be used to provide status details of the execution. For example it could provide comments for a successful execution, or details of errors for an unsuccessful execution.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a51'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1284' name='ActivityExecution' annotation='An ActivityExecution is used to record details of a specific execution of a TransformationActivity.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1278'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1285' name='transformationActivity' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a731' referencedEnd='a1286'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1287' name='stepExecution' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1288' referencedEnd='a1289'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1290' name='Transformation' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a697'>
        </Model:Import>
        <Model:Class xmi.id='a1288' name='StepExecution' annotation='A StepExecution is used to record details of a specific execution of a TransformationStep.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1278'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1291' name='transformationStep' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a724' referencedEnd='a1292'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1293' name='activityExecution' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1284' referencedEnd='a1294'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1295' name='callAction' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a122' referencedEnd='a1296'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1297' name='Behavioral' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a116'>
        </Model:Import>
        <Model:Association xmi.id='a1298' name='TransformationStepExecutions' annotation='Identifies the StepExecutions that record details of each execution of a TransformationStep.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1299' name='execution' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1288'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1292' name='transformationStep' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a724'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1300' name='TransformationActivityExecutions' annotation='Identifies the ActivityExecutions that record details of each execution of a TransformationActivity.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1286' name='transformationActivity' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a731'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1301' name='execution' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1284'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1302' name='ActivityStepExecutions' annotation='Identifies all the StepExecutions associated with an ActivityExecution.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1294' name='activityExecution' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1284'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1289' name='stepExecution' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1288'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1303' name='ModelElementMeasurement' annotation='Associates a Measurement object to any ModelElement.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1266' name='modelElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1304' name='measurement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1259'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1305' name='ModelElementChangeRequest' annotation='Associates ChangeRequests with the ModelElement(s) which they affect.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1277' name='modelElement' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1306' name='changeRequest' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1269'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1307' name='StepExecutionCallAction' annotation='Where a TransformationStep involves the use of an Operation, this association between StepExecution and CallAction allows the actual parameters used in a specific execution of the TransformationStep to be recorded.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1296' name='callAction' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a122'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1308' name='stepExecution' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1288'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a1309' name='ER' annotation='Entity Relationship (ER) models are used frequently as a means of describing business processes and the data on which they operate. The ER model was a precursor of today?s object models and is probably the first data model to have the adjective &quot;semantic&quot; applied to it.&#10;&#10;&#10;&#10;Although the ER model is widely used to capture some aspects of application logic and data structure, there have been surprisingly few implementations of the model as data resources. Most development teams have preferred to map their ER models to existing data systems such as relational database management systems. This dearth of physical implementations has meant that modelers have been free to elaborate the basic ER model in any (and all) convenient directions with little or no impact on deployed information systems. Consequently, variants of the ER model abound.&#10;&#10;&#10;&#10;Because of its importance as a design and tool model, the CWM includes a foundational ER model from which individual tool models may derive their specific extensions. Doing so will improve the extent to which ER models can be interchanged between various tooling environments.&#10;&#10;&#10;&#10;The ER package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::Core&#10;&#10;    org.omg::CWM::Relationships&#10;&#10;    org.omg::CWM::Foundation::Expressions&#10;&#10;    org.omg::CWM::Foundation::KeysIndexes&#10;&#10;&#10;&#10;Many ER model concepts map directly onto equivalent CWM concepts, making the ER classes seem to be little more than renamings of CWM classes. However, the renaming provided by deriving ER model classes from appropriate CWM classes is considered valuable to promote understanding. In such cases, the discussion of the role of ER classes has been kept minimal. However, when important modeling choices were required, they are discussed in the following class descriptions.&#10;&#10;&#10;&#10;OCL Representation of Entity Relationship Constraints&#10;&#10;&#10;&#10;[C-1] A Domain instance may not be its own base type.&#10;&#10;context Domain inv:&#10;&#10;self.baseType &lt;&gt; self&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1310' name='org.omg.mof.idl_prefix=org.omg.cwmx.foundation' annotation='' tagId='org.omg.mof.idl_prefix' elements='a1309'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwmx.foundation</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a1311' name='org.omg.xmi.namespace=CWMXER' annotation='' tagId='org.omg.xmi.namespace' elements='a1309'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMXER</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1312' name='Entity' annotation='Instances of the Entity class are the primary objects in a ER model. They represent ideas, processes, and things of interest in an application system or tool model.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
        </Model:Class>
        <Model:Class xmi.id='a1313' name='NonuniqueKey' annotation='A NonUniqueKey in the ER model is equivalent to a CWM Index. Values of the keys are not necessarily either unique or required.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a348'>
        </Model:Class>
        <Model:Class xmi.id='a1314' name='CandidateKey' annotation='Candidate keys are keys that meet the requirements for being a primary key. However, only keys that are members of the PrimaryKey subclass have actually been identified as primary keys.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a341'>
        </Model:Class>
        <Model:Class xmi.id='a1315' name='ForeignKey' annotation='A ForeignKey instance identifies a set of attributes in one Entity instance that uniquely identifies an instance of another Entity containing a matching primary or candidate key value.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a345'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1316' name='relationshipEnd' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1317' referencedEnd='a1318'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1319' name='Domain' annotation='Domain instances represent restrictions on data types declared elsewhere and can be used as the type of Attribute instances. Domains restrict, in a manner described by their validationRule attribute, the values of the type identified via the baseType reference that can be stored in the Attribute. Because the baseType reference is optional, Domains are not required to have a base type; in such cases, the type of the Domain is the type of the default expression.&#10;&#10;&#10;&#10;The following figures illustrate ways that Domains can be used to subset a enumerated and numeric data types.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a23'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1320' name='default' annotation='An expression indicating the default value of Attributes for which this Domain serves as the type.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1321' name='validationRule' annotation='Contains an expression that describes the valid values for this attribute. If the baseType reference is not empty, the expression restricts the values of the base type indicated by it.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1322' name='baseType' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a1323'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a1324' name='org.omg.mof.idl_substitute_name=defaultValue' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a1320'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>defaultValue</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Import xmi.id='a1325' name='Expressions' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a310'>
        </Model:Import>
        <Model:Import xmi.id='a1326' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a1327' name='Attribute' annotation='Instances of the ER model Attribute class represent characteristics of some Entity or Relationship instance.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
        </Model:Class>
        <Model:Tag xmi.id='a1328' name='org.omg.mof.idl_substitute_name=ErAttribute' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a1327'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>ErAttribute</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1329' name='Relationship' annotation='ER Relationship instances represent links between Entity instances. Because they derive from AssociationClass, Relationships can have attributes as allowed by some ER model extensions. This derivation also allows Relationship instances to be used as the end points of other Relationship instances.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a169'>
        </Model:Class>
        <Model:Tag xmi.id='a1330' name='org.omg.mof.idl_substitute_name=ErRelationship' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a1329'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>ErRelationship</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1317' name='RelationshipEnd' annotation='The RelationshipEnd class extends CWM?s AssociationEnd class to permit the definition of separate delete, update, and insert rules on each end of a Relationship.&#10;&#10;&#10;&#10;An ER model Relationship instance owns two or more RelationshipEnds via an inherited CWM association between the Association and AssociationEnd classes.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a170'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1331' name='delete' annotation='An expression describing the integrity constraint rule for deletes on this RelationshipEnd instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1332' name='update' annotation='An expression describing the integrity constraint rule for updates on this RelationshipEnd instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1333' name='insert' annotation='An expression describing the integrity constraint rule for inserts on this RelationshipEnd instance. ' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1334' name='foreignKey' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1315' referencedEnd='a1335'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1336' name='ModelLibrary' annotation='A collection of ER models and model libraries. Model libraries can be nested using the inherited CWM ElementOwnership association between Namespace and ModelElement. The same inherited CWM association is used to define ER package Model instances that reside in the current model library.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a33'>
        </Model:Class>
        <Model:Class xmi.id='a1337' name='Model' annotation='Instances of this class represent ER models. Models are collected together by ModelLibrary instances.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a34'>
        </Model:Class>
        <Model:Tag xmi.id='a1338' name='org.omg.mof.idl_substitute_name=ErModel' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a1337'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>ErModel</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1339' name='SubjectArea' annotation='A meaningful subset of the instances in an ER Model instance. Normally, a SubjectArea instance will consist of the Entity and Relationship instances it owns or imports. The inherited CWM ElementOwnership association between ModelElement and Namespace is used to link SubjectArea instances to their owning Model instances.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
        </Model:Class>
        <Model:Class xmi.id='a1340' name='PrimaryKey' annotation='PrimaryKey instances identify a key that uniquely identifies each instance of an Entity and that is distinguished by the modeler as the Entity?s primary key.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1314'>
        </Model:Class>
        <Model:Association xmi.id='a1341' name='ForeignKeyImplements' annotation='Identifies the ForeignKey that implements a particular RelationshipEnd.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1318' name='relationshipEnd' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1317'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1335' name='foreignKey' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1315'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1342' name='DomainBaseType' annotation='Identifies a Classifier instance that represents the type upon which the Domain instance is based.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1323' name='baseType' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1343' name='domain' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1319'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a1344' name='KeysIndexes' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a338'>
        </Model:Import>
        <Model:Import xmi.id='a1345' name='Relationships' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a166'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a1346' name='COBOLData' annotation='The concepts and ideas implicit in the definition of the COBOL language?s DATA DIVISION were one of the earliest (if not the first) formalizations of the ubiquitous record model. A COBOL program contains much more than just record descriptions.&#10;&#10;&#10;&#10;However, because neither CWM nor UML attempt to describe programming languages directly, only the DATA DIVISION is described here. The model presented here is  compliant to the COBOL 85 language standard [COBOL].&#10;&#10;&#10;&#10;The primary purpose of the COBOL DATA DIVISION metamodel extension package in CWM is to allow the structure of DATA DIVISIONs to be captured so that their usage of other model elements (such as RecordDefs and Fields) can be modeled. This allows definition of files and databases created by COBOL programs as well as direct support for tools that attempt to track the lineage and determine the impact of proposed changes to COBOL application programs. The metamodel does not, however, provide sufficient structure to support tools that want to capture the structure of a DATA DIVISION source into a CWM repository and then be able to faithfully reproduce the source on demand.&#10;&#10;&#10;&#10;The COBOL DATA DIVISION metamodel extension also serves as an example of the use of the CWM Record metamodel. The CWM Record package is intended as a foundation upon which many record-oriented programming languages can be described. The COBOL Data Division extension package is provided as example demonstrating appropriate usage of CWM and UML classes in modeling the data structure representation parts of this and similar programming language environments.&#10;&#10;&#10;&#10;The COBOL Data Division package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::Foundation::KeysIndexes&#10;&#10;&#10;&#10;OCL Representation of COBOLData Constraints&#10;&#10;&#10;&#10;[C-1] The presence of a padding character can be indicated either by a constant (in the padLiteral attribute) or by a reference to another field via the padField reference but not by both.&#10;&#10;context COBOLFD inv:&#10;&#10;self.padLiteral &lt;&gt; &quot;&quot; implies self.padField-&gt;isEmpty&#10;&#10;&#10;&#10;[C-2] Level 77 fields must be owned by the Working Storage or the Linkage sections and may not have children.&#10;&#10;context COBOLField inv:&#10;&#10;self.level = 77 implies (self.classifier.oclIsKindOf(WorkingStorageSection) or&#10;&#10;self.classifier.oclIsKindOf(LinkageSection) and self.type.feature-&gt;isEmpty&#10;&#10;&#10;&#10;[C-3] Field level must be 01 to 49, 77.&#10;&#10;context COBOLField inv:&#10;&#10;(self.level &gt;= 1 and self.level &lt;= 49) or self.level = 77&#10;&#10;&#10;&#10;[C-4] A COBOLField can only be redefined by fields at the same level.&#10;&#10;context COBOLField inv:&#10;&#10;self.redefinedByField-&gt;NotEmpty implies self.level = self.redefinedByField.level&#10;&#10;&#10;&#10;[C-5] The RecordDef instances defined within each COBOLFD in a FileSection instance must belong to the FileSection instance.&#10;&#10;context FileSection inv:&#10;&#10;self.cobolFD.record-&gt;exists(p | p = self.record)&#10;&#10;&#10;&#10;[C-6] LinageInfo must either have a value or reference a COBOLItem, but not both.&#10;&#10;context LinageInfo inv:&#10;&#10;self.value-&gt;isEmpty implies not self.cobolItem-&gt;isEmpty' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1347' name='org.omg.xmi.namespace=CWMXCOBOL' annotation='' tagId='org.omg.xmi.namespace' elements='a1346'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMXCOBOL</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a1348' name='org.omg.mof.idl_prefix=org.omg.cwmx.resource' annotation='' tagId='org.omg.mof.idl_prefix' elements='a1346'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwmx.resource</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1349' name='COBOLFD' annotation='Represents COBOL FD definitions. FDs describe files that are used in COBOL programs. &#10;&#10;&#10;&#10;The size of COBOLFD records may vary within a range bounded by the contents of the minRecords and maxRecords attributes and with a current size given by the field identified by the dependsOn reference. Two attributes and a reference are used to represent the necessary information. To illustrate the roles they play, the names of the attributes and the reference are substituted into the following COBOL syntax fragment:&#10;&#10;&#10;&#10;   RECORD IS VARYING FROM minRecords TO maxRecords DEPENDING ON dependsOn' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29 a587'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1350' name='organization' annotation='Contains the physical organization of the file.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1351'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1352' name='accessMode' annotation='Contains the access mode of the file.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1353'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1354' name='isOptional' annotation='If True, the file is optional at runtime.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1355' name='reserveAreas' annotation='Contains the number of buffer areas reserved for the file.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1356' name='assignTo' annotation='Contains the name of the storage medium the file is assigned to.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1357' name='codeSetLit' annotation='Contains the name of the code set.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1358' name='blockSizeUnit' annotation='Contains the unit type for the contents of the minBlocks and maxBlocks fields.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1359'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1360' name='minBlocks' annotation='Contains the minimum number of &lt;units&gt; per block, where &lt;unit&gt; is specified by the blockSizeUnit attribute.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1361' name='maxBlocks' annotation='Contains the maximum number of &lt;units&gt; per block, where &lt;unit&gt; is specified by the blockSizeUnit attribute.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1362' name='minRecords' annotation='Contains the minimum number of characters per record.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1363' name='maxRecords' annotation='Contains the maximum number of characters per record.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1364' name='labelKind' annotation='Contains the label kind of the file.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1365'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1366' name='isExternal' annotation='If True, the file is external.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1367' name='isGlobal' annotation='If True, the file is global.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1368' name='padLiteral' annotation='If not an empty string, contains the pad character. If an empty string, the padField reference may point to a COBOLField instance that contains the pad character.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1369' name='fileSection' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1370' referencedEnd='a1371'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1372' name='linageInfo' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1373' referencedEnd='a1374'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>4</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1375' name='statusID' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1376' referencedEnd='a1377'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1378' name='dependsOn' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1376' referencedEnd='a1379'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1380' name='padField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1376' referencedEnd='a1381'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1382' name='relativeField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1376' referencedEnd='a1383'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1384' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a1376' name='COBOLItem' annotation='The COBOLItem class is an abstract metaclass that represents the commonalities shared by both the COBOLField and Renames metaclasses.' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a577'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1385' name='relativeFD' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1349' referencedEnd='a1386'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1387' name='statusFD' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1349' referencedEnd='a1388'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1389' name='dependingFD' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1349' referencedEnd='a1390'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1391' name='paddedFD' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1349' referencedEnd='a1392'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1393' name='linageInfo' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1373' referencedEnd='a1394'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1395' name='occurringField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1396' referencedEnd='a1397'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1396' name='COBOLField' annotation='Represents fields that appear in COBOL record descriptions. COBOLField instances are associated with their owning RecordDef or Group instances via the UML owner/feature association between Feature and Classifier.&#10;&#10;&#10;&#10;The VALUE IS clause for a COBOLField instance is stored in the initialValue attribute inherited from the UML Attribute superclass.&#10;&#10;&#10;&#10;The &quot;occurs-depending&quot; syntax that may be attached to a COBOLField instance is addressed by a collection of attributes (occursLower and occursUpper) and a reference (dependingOnField). To illustrate the roles these attributes and references play, their names can be substituted into the following COBOL syntax fragment: &#10;&#10;&#10;&#10;    OCCURS occursLower TO occursUpper TIMES DEPENDING ON dependingOnField' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1376'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1398' name='level' annotation='The level number of a COBOLField.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1399' name='signKind' annotation='The type of sign for the field.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1400'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1401' name='isFiller' annotation='If True, the field is a filler field.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1402' name='isJustifiedRight' annotation='If True, the content of the field is right justified.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1403' name='isBlankWhenZero' annotation='If True, the field is interpreted as having the numeric value zero when the field contains blanks.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1404' name='isSynchronized' annotation='If True, the field is synchronized.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1405' name='picture' annotation='Contains the picture specification for the field.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1406' name='occursLower' annotation='If the field occurs, contains the lower bound of the number of possible occurrences.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1407' name='occursUpper' annotation='If the field occurs, contains the upper bound of the number of possible occurrences.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1408' name='indexName' annotation='A list of strings that are the names obtained from the INDEXED BY clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1409' name='isExternal' annotation='If True, the field is external.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1410' name='isGlobal' annotation='If True, the field is global.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1411' name='dependingOnField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1376' referencedEnd='a1412'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1413' name='occursKeyInfo' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1414' referencedEnd='a1415'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1416' name='occursKeyFieldInfo' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1414' referencedEnd='a1417'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1418' name='redefinedByField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1396' referencedEnd='a1419'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1420' name='redefinedField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1396' referencedEnd='a1421'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1422' name='firstRenames' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1423' referencedEnd='a1424'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1425' name='thruRenames' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1423' referencedEnd='a1426'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1423' name='Renames' annotation='Renames instances define alternate identifiers for one or more contiguous COBOLField instances. Although they are not truly COBOL fields, Renames must be ordered in a record along with true COBOL fields. Because they are ObjectModel Features, they can be ordered among COBOL fields via the ClassifierFeature association.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1376'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1427' name='firstField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1396' referencedEnd='a1428'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1429' name='thruField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1396' referencedEnd='a1430'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1431' name='Section' annotation='Instances of Section describe the various sections of a COBOL Data Division.  Section instances are use primarily as collection containers for the RecordDefs that a Section may contain.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a23'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1432' name='record' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a582' referencedEnd='a1433'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1434' name='Record' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a574'>
        </Model:Import>
        <Model:Class xmi.id='a1435' name='WorkingStorageSection' annotation='Represents the Working Storage section of a COBOL Data Division.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1431'>
        </Model:Class>
        <Model:Class xmi.id='a1370' name='FileSection' annotation='Represents the File section of a COBOL Data Division.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1431'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1436' name='cobolFD' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1349' referencedEnd='a1437'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1438' name='ReportWriterSection' annotation='Represents the Report Writer section of a COBOL Data Division. Although a metaclass for this section remains in the standard, the section itself appears to be deprecated.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1431'>
        </Model:Class>
        <Model:Class xmi.id='a1439' name='LinkageSection' annotation='Instances of Section describe the various sections of a COBOL Data Division. Section instances are use primarily as collection containers for the RecordDefs that a Section may contain.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1431'>
        </Model:Class>
        <Model:Class xmi.id='a1414' name='OccursKey' annotation='This intersection class identifies the COBOLField instances that are parts of occurs keys and contains attributes relevant to the fields? roles in the occurs key.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1440' name='isAscending' annotation='If True, the COBOLField on the occursKeyField end is maintained in an ascending order in the occurs key. If False, the occursKeyField is maintained in descending order. ' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1441' name='occursKeyField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1396' referencedEnd='a1442'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1443' name='occursKeyOf' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1396' referencedEnd='a1444'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1373' name='LinageInfo' annotation='LinageInfo instances are used to record the individual components of a LINAGE clause for a COBOLFD. A LINAGE clause is used to specify a page layout for a sequential file.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1445' name='value' annotation='Contains the value of the LinageInfo. If the value is empty, the cobolField reference must identify a COBOLField instance that contains the value.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1446' name='type' annotation='Identifies the COBOLItem instance that contains the linage information. If thisreference is empty, the value attribute must contain the linage information.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1447'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1448' name='cobolFD' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1349' referencedEnd='a1449'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1450' name='cobolItem' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1376' referencedEnd='a1451'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1452' name='COBOLFDIndex' annotation='A COBOLFDIndex instance represents a RECORD KEY or ALTERNATE RECORD KEY for an INDEXED file.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a348'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1453' name='isAlternate' annotation='If True, this is an alternate index.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1454' name='Usage' annotation='A subclass of UML?s DataType class representing valid COBOL usage types. The type attribute that a COBOLField inherits from StructuralFeature should point to one of the instances of Usage defined here.&#10;&#10;&#10;&#10;Defined M1 instances of the Usage class have the names: COMP, DISPLAY, and INDEX. Common extension data types (such as BINARY, PACKEDDECIMAL, COMP-1, COMP-2, COMP-3, etc.) can be easily added by creating addition M1 instances of Usage without the need to change the metamodel change.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a30'>
        </Model:Class>
        <Model:DataType xmi.id='a1353' name='AccessType' annotation='An enumeration representing the values that a COBOLFD access mode may take.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='AccessType' xmi.tcId='IDL:org.omg.cwmx.resource/COBOLData/AccessType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='at_unspecified'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='at_dynamic'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='at_random'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='at_sequential'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a1455' name='org.omg.xmi.enumerationUnprefix=at_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a1353'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>at_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:DataType xmi.id='a1359' name='BlockKind' annotation='An enumeration representing the values that COBOLFD block size fields may take.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='BlockKind' xmi.tcId='IDL:org.omg.cwmx.resource/COBOLData/BlockKind:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='bk_records'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='bk_characters'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a1456' name='org.omg.xmi.enumerationUnprefix=bk_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a1359'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>bk_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:DataType xmi.id='a1351' name='FileOrganization' annotation='An enumeration representing the values that a COBOLFD  file organization may take.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='FileOrganization' xmi.tcId='IDL:org.omg.cwmx.resource/COBOLData/FileOrganization:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='fo_unspecified'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='fo_indexed'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='fo_relative'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='fo_sequential'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a1457' name='org.omg.xmi.enumerationUnprefix=fo_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a1351'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>fo_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:DataType xmi.id='a1365' name='LabelKind' annotation='An enumeration representing the values that a COBOLFD label kind may take.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='LabelKind' xmi.tcId='IDL:org.omg.cwmx.resource/COBOLData/LabelKind:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='lk_unspecified'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='lk_standard'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='lk_omitted'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a1458' name='org.omg.xmi.enumerationUnprefix=lk_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a1365'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>lk_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:DataType xmi.id='a1447' name='LinageInfoType' annotation='An enumeration representing the types of linage information the are maintained for a COBOLFD.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='LinageInfoType' xmi.tcId='IDL:org.omg.cwmx.resource/COBOLData/LinageInfoType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='li_linage'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='li_linageFooting'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='li_linageTop'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='li_linageBottom'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a1459' name='org.omg.xmi.enumerationUnprefix=li_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a1447'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>li_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:DataType xmi.id='a1400' name='SignKindType' annotation='An enumeration representing the values that a COBOLField sign may take.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='SignKindType' xmi.tcId='IDL:org.omg.cwmx.resource/COBOLData/SignKindType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='sk_unsigned'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='sk_leadingSign'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='sk_trailingSign'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='sk_leadingSepSign'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='sk_trailingSepSign'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a1460' name='org.omg.xmi.enumerationUnprefix=sk_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a1400'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>sk_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Association xmi.id='a1461' name='OccursDependingOn' annotation='Associates occurring COBOLItem instances with the fields that contain the current number of occurrences.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1412' name='dependingOnField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1376'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1397' name='occurringField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1396'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1462' name='FDStatusID' annotation='Associates COBOLFD instances with the COBOLItem instance that contains the status ID of the COBOLFD.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1377' name='statusID' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1376'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1388' name='statusFD' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1349'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1463' name='LinageField' annotation='Associates COBOLField instances with LinageInfo instances that pertain to them.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1451' name='cobolItem' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1376'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1394' name='linageInfo' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1373'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1464' name='LinageInfoField' annotation='Associates a COBOLFD instance with the LinageInfo intersection instances containing information about the FD?s linage displays.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1374' name='linageInfo' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1373'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>4</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1449' name='cobolFD' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1349'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1465' name='FileSectionFD' annotation='Associates a COBOL File section with the COBOLFD instances that it contains.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1437' name='cobolFD' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1349'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1371' name='fileSection' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1370'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1466' name='Redefines' annotation='If this association is non null, the COBOLField instance on the redefinedField end is redefined by the COBOLField instance on the redefinedByField end. For example, in the following COBOL fragment&#10;&#10;&#10;&#10;    02 X&#10;&#10;    02 Y REDEFINES X&#10;&#10;&#10;&#10;X is the redefinedField instance, and Y is the redefinedByField instance.&#10;&#10;' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1421' name='redefinedField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1396'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1419' name='redefinedByField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1396'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1467' name='FDDepending' annotation='Associates COBOLFD instances with the COBOLItem instance that contains the current size of the FD?s record.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1379' name='dependsOn' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1376'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1390' name='dependingFD' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1349'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1468' name='OccursKeyField' annotation='Identifies the usage information showing how subfields of an occurring item are used to order the occurring items.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1415' name='occursKeyInfo' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1414'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1444' name='occursKeyOf' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1396'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1469' name='OccuringKeyInfo' annotation='Associates COBOLField instances with the OccursKey instances that describe how the fields participate in occurs keys.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1442' name='occursKeyField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1396'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1417' name='occursKeyFieldInfo' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1414'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1470' name='PaddingField' annotation='Associates a COBOLFD instance with a COBOLField instance that contains the FD?s pad character.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1392' name='paddedFD' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1349'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1381' name='padField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1376'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1471' name='RenamesFirst' annotation='Identifies the COBOLField instance that is the first renamed field.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1428' name='firstField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1396'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1424' name='firstRenames' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1423'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1472' name='RenamesThru' annotation='Associates COBOLField instances with the last field in a renamed range of fields.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1430' name='thruField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1396'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1426' name='thruRenames' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1423'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1473' name='RelativeOffsetField' annotation='Associates COBOLField instances that contains the current relative record offset values with the COBOLFD instances they serve.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1383' name='relativeField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1376'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1386' name='relativeFD' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1349'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1474' name='SectionRecord' annotation='Identifies the Section instances in which the RecordDef instance is defined.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1433' name='record' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a582'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1475' name='section' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1431'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a1476' name='KeysIndexes' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a338'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a1477' name='DMSII' annotation='The CWM DMSII extension package contains classes supporting the description of DMS II database schemata and their deployment. DMS II is a database system available on Unisys ClearPath NX servers. DMS II is a non-CODASYL, network model database management system. The DMS II extension package is provided as example demonstrating appropriate usage of CWM classes in modeling this and similar DBMS environments.&#10;&#10;&#10;&#10;Because DMSII database schemas are normally stored in record-based source files written in a data definition language called DASDL, the CWM DMSII extension package contains constructs allowing the declaration-order sequence of the DASDL source file to be preserved in the model. The goal of this is to allow a DASDL source to be stored into the DMSII model and subsequently regenerated from the model by a&#10;&#10;suitably designed utility program. To achieve this ordering, the DMSII model represents ownership using the CWM ClassifierFeature association which is ordered, rather than the alternate technique using the ElementOwnership association which is unordered. A side-effect of this choice is that any DMSII class that can be ordered must be subclass of the CWM ObjectModel?s Feature class; this is the reason for the&#10;&#10;multiple inheritance required to define the SetStructure, DataSet, Database and Remap classes.&#10;&#10;&#10;&#10;For convenience, utilities may chose to store the text of the DASDL file from which the database was created in a CWM Description instance attached to particular instances of DMSII model classes. The names of DMSII model elements are stored in the name attribute that every DMSII instance inherits from CWM?s ModelElement class.&#10;&#10;&#10;&#10;The DMS II package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::Foundation::BusinessInformation&#10;&#10;    org.omg::CWM::Foundation::Expressions&#10;&#10;    org.omg::CWM::Foundation::KeyIndexes&#10;&#10;    org.omg::CWM::Foundation::Record&#10;&#10;&#10;&#10;OCL Representation of DMSII Constraints&#10;&#10;&#10;&#10;[C-1] An Access must span a DataSet.&#10;&#10;context Access inv:&#10;&#10;self.spannedClass-&gt;size = 1 and self.spannedClass.oclIsKindOf(DataSet)&#10;&#10;&#10;&#10;[C-2] The types of ModelElements that may own DASDLProperties is limited by the&#10;&#10;following OCL.&#10;&#10;context DASDLProperty inv:&#10;&#10;self.owner.oclIsKindOf(DataSet) or self.owner.oclIsKindOf(SetStructure) or&#10;&#10;self.owner.oclIsKindOf(Database) or self.owner.oclIsKindOf(PhysicalDatabase) or&#10;&#10;self.owner.oclIsKindOf(PhysicalDataset) or self.owner.oclIsKindOf(PhysicalSet) or&#10;&#10;self.owner.oclIsKindOf(PhysicalDatasetOverride) or&#10;&#10;self.owner.oclIsKindOf(PhysicalSetOverride) or&#10;&#10;self.owner.oclIsKindOf(PhysicalAccessOverride)&#10;&#10;&#10;&#10;[C-3] An independent database may not be owned.&#10;&#10;context Database inv:&#10;&#10;not self.isLogical implies self.classifier-&gt;isEmpty&#10;&#10;&#10;&#10;[C-4] A logical database must be owned by an independent database.&#10;&#10;context Database inv:&#10;&#10;self.isLogical implies (self.classifier-&gt;size = 1 and&#10;&#10;self.classifier.oclIsTypeOf(Database) and not self.classifier.isLogical)&#10;&#10;&#10;&#10;[C-5] A database can own SetStructure, DataSet, Remark, and Database, Remap,&#10;&#10;PhysicalDataSetOverride, PhysicalSetOverride, and PhysicalAccessOverride&#10;&#10;instances.&#10;&#10;context Database inv:&#10;&#10;self.feature-&gt;forAll(x | x.oclIsTypeOf(SetStructure) or x.oclIsTypeOf(DataSet) or&#10;&#10;x.oclIsTypeOf(Remark) or x.oclIsTypeOf(Database) or&#10;&#10;x.oclIsTypeOf(PhysicalDataSetOverride) or x.oclIsTypeOf(Remap) or&#10;&#10;x.oclIsTypeOf(PhysicalSetOverride) or x.oclIsTypeOf(PhysicalAccessOverride))&#10;&#10;&#10;&#10;[C-6] A DataItem that owns FieldBit instances must have a data type of FIELD.&#10;&#10;context DataItem inv:&#10;&#10;self.fieldBit.notEmpty implies self.type.name = &quot;FIELD&quot;&#10;&#10;&#10;&#10;[C-7] A reference to a StructuralFeature must refer to a DataSet or a SetStructure&#10;&#10;instance.&#10;&#10;context DataItem inv:&#10;&#10;self.structure.notEmpty implies self.structure.type.oclIsKindOf(DataSet) or&#10;&#10;self.structure.type.oclIsKindOf(SetStructure)&#10;&#10;&#10;&#10;[C-8] A DataItem may not be its own occursDataItem.&#10;&#10;context DataItem inv:&#10;&#10;self.occursDataItem &lt;&gt; self&#10;&#10;&#10;&#10;[C-9]A DataItem may not be its own occuringDataItem.&#10;&#10;context DataItem inv:&#10;&#10;self.occuringDataItem &lt;&gt; self&#10;&#10;&#10;&#10;[C-10] A DataSet may have one of the following organizations.&#10;&#10;context DataItem inv:&#10;&#10;self.organization = &quot;COMPACT&quot; or self.organization = &quot;DIRECT&quot; or&#10;&#10;self.organization = &quot;ORDERED&quot; or self.organization = &quot;RANDOM&quot; or&#10;&#10;self.organization = &quot;RESTART&quot; or self.organization = &quot;STANDARD&quot; or&#10;&#10;self.organization = &quot;UNORDERED&quot;&#10;&#10;&#10;&#10;[C-11] The reorganize attribute, if present, must be one of the allowed values from&#10;&#10;the DASDL manual.&#10;&#10;context DataSet inv:&#10;&#10;self.reorganize &lt;&gt; &quot;&quot; implies self.reorganize = &quot;ITEMS SAME&quot; or self.reorganize =&#10;&#10;&quot;ITEMS CHANGED&quot;&#10;&#10;&#10;&#10;[C-12] The partitioningSet, if present, must span the DataSet.&#10;&#10;context DataSet inv:&#10;&#10;self.partitioningSet-&gt;size = 1 implies self.partitioningSet.namespace = self&#10;&#10;&#10;&#10;[C-13] If the DataSet has VariableFormatParts, it must also have an attribute of the&#10;&#10;type &quot;RECORD TYPE&quot;.&#10;&#10;context DataSet inv:&#10;&#10;self.ownedElement-&gt;exists(oclIsKindOf(VariableFormatPart)) implies&#10;&#10;self.feature.oclAsType(StructuralFeature)-&gt;exists(type.name = &quot;RECORD TYPE&quot;)&#10;&#10;&#10;&#10;[C-14] The collation clause, if present, must be one of the allowed values from the&#10;&#10;DASDL manual.&#10;&#10;context KeyItem inv:&#10;&#10;self.collation = &quot;BINARY&quot; or self.collation = &quot;EQUIVALENT&quot; or self.collation = &quot;LOGICAL&quot;&#10;&#10;&#10;&#10;[C-15] PhysicalAccessOverride instances must be owned by an Access instance.&#10;&#10;context PhysicalAccessOverride inv:&#10;&#10;self.namespace.oclIsKindOf(Access)&#10;&#10;&#10;&#10;[C-16] A PhysicalDatabase instance must be owned by a Database instance.&#10;&#10;context PhysicalDatabase inv:&#10;&#10;self.namespace-&gt;size = 1 and self.namespace.oclIsKindOf(Database)&#10;&#10;&#10;&#10;[C-17] A PhysicalDataSet instance must be owned by a DataSet instance.&#10;&#10;context PhysicalDataSet inv:&#10;&#10;self.namespace-&gt;size = 1 and self.namespace.oclIsKindOf(DataSet)&#10;&#10;&#10;&#10;[C-18] A PhysicalDataSetOverride instance must be owned by a DataSet instance.&#10;&#10;context PhysicalDataSetOverride inv:&#10;&#10;self.namespace.oclIsKindOf(DataSet)&#10;&#10;&#10;&#10;[C-19] A PhysicalSet instance must be owned by a Set instance.&#10;&#10;context PhysicalSet inv:&#10;&#10;self.namespace-&gt;size = 1 and self.namespace.oclIsKindOf(Set)&#10;&#10;&#10;&#10;[C-20] PhysicalSetOverride instances must be owned by a Set instance.&#10;&#10;context PhysicalSetOverride inv:&#10;&#10;self.namespace.oclIsKindOf(Set)&#10;&#10;&#10;&#10;[C-21] The features of a Remap must be RemapItem instances.&#10;&#10;context Remap inv:&#10;&#10;self.feature.oclIsKindOf(RemapItem)&#10;&#10;&#10;&#10;[C-22] Remap instances may remap only DataSet and Set instances.&#10;&#10;context Remap inv:&#10;&#10;self.structure.oclIsKindOf(DataSet) or self.structure.oclIsKindOf(Set)&#10;&#10;&#10;&#10;[C-23] The GIVING EXCEPTION clause is valid only if READONLY ALL was&#10;&#10;specified.&#10;&#10;context Remap inv:&#10;&#10;self.isGivingException-&gt;notEmpty implies self.isReadOnlyAll&#10;&#10;&#10;&#10;[C-24] The GIVING EXCEPTION clause is valid only if READONLY was&#10;&#10;specified.&#10;&#10;context RemapItem inv:&#10;&#10;self.isGivingException-&gt;notEmpty implies self.isReadOnly&#10;&#10;&#10;&#10;[C-25] The setType attribute must contain one of the allowed values for set&#10;&#10;organization from DASDL.&#10;&#10;context Set inv:&#10;&#10;self.setType = &quot;BITVECTOR&quot; or self.setType = &quot;UNORDERED LIST&quot; or&#10;&#10;self.setType = &quot;INDEX RANDOM&quot; or self.setType = &quot;INDEX SEQUENTIAL&quot; or&#10;&#10;self.setType = &quot;ORDERED LIST&quot;&#10;&#10;&#10;&#10;[C-26] The reorganize clause, if present, must be one of the allowed values from the&#10;&#10;DASDL manual.&#10;&#10;context Set inv:&#10;&#10;self.reorganize &lt;&gt; &quot;&quot; implies self.reorganize = &quot;KEY CHANGED&quot; or&#10;&#10;self.reorganize = &quot;KEY SAME&quot;&#10;&#10;&#10;&#10;[C-27] The items in the Set?s key data must be owned by the DataSet that the Set&#10;&#10;spans.&#10;&#10;context Set inv:&#10;&#10;self.keyDataItem-&gt;forAll(self.keyDataItem.namespace = self.spannedClass)&#10;&#10;&#10;&#10;[C-28] A Set may not partition itself.&#10;&#10;context Set inv:&#10;&#10;self.partitionedSet &lt;&gt; self&#10;&#10;&#10;&#10;[C-29] A Set may not be partitioned by itself.&#10;&#10;context Set inv:&#10;&#10;self.partitioningSet &lt;&gt; self&#10;&#10;&#10;&#10;[C-30] A SetStructure must span one and only one DataSet instance.&#10;&#10;context SetStructure inv:&#10;&#10;self.spannedClass-&gt;size = 1 and self.spannedClass.oclIsKindOf(DataSet)&#10;&#10;&#10;&#10;[C-31] Value of the duplicates attribute must be one of the allowed values from the&#10;&#10;DASDL manual.&#10;&#10;context SetStructure inv:&#10;&#10;self.duplicates = &quot;DUPLICATES&quot; or self.duplicates = &quot;DUPLICATES FIRST&quot; or&#10;&#10;self.duplicates = &quot;DUPLICATES LAST&quot; or self.duplicates = &quot;NO DUPLICATES&quot;&#10;&#10;or self.duplicates = &quot;NO DUPLICATES KEY CHANGE OK&quot;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1478' name='org.omg.xmi.namespace=CWMXDMSII' annotation='' tagId='org.omg.xmi.namespace' elements='a1477'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMXDMSII</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a1479' name='org.omg.mof.idl_prefix=org.omg.cwmx.resource' annotation='' tagId='org.omg.mof.idl_prefix' elements='a1477'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwmx.resource</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1480' name='Database' annotation='For a given DASDL source, there can be at most one Database instance with isLogical = False (representing an independent, free standing database) and zero or more with isLogical = True (each representing a Logical Database declared within the physical database). A logical database can be owned by at most one database.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a39 a16'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1481' name='isLogical' annotation='If True, this Database instance is a logical database.&#10;&#10;&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1482' name='guardFile' annotation='Contains the name of the database guard file that contains access control information for the database.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1483' name='source' annotation='Contains the text of the DASDL source from which the database was created.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1484' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a1485' name='Remap' annotation='Contains information identifying a Remap of a DMSII DataSet or Set. The features of a Remap instance must be RemapItem instances.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a582 a39'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1486' name='isRequiredAll' annotation='If True, all items in the remap are required to be non-null.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1487' name='isReadOnlyAll' annotation='If True, the READONLY ALL clause was specified.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1488' name='isGivingException' annotation='The isGivingException boolean is meaningful only if isReadOnlyAll = True. If the isGivingException boolean is absent, no exception clause was specified. If it is present, False indicates that the NO EXCEPTION clause was specified whereas True indicates the GIVING EXCEPTION clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1489' name='selectCondition' annotation='Contains the expression specified in a remap&apos;s SELECT clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a51'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1490' name='structure' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a39' referencedEnd='a1491'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1492' name='DataSet' annotation='A DataSet is the primary container of data records in a DMS II database. A DataSet instance that is owned by another DataSet instance is embedded in its owner.&#10;&#10;&#10;&#10;If the isGlobal attribute is True, the DataSet instance is the global data set -- a special data set with a single instance that contains database global data items.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a39 a582'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1493' name='isGlobal' annotation='If isGlobal = True, the DataSet instance represents the database?s global data record. There can be at most one DataSet instance with isGlobal = True for a given database, but multiple with isGlobal = False.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1494' name='organization' annotation='Identifies the structural organization of the DataSet.&#10;&#10;&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1495' name='reorganize' annotation='Contains the reorganization clause attached the DataSet instance.&#10;&#10;&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1496' name='isRequiredAll' annotation='If True, the REQUIRED ALL clause was specified in the DASDL for this DataSet instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1497' name='partitioningSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1498' referencedEnd='a1499'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1500' name='DataItem' annotation='Instances of DataItem represent the individual data fields within a DataSet. The Group class in the CWM Foundation?s DataTypes package is also available for constructing collections of fields in a DataSet.&#10;&#10;&#10;&#10;The interpretation of the contents of some attributes of a DataItem instance are dependent upon the DataItem?s type. For example, the size attribute represents the maximum number of characters in ALPHA and KANJI items, the number of digits of&#10;&#10;precision in a NUMERIC or REAL items, and the number of bits in a FIELD item. Refer to the definition of individual attributes for specifics.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a577'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1501' name='nullValue' annotation='Identifies a value of a data item that is treated as representing a null value.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1502' name='isRequired' annotation='If True, the data item must have a value when the corresponding Dataset record is stored.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1503' name='size' annotation='Contains the declared size of a data type. The precise meaning of the attribute depends on the type of the DMS II data type being declared.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1504' name='scaleFactor' annotation='Contains the &lt;scale factor&gt; value for DMS II data types.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1505' name='isSigned' annotation='Contains the state of the signed indication (&quot;S&quot;) for REAL and NUMERIC data types. Not relevant for other data types.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1506' name='occurs' annotation='Indicates the number of times the data item occurs in the DataSet record. The occurs attribute is optional, existing only for data items that have an OCCURS clause in their definition.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1507' name='isVirtual' annotation='If True, the DataItem instance is calculated when accessed using the expression stored in the virtualExpression attribute.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1508' name='virtualExpression' annotation='The expression used to calculate the value of a virtual DataItem.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1509' name='isKanji' annotation='True if the USAGE=KANJI clause was used. Otherwise USAGE=EBCDIC is assumed. Relevant only for ALPHA data items.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1510' name='ccsVersion' annotation='Identifies the CCSVersion specification of a data item.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1511' name='isGemcosLiteral' annotation='If True, the DataItem instance was defined with the GEMCOS LITERAL clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1512' name='isGemcosData' annotation='If True, the DataItem instance was defined with the GEMCOS DATA clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1513' name='isGemcosSSN' annotation='If True, the DataItem instance was defined with the GEMCOS SSN clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1514' name='isGemcosDBSN' annotation='If True, the DataItem instance was defined with the GEMCOS DBSN clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1515' name='isComsProgram' annotation='If True, the DataItem instance was defined with the COMS PROGRAM clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1516' name='isComsID' annotation='If True, the DataItem instance was defined with the COMS ID clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1517' name='isComsLocator' annotation='If True, the DataItem instance was defined with the COMS LOCATOR clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1518' name='isComsOutpQ' annotation='If True, the DataItem instance was defined with the COMS OUTPQ clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1519' name='fieldBit' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1520' referencedEnd='a1521'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>48</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1522' name='occursDataItem' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1500' referencedEnd='a1523'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1524' name='occuringDataItem' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1500' referencedEnd='a1525'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1526' name='keyDataSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1498' referencedEnd='a1527'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1528' name='structure' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a39' referencedEnd='a1529'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1530' name='remapItem' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1531' referencedEnd='a1532'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1533' name='Expressions' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a310'>
        </Model:Import>
        <Model:Class xmi.id='a1534' name='VariableFormatPart' annotation='Represents the VariableFormatParts that can be associated with a DataSet.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a582 a39'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1535' name='vfLabel' annotation='Contains the value of &lt;integer label&gt; identifying this variable format part. &lt;integer label&gt;s are the values of the DMS II data item in the fixed part of the owning DataSet instance with the type RECORD TYPE.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1536' name='selectCondition' annotation='A boolean expression determining which records appear in the Remap.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a53'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1537' name='SetStructure' annotation='SetStructure instances represent access paths in DMS II. SetStructures are connected to the DataSet instances that they span via the ElementOwnership association inherited from the Index class in the CWM Foundation?s KeysIndexes package.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a39 a348'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1538' name='duplicates' annotation='Indicates the duplicates clause associated with the SetStructure instance.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1498' name='Set' annotation='Represents a DMS II Set that spans some DataSet. Sets are represented by a physical file in a deployed DMSII database.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1537'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1539' name='setType' annotation='Contains the set organization for this Set instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1540' name='reorganize' annotation='Contains the content of the reorganization clause, if any, that was specified for the Set instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1541' name='partitioningSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1498' referencedEnd='a1542'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1543' name='partitionedSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1498' referencedEnd='a1544'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1545' name='keyDataItem' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1500' referencedEnd='a1546'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1547' name='partitionedDataSet' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1492' referencedEnd='a1548'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a1549' name='org.omg.mof.idl_substitute_name=dmsiiSetType' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a1539'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>dmsiiSetType</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1550' name='Access' annotation='Represents a DMSII Access which is used to specify the physical ordering of records in the DataSet that the Access spans. Unlike a Set instance, there is no separate physical file associated with an Access in a deployed database.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1537'>
        </Model:Class>
        <Model:Class xmi.id='a1551' name='Subset' annotation='Represents a subset of a DataSet instance. Because Subset instances have no membership expression, they are equivalent to DMS II&apos;s notion of a &quot;manual&quot; subset.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1498'>
        </Model:Class>
        <Model:Class xmi.id='a1552' name='AutomaticSubset' annotation='A Subset that has a membership expression. Records in the spanned DataSet instance are part of the AutomaticSubset instance if the expression in the condition attribute evaluates to True.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1551'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1553' name='condition' annotation='Contains the text of an expression that determines membership of the spanned DataSet&apos;s records in this AutomaticSubset instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a53'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1554' name='KeyItem' annotation='KeyItem instances correspond to DASDL&apos;s &lt;key item&gt; construct. Every Key instance has the inherited attribute isSorted = True and the inherited isAscending attribute set as indicated in the DASDL &lt;key item&gt;. By default, isAscending = True.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a353'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1555' name='collation' annotation='Identifies the value of the collation clause specified for a KeyItem instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1531' name='RemapItem' annotation='Maps a Remap instance?s field to its source, which may be some DataItem or an expression.&#10;&#10;&#10;&#10;The name attribute of a RemapItem instance defaults to the name attribute of the associated DataItem instance. If changed in the Remap definition by a &quot;&lt;identifier&gt; =&quot; clause, the name attribute of the Remap instance is simply set to &lt;identifier&gt;.&#10;&#10;&#10;&#10;The RemapItem instance?s initial value is stored in the initialValue attribute inherited from the CWM ObjectModel?s Attribute class.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a577'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1556' name='occurs' annotation='If specified, overrides the occurs attribute of the associated DataItem instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1557' name='isRequired' annotation='If True, overrides the isRequired attribute of the associated DataItem instance.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1558' name='isHidden' annotation='If True, the corresponding DataItem is not visible to the user of the Remap.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1559' name='isReadOnly' annotation='If True, the RemapItem is readonly.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1560' name='isGivingException' annotation='The isGivingException boolean is meaningful only if isReadOnly = True. If the isGivingException boolean is absent, no exception clause was specified. If it is present, False indicates that the NO EXCEPTION clause was specified whereas True indicates the GIVING EXCEPTION clause.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1561' name='isVirtual' annotation='If True, the RemapItem instance is calculated when accessed using the expression stored in the virtualExpression attribute.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1562' name='virtualExpression' annotation='The expression used to calculate the value of a virtual RemapItem.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1563' name='dataItem' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1500' referencedEnd='a1564'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1520' name='FieldBit' annotation='FieldBit instances name the individual bits in a DMS II field data item.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1565' name='dataItem' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1500' referencedEnd='a1566'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1567' name='Remark' annotation='Contains the text of a % comment embedded anywhere within a DASDL source (except at places where the Comment class should be used). Making Remarks a subtype of StructuralFeature allows their location and order within a DASDL source to be preserved.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a39'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1568' name='text' annotation='Contains the text of the Remark.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1569' name='PhysicalDatabase' annotation='Instances represent deployed physical DMS II databases.&#10;&#10;&#10;&#10;The INITIALIZE and MODEL statements are directives to the DASDL compiler and do not need to be modeled here. Rather, they cause specific actions to happen within a CWM repository. INITIALIZE causes the creation of the first PhysicalDatabase instance; MODEL causes the creation of additional PhysicalDatabase instances after the first.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
        </Model:Class>
        <Model:Class xmi.id='a1570' name='PhysicalDataSet' annotation='Identifies a physical deployment of a DMS II DataSet.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
        </Model:Class>
        <Model:Class xmi.id='a1571' name='DASDLComment' annotation='Contains the text of the single DASDL &lt;comment&gt; that nearly every object in a DASDL source may have. These comments differ from Remarks in that there is only one instance per DASDL object, their position in the source is constrained, and they&#10;&#10;are stored in the database description files. Remarks are not tied to particular database objects, can occur anywhere in a DASDL source, and exist only in the DASDL source itself. &#10;&#10;&#10;&#10;For all DASDLComments, the language attribute contains the string &quot;DASDL&quot;.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a255'>
        </Model:Class>
        <Model:Class xmi.id='a1572' name='PhysicalSet' annotation='Identifies a physical deployment of a DMS II Set.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
        </Model:Class>
        <Model:Class xmi.id='a1573' name='PhysicalDataSetOverride' annotation='Collects together DASDLProperty instances associate with a physical data set specification in the DASDL source.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a27'>
        </Model:Class>
        <Model:Class xmi.id='a1574' name='PhysicalSetOverride' annotation='Collects together DASDLProperty instances associate with a physical set specification in the DASDL source.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a27'>
        </Model:Class>
        <Model:Class xmi.id='a1575' name='PhysicalAccessOverride' annotation='Collects together DASDLProperty instances associate with a physical access specification in the DASDL source.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a27'>
        </Model:Class>
        <Model:Class xmi.id='a1576' name='DASDLProperty' annotation='The DASDL language source file from which DMS II databases are built contains a large number (&gt;100) of options related primarily to the physical characteristics or deployment of DMS II databases and the data and set structures they contain.&#10;&#10;Generally, these ?DASDL properties? are of the form &lt;name&gt; = &lt;string&gt;, where the meaning of the contents of &lt;string&gt; is specific to the property that is being described (i.e., knowing the content of &lt;name&gt;). Also, new DASDL properties are added from time to time. Capturing these DASDL properties as &lt;name&gt;/&lt;string&gt; pairs has several important side-effects, including &#10;&#10;&#10;&#10;    a much simplified DMS II model overall,&#10;&#10;    addition of new properties without having to change the model, and&#10;&#10;    maintenance of the order (because of the ordered nature of the association to &#10;&#10;        ModelElement) in which the property values were supplied in the DASDL source.&#10;&#10;&#10;&#10;Note that allowing a DASDL remark (i.e., a %-comment) to be a DASDL property in this case allows preservation of the order remarks with respect to other DASDL properties.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1577' name='text' annotation='Contains the text of the DASDL property. The precise content of the string is dependent upon the name of the DASDL property defined in the name attribute inherited from ModelElement.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1578' name='owner' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a4' referencedEnd='a1579'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a1580' name='OccursDepending' annotation='Identifies the data item that another data item depends upon for its number of occurrences. The occuringDataItem end specifies the DataItem that occurs (i.e., the &quot;array&quot; itself) whereas the occursDataItem end specifies the DataItem whose value is the number of occurrences (i.e., number of elements in the &quot;array&quot;). Observe that this works for BOTH scalar data items and group data items!' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1525' name='occuringDataItem' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1500'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1523' name='occursDataItem' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1500'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1581' name='KeyDataItem' annotation='Indicates the DataItem instances that participate in this set?s &lt;key data&gt; clause. Note that the referenced DataItem instances must be owned by the DataSet instance that the Set spans.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1546' name='keyDataItem' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1500'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1527' name='keyDataSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1498'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1582' name='SetPartitionSet' annotation='Associates a partitioned Set with its partitioning Set.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1544' name='partitionedSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1498'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1542' name='partitioningSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1498'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1583' name='DataSetPartitionSet' annotation='In DASDL, the partitioning set is specified as a physical data set option. However, it is more correctly modeled as a relationship between a DataSet instance and a Set instance.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1499' name='partitioningSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1498'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1548' name='partitionedDataSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1492'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1584' name='FieldBits' annotation='Associates a BIT data item with the labels for it individual bits.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1566' name='dataItem' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1500'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1521' name='fieldBit' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1520'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>48</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1585' name='RemapItems' annotation='Identifies the dataItem that a remapItem remaps.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1532' name='remapItem' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1531'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1564' name='dataItem' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1500'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1586' name='DASDLPropertyOwner' annotation='Associates DASDLProperties with the model elements that own them. The ordered attribute preserves the order in which individual DASDLProperty instances were found in the DASDL source file.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1579' name='owner' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a4'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1587' name='dasdlProperty' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1576'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1588' name='DataItemStructure' annotation='Links DataItems to StructuralFeatures they may reference. Used to represent the Set or DataSet referenced by various link-type dataItems and to identify the Set or DataSet to which POPULATION dataItems apply.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1529' name='structure' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a39'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1589' name='dataItem' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1500'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1590' name='RemappedStructure' annotation='Identifies the structure which a Remap instance remaps.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1491' name='structure' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a39'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1591' name='remap' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1485'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a1592' name='BusinessInformation' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a214'>
        </Model:Import>
        <Model:Import xmi.id='a1593' name='KeysIndexes' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a338'>
        </Model:Import>
        <Model:Import xmi.id='a1594' name='Record' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a574'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a1595' name='IMSDatabase' annotation='This package contains a model for IMS database definitions that is an extension of the Record package. This package also uses classes found in the ObjectModel Core package.&#10;&#10;&#10;&#10;The fundamental objects in IMS databases are DBD (Data Base Definition), PCB (Process Contol Block) and PSB (Program Specification Block).&#10;&#10;&#10;&#10;PSBs are the connection between an IMS system and application programs. PSBs contain PCBs which come in three varieties:&#10;&#10;&#10;&#10;    TP (Teleprocessing) PCBs describe a connection to a terminal&#10;&#10;    GSAM PCBs connect a PSB to a input or output file.&#10;&#10;    DB PCBs connect a PSB to the data defined by a DBD.&#10;&#10;&#10;&#10;DBDs describe the organization of data and the pathways by which an application program can retrieve or store Records. A Record within a DBD is called a Segment. Segments are connected by parent-child relationships to create the information hierarchy.&#10;&#10;&#10;&#10;A Segment can be fully described through the Fields contained within it. However, it is also valid for the Segments within a DBD to contain only a single key field. In this case, the detailed layout of information within Records is described by data structures used by the application program.&#10;&#10;&#10;&#10;Most Data Warehouse applications are concerned only with Segments and Fields. This model contains classes to cover the rest of IMS to support potential tools that might export more of the IMS structure.&#10;&#10;&#10;&#10;The IMS package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::Resource::Record&#10;&#10;&#10;&#10;OCL Representation of IMS Constraints&#10;&#10;&#10;&#10;	(None)&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1596' name='org.omg.xmi.namespace=CWMXIMS' annotation='' tagId='org.omg.xmi.namespace' elements='a1595'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMXIMS</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a1597' name='org.omg.mof.idl_prefix=org.omg.cwmx.resource' annotation='' tagId='org.omg.mof.idl_prefix' elements='a1595'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwmx.resource</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Package xmi.id='a1598' name='IMSTypes' annotation='This package contains enumeration types for IMS classes. ' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
          <Model:Namespace.contents>
            <Model:DataType xmi.id='a1599' name='AccessMethodType' annotation='Access method types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='AccessMethodType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/AccessMethodType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_DEDB'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_GSAM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_HDAM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_HIDAM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_HISAM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_HSAM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_INDEX'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_LOGICAL'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_MSDB'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_PSINDEX'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_PHDAM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_PHIDAM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_SHSAM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsam_SHISAM'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1600' name='PSBLanguageType' annotation='PSB language types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='PSBLanguageType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/PSBLanguageType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imslt_ASSEM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imslt_C'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imslt_COBOL'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imslt_PLI'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imslt_PASCAL'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1601' name='PCBType' annotation='PCB types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='PCBType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/PCBType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imspt_DB'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imspt_GSAM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imspt_TP'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1602' name='PositioningType' annotation='Positioning types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='PositioningType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/PositioningType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsps_Single'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsps_Multiple'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1603' name='LTermType' annotation='LTerm types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='LTermType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/LTermType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imstp_LTERM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imstp_NAME'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1604' name='RulesType' annotation='Rules types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='RulesType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/RulesType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsrt_FIRST'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsrt_LAST'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsrt_HERE'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1605' name='ChildPointerType' annotation='Child pointer types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='ChildPointerType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/ChildPointerType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imscp_SNGL'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imscp_DBLE'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imscp_NONE'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1606' name='FlagsType' annotation='Flag types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='FlagsType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/FlagsType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsft_P'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsft_L'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsft_V'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imdft_B'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1607' name='PointerType' annotation='Pointer types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='PointerType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/PointerType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imspn_NOTWIN'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imspn_TWIN'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imspn_HIER'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imspn_TWINBWD'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imspn_HIERBWD'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1608' name='DeviceType' annotation='Device types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='DeviceType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/DeviceType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_2305'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_2319'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_3330'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_3350'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_3375'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_3380'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_3390'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_2400'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_3400'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_TAPE'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1609' name='ModelType' annotation='Model types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='ModelType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/ModelType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_1'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_2'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsdt_11'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1610' name='RECFMType' annotation='Record format types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='RECFMType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/RECFMType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsrf_F'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsrf_FB'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsrf_V'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsrf_VB'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsrf_U'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1611' name='AlgorithmType' annotation='LPointer types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='AlgorithmType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/AlgorithmType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsat_0'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsat_1'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsat_2'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1612' name='LPointerType' annotation='' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='LPointerType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/LPointerType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imslp_LTWIN'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imslp_LTWINBWD'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1613' name='MSDBtype' annotation='Parent types' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='MSDBtype' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/MSDBtype:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsmt_NO'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsmt_TERM'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsmt_FIXED'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='imsmt_DYNAMIC'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
            <Model:DataType xmi.id='a1614' name='ParentType' annotation='' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
              <Model:DataType.typeCode>
                <XMI.CorbaTypeCode>
                  <XMI.CorbaTcEnum xmi.tcName='ParentType' xmi.tcId='IDL:org.omg.cwmx.resource/IMSDatabase/IMSTypes/ParentType:1.0'>
                    <XMI.CorbaTcEnumLabel xmi.tcName='ims_VIRTUAL'/>
                    <XMI.CorbaTcEnumLabel xmi.tcName='ims_PHYSICAL'/>
                  </XMI.CorbaTcEnum>
                </XMI.CorbaTypeCode>
              </Model:DataType.typeCode>
            </Model:DataType>
          </Model:Namespace.contents>
        </Model:Package>
        <Model:Class xmi.id='a1615' name='DBD' annotation='An instance of this object class represents an IMS Data Base Description, which is the Root entity for a DBD object.&#10;&#10;&#10;&#10;DBDs describe the organization of data and the pathways by which an application program can retrieve or store Records. A Record within a DBD is called a Segment. Segments are connected by parent-child relationships to create the information hierarchy.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a587'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1616' name='dliAccess' annotation='This attribute holds the access method of the DBD. PSINDEX, PHDAM, and PHIDAM are new valid values added for IMS V6.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1599'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1617' name='isVSAM' annotation='This attribute indicates whether the operating system access method for the DBD is VSAM. It affects the string in the ACCESS keyword in the generated DBD when dliAccess=GSAM, HDAM,or HIDAM.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1618' name='passwordFlag' annotation='This attribute is a flag to indicate whether PASSWD=YES should be specified on the DBD macro.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1619' name='versionString' annotation='This is a 255-character string that is generated with the VERSION keyword to serve as a descriptive label on the DBD.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1620' name='dataset' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1621' referencedEnd='a1622'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1623' name='segment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1624' referencedEnd='a1625'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1626' name='exit' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1627' referencedEnd='a1628'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1629' name='accessMethod' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1630' referencedEnd='a1631'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1632' name='acblib' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1633' referencedEnd='a1634'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1635' name='library' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1636' referencedEnd='a1637'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1638' name='pcb' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1639' referencedEnd='a1640'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1641' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a1642' name='PSB' annotation='An instance of this object class represents the root entity of a PSB user object. Within IMS, a PSB (Program Specification Block) is a series of PCB macro instructions that describe an application program?s I/O operations and its view and use of segments and fields in IMS databases. The types of PCBs are TP PCB which describes interactions with logical terminals, GSAM PCB which is based on a GSAM DBD used as an input or output dataset, and DB PCB which can relate to segments and fields in its base DBD.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a587'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1643' name='compatibility' annotation='The value in this attribute provides for compatibility between BMP or MSG and Batch-DL/I parameter lists. When TRUE, the PSB is always treated as if there were an I/O PCB, no matter how it is used. When FALSE, the PSB has an I/O PCB added only when run in a BMP or MSG region.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1644' name='ioErrorOption' annotation='The value in this attribute represents the condition code returned to the operating system when IMS/VS terminates normally and one or more input or output errors occurred on any data base during the application program execution.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1645' name='ioaSize' annotation='This attribute holds the size of the largest I/O area to be used by the application program. The size specification is used to determine the amount of main storage reserved in the PSB pool to hold the control region?s copy of the user?s I/O area data during scheduling of this application program. If this value is not specified, the ACB utility program calculates a maximum I/O area size to be used as a&#10;&#10;default. The size calculated is the total length of all sensitive segments in the longest possible path call. The value specified is in bytes.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1646' name='language' annotation='This attribute holds the language label used on the PSBGEN statement.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1600'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1647' name='lockMaximum' annotation='The value in this attribute indicates the maximum number of locks an application program can get at one time. The value is specified in units of 1000. For example, a lockMaximum value of 5 indicates a maximum of 5000 locks at one time. A value of 0 turns off the limit.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1648' name='maximumQxCalls' annotation='The value in this attribute represents the maximum number of data base calls with Qx command codes which may be issued between synchronization points. If this number is exceeded, the application program will abend.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1649' name='onlineImageCopy' annotation='This attribute specifies whether the user of this PSB is authorized to execute the Online Data Base Image Copy utility or the Surveyor utility feature run as a BMP against a data based named in this PSB. When TRUE, use of the Online Image Copy and the Surveyor utility feature is allowed; When FALSE, use of the Online Image copy and the Surveyor utility feature is prohibited.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1650' name='ssaSize' annotation='The value in this attribute represents the maximum total length of all SSAs to be used by the application program. The size specification is used to determine the amount of main storage reserved in the PSB pool to hold the control region?s copy of the user?s SSA string during scheduling of this application program. If not specified, the ACB utility program calculates the maximum SSA size to be used as a default. The size calculated is the maximum number of levels in any PCB within this PSB times 280. The value specified is in bytes.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1651' name='writeToOperator' annotation='This attributes holds a subparameter of the IOEROPN parameter. It is tied to the &quot;write-to-operator-with-reply&quot; function in the Utility Control facility. When TRUE, a WTOR for the DFS0451A I/O error message is issued, and DL/I waits for the operator to respond before continuing.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1652' name='pcb' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1639' referencedEnd='a1653'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1654' name='library' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1655' referencedEnd='a1656'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1657' name='acblib' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1633' referencedEnd='a1658'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1639' name='PCB' annotation='A PCB is a series of macro instructions contained in a PSB. PCBs which come in three varieties:&#10;&#10;&#10;&#10;    TP (Teleprocessing) PCBs describe a connection to a terminal&#10;&#10;    GSAM PCBs connect a PSB to a input or output file.&#10;&#10;    DB PCBs connect a PSB to the data defined by a DBD.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a587'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1659' name='pcbType' annotation='The type of PCB - whether GSAM, DB or TP' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1601'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1660' name='list' annotation='This attribute specifies whether a named PCB is included in the PCB list passed to the application program at entry. TRUE includes the PCB in the PCB list, FALSE excludes it from the PCB list.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1661' name='keyLength' annotation='The value specified in bytes of the longest concatenated key for a hierarchic path of sensitive segments used by the application program in the logical data structure.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1662' name='processingOptions' annotation='This attribute holds a string that represents the processing options on either the sensitive segments or the data set declared in this PCB and which can be used in an associated application program.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1663' name='positioning' annotation='This attribute specifies whether single or multiple positioning is desired for the logical data structure. Single or multiple positioning provides a functional variation in the call. Multiple positioning is not supported by HSAM.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1602'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1664' name='sequentialBuffering' annotation='The value in this attribute specifies if this PCB will be buffered using sequential buffering (SB). True means the SB should be activated conditionally (COND); False means that SB should not be used for this DB PCB (NO).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1665' name='alternateResponse' annotation='This attribute specifies whether this PCB can be used instead of the I/O PCB for responding to terminal in response mode, conversational mode, or exclusive mode.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1666' name='express' annotation='This attribute specifies whether messages from this alternate PCB are to be sent (TRUE) or are to be backed out (FALSE) if the application program should terminate abnormally.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1667' name='modify' annotation='This attribute specifies whether the alternate PCB is modifiable. This feature allows for the dynamic modification of the destination name associated with this PCB.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1668' name='sameTerminal' annotation='This attribute specifies whether IMS should verify that the logical terminal named in the response alternate PCB is assigned to the same physical terminal as the logical terminal that originated the input message.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1669' name='destinationType' annotation='The attribute specifies whether the ltermName attribute signifies a logical terminal (LTERM) or a transaction code (NAME). This attribute maps to the LTERM or NAME keyword on the PCB macro statement.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1603'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1670' name='ltermName' annotation='This attribute specifies the name of the actual destination of the message and is either a logical terminal name or a transaction-code name. When the name is a transaction-code name, output messages to this PCB are queued for input to the program used to process the transaction-code named by the NAME attribute. The name must be specified in the user?s IMS/VS system definition as a logical terminal name or transaction code. This attribute maps to the LTERM/NAME keyword on the PCB macro statement.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1671' name='procSeq' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1672' referencedEnd='a1673'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1674' name='senSegment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1675' referencedEnd='a1676'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1677' name='psb' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1642' referencedEnd='a1678'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1679' name='dbd' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1615' referencedEnd='a1680'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1624' name='Segment' annotation='An instance of this object class represents a segment within a DBD user object. A segment is the IMS-view of a data structure that maps the fields in the segment.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a582'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1681' name='exitFlag' annotation='This attribute is a flag to indicate whether a segment will use the data capture exits specified on the DBD. A valid of FALSE maps to use of EXIT=NONE parameter on the SEGM macro. This flag has no meaning when exits points to any instances of PropagatedBy.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1682' name='frequency' annotation='This attribute holds estimated number of times that this segment will occur for each occurrence of its physical parent.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1683' name='maximumLength' annotation='This attribute holds the length of a fixed-length segment, or the maximum length of a variable length segment.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1684' name='minimumLength' annotation='This attribute holds the minimum length of a variable length segment.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1685' name='rules' annotation='This attributes holds the value that indicates where to place new occurrences of this segment type in the physical database.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1604'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1686' name='subsetPointers' annotation='This attribute holds the number of subset pointers in a direct dependent segment in a DEDB DBD. Valid values are 0-8.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1687' name='directDependent' annotation='This attribute indicates whether the segment is direct dependent or sequential. A value of TRUE specifies use of DIR as the segment type on the generated DBD. A value of FALSE specifies use of SEQ on the generated DBD. This attribute is ignored for the root segment of the DBD user object.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1688' name='pcPointer' annotation='This attribute describes the type of physical child pointer to be stored in the prefix area of the segment in the DBD. Valid Values are SNGL, DBLE, null' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1605'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1689' name='dbd' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1615' referencedEnd='a1690'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1691' name='exit' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1627' referencedEnd='a1692'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1693' name='child' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1624' referencedEnd='a1694'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1695' name='parent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1624' referencedEnd='a1696'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1697' name='logical' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1698' referencedEnd='a1699'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1700' name='senseg' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1675' referencedEnd='a1701'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1702' name='SegmentComplex' annotation='This subclass of Segment supports the full-function features that are limited to HDAM, HIDAM and HISAM databases: specifically logical children and secondary indexes.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1624'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1703' name='deleteFlag' annotation='This attribute holds the value used for the delete rule.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1606'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1704' name='insertFlag' annotation='This attribute holds the value used for the insert rule. bidirectional is not used for the insert flag.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1606'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1705' name='replaceFlag' annotation='This attribute holds the value used for the replace rule. bidirectional is not used for the replace flag.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1606'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1706' name='segmPointer' annotation='This attribute holds the string used for pointer keyword value.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1607'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1707' name='dsGroup' annotation='This is used to arrange the segments in a partitioned database in a manner comparable to arranging them within datasets in earlier versions of IMS' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1708' name='lparent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1709' referencedEnd='a1710'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1711' name='lchild' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1709' referencedEnd='a1712'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1713' name='pairedLCHILD' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1709' referencedEnd='a1714'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1715' name='secondaryIndex' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1716' referencedEnd='a1717'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>32</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1718' name='sourcedIndex' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1716' referencedEnd='a1719'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1720' name='dataset' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1621' referencedEnd='a1721'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1698' name='SegmentLogical' annotation='An instance of this object class represents a segment in a DBD user object that has access method of LOGICAL. Segments in a logical DBD use segments in other DBDs instead of defining physical data.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1624'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1722' name='keyData1' annotation='This attribute indicates how segment data will be handled when the logical DBD is processed.&#10;&#10;&#10;&#10;A value of TRUE specifies use of &quot;DATA&quot; as the type in the first parameter of the SOURCE keyword in the generated DBD, which directs the segment key to be placed in the key feedback area and the segment data to be placed in the user?s I/O area.&#10;&#10;&#10;&#10;A value of FALSE specified use of &quot;KEY&quot; as the type, which directs only the key to be placed in the key feedback area.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1723' name='keyData2' annotation='This attribute indicates how segment data will be handled when the logical DBD is processed.&#10;&#10;&#10;&#10;A value of TRUE specifies use of &quot;DATA&quot; as the type in the second parameter of the SOURCE keyword in the generated DBD, which directs the segment key to be placed in the key feedback area and the segment data to be placed in the user?s I/O area.&#10;&#10;&#10;&#10;A value of FALSE specified use of &quot;KEY&quot; as the type, which directs only the key to be placed in the key feedback area. A value of NULL indicates that there is no second SOURCE parameter.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1724' name='physical' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1624' referencedEnd='a1725'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>2</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1726' name='Field' annotation='This sub-type is used to add the attributes that apply to a Record Field only within the context of a specific DBD. One or more Fields within a Segment can be defined as a Sequence Field, which is the Key for the segment. A Sequence Field can be defined as Unique or Multiple. A Segment description does not have to include all of the Fields defined within the data structure.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a589'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1727' name='sequenceField' annotation='This attribute is a flag to indicate whether the dataItem instance should be generated as a sequence field or not.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1728' name='uniqueSequence' annotation='This attribute is a flag to indicate whether the dataItem instance should be generated as a unique sequence field.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1729' name='fieldLength' annotation='The attribute holds the length of the data item. This value should come from the data item itself.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1730' name='generated' annotation='Indicates if the field has been generated by analyzing the &quot;copybook&quot; associated with the structure/segment, or if the field is coming directly from the IMS catalog' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1731' name='ddataIndex' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1716' referencedEnd='a1732'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1733' name='searchIndex' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1716' referencedEnd='a1734'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1735' name='subseqIndex' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1716' referencedEnd='a1736'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1737' name='senField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1738' referencedEnd='a1739'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Tag xmi.id='a1740' name='org.omg.mof.idl_substitute_name=ImsField' annotation='' tagId='org.omg.mof.idl_substitute_name' elements='a1726'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>ImsField</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1621' name='Dataset' annotation='Instances of this object type are used to hold attributes for the DATASET and AREA macro statements.&#10;&#10;&#10;&#10;DATASET and AREA macro statements describe the physical storage of the DBD in MVS datasets that are connected to an application by use of DD Statements in the JCL.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1741' name='dd1name' annotation='Name of the primary or input dataset' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1742' name='device' annotation='This attribute is the DEVICE specified on the DATASET statement.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1608'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1743' name='model' annotation='This attribute holds the model part of the DEVICE attribute on the DATASET statement. The value is not relevant for most device types.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1609'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1744' name='dd2name' annotation='Name of overflow or output dataset.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1745' name='size1' annotation='Size of area or primary or input dataset. For DEDB databases, valid values are: 512, 1024, 2048, 4096, 8192, 12288, 16384, 20480, 24576, 28672, and the Default value is 4096' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1746' name='size2' annotation='Size of overflow or output dataset' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1747' name='recordLength1' annotation='Record length in primary or input dataset.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1748' name='recordLength2' annotation='Record length in primary or input dataset.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1749' name='blockingFactor1' annotation='Blocking factor in primary or input dataset' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1750' name='blockingFactor2' annotation='Blocking factor in overflow or output dataset.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1751' name='datasetLabel' annotation='This attribute holds a label used for reverse referencing of datasets in a HDAM or HIDAM database.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1752' name='freeBlockFrequency' annotation='This attribute describes the frequency of free blocks in the initial dataset layout. Valid Values are 0, 2-100, null' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1753' name='freeSpacePercentage' annotation='This attribute describes the percentage of free space in the initial dataset layout. Valid Values are 0-99, null' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1754' name='recordFormat' annotation='This attribute describes the record format for a GSAM database. Valid Values are F, FB, V, VB, U, null' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1610'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1755' name='scanCylinders' annotation='This attribute describes the number of cylinders to be scanned to find space for new data. Valid values are 0-255' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1756' name='searchAlgorithm' annotation='This attribute specifies where should IMS look for space in which to put new data. Valid Values are 0, 1, 2, null' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1611'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1757' name='root' annotation='This attribute holds total space allocated to the root addressable part of the AREA in terms of UOWs. A value of 0 represents a null value. Valid Values are 0 or 2-32767' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1758' name='rootOverflow' annotation='This attribute holds the amount of space reserved for independent overflow in terms of units of work. A value of 0 represents a null value. Valid values are 0 or 1-32767.&#10;&#10;&#10;&#10;Constraints:&#10;&#10;&#10;&#10;    root and rootOverflow must be specified together.&#10;&#10;    The value in rootOverflow must be less than the value in root.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1759' name='uow' annotation='This attribute holds the number of control intervals in a unit of work. A value of 0 represents a null value. Valid values: 0 or 2-32767' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1760' name='uowOverflow' annotation='This attribute holds the number of control intervals in overflow section of a unit of work. A value of 0 represents a null value.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1761' name='dbd' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1615' referencedEnd='a1762'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1763' name='segment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1702' referencedEnd='a1764'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1675' name='SenSegment' annotation='The type holds the attributes that apply to a PCB?s use of a specific segment within a DBD. Application programs using a PCB can only access the segments to which that PCB is sensitive, protecting an hiding some of the data covered by the DBD.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a582'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1765' name='procoptSENSEG' annotation='This attribute holds the processing options allowable for use of this sensitive segment by an associated application program. It has the same meaning as the same attribute in the PCB, plus other options may be specified here which are not allowed on the PCB. This PROCOPT overrides the PCB PROCOPT.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1766' name='subsetPointers' annotation='This attribute specifies sensitivity to the array of subset pointers, each of which may be R (read sensitive), U (update sensitive), or N (not sensitive).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1767' name='senField' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1738' referencedEnd='a1768'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1769' name='segment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1624' referencedEnd='a1770'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1771' name='index' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1672' referencedEnd='a1772'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>32</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1773' name='pcb' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1639' referencedEnd='a1774'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1738' name='SenField' annotation='This relationship associates a SensitiveSegment instance to the Field instances that represent the fields in the segment to which the PCB must be sensitive.&#10;&#10;&#10;&#10;Field level sensitivity provides an increased level of data independence by isolating application programs from changes in the arrangement of fields within a segment and addition or deletion of data within a segment. Additionally, it enhances data security by limiting an application program to a subset of fields within a segment and controlling replace operations at the field level.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a589'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1775' name='replace' annotation='The value of this attribute specifies whether this field may be altered on a replace call.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1776' name='field' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1726' referencedEnd='a1777'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1778' name='senSegment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1675' referencedEnd='a1779'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1633' name='ACBLIB' annotation='This class represents the collection of components needed for an IMS ACB (Application Control Block).&#10;&#10;&#10;&#10;An IMS application will use one or more PSBs. For an application to be compiled successfully, all of the PSBs and all of the DBDs referenced by those PSBs must be collected into an ACBLIB.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1780' name='dbd' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1615' referencedEnd='a1781'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1782' name='psb' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1642' referencedEnd='a1783'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1630' name='AccessMethod' annotation='An instance of a subtype of this virtual class holds access-method-specific attributes of a DBD user object. DBDs with access methods MSDB, INDEX, HIDAM, DEDB or HDAM will use instances of the subclasses of this object class.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1784' name='dbd' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1615' referencedEnd='a1785'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1672' name='INDEX' annotation='An instance of the DBDindex object class represents a DBD user object that can be used to index a HIDAM database or a segment in a HDAM, HIDAM or HISAM database. The indexing relationship maps to the LCHILD statement in the macro language description of an index DBD. An INDEX DBD can also be treated as a normal single-segment DBD.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1630'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1786' name='dosCompatibility' annotation='This attribute indicates whether the index DBD was created with DLI/DOS with a segment code as part of the prefix.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1787' name='protect' annotation='This attribute is a flag for data integrity in index pointer segments.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1788' name='primaryTarget' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1789' referencedEnd='a1790'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1791' name='secondaryTarget' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1716' referencedEnd='a1792'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1793' name='sharedIndex' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1672' referencedEnd='a1794'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1795' name='sharingIndex' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1672' referencedEnd='a1796'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>16</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1797' name='senseg' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1675' referencedEnd='a1798'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1799' name='sequencedPCB' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1639' referencedEnd='a1800'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1789' name='HIDAM' annotation='An instance of this object class represents a DBD user object with an access method of HIDAM. A HIDAM DBD must have a primary index relationship to be valid. The relationship maps to an LCHILD statement under the root segment that has POINTER=INDX and no associated XDFLD statement. A HIDAM DBD is a full function DBD with indexing and logical relationships.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1630'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1801' name='index' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1672' referencedEnd='a1802'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1803' name='DEDB' annotation='An instance of this object class represents a DBD user object that has access=DEDB. A DEDB DBD is a Fast Path DBD designed for very fast transactions. It must have a randomizing module name to be valid. STAGE and XCI (Extended Call Interface) were new parameters added with IMS 5.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1630'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1804' name='rmName' annotation='This attribute is the name of the executable module used to randomize the database.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1805' name='stage' annotation='This attribute specifies whether or not the randomizer is a 1 or 2 stage process (default is 1).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1806' name='extendedCall' annotation='This attribute specifies whether or not the ramdomizer should use the extended call interface.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1807' name='HDAM' annotation='An instance of this object class represents a DBD user object that has access=HDAM. These attributes are part of the randomizing module information that a valid HDAM DBD must have. HDAM is a full-function DBD with indexing and logical relationships.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1630'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1808' name='rmName' annotation='This attribute is the name of the executable module used to randomize the database.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1809' name='relativeBlockNumber' annotation='The maximum relative block number that the user wishes to allow a randomizing module to produce for a database. This attributes determines the number of control intervals or blocks in the root-addressable area of a HDAM database. Valid Values: 0 or 1-16777215' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1810' name='rootAnchorPoints' annotation='The number of root anchor points desired in each control interval of block in the root addressable area. Valid Values: 0 or 1-255' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1811' name='rootMaxBytes' annotation='The maximum number of bytes of database record that can be stored in the root-addressable&#10;&#10;area in a series of inserts unbroken by a call to another database record.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1812' name='MSDB' annotation='A DBD with access=MSDB (Mass Storage Data Base) has msdbField and msdbType information instead of physical datasaet information.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1630'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1813' name='msdbField' annotation='This attribute holds a search field name for a Mass Storage Data Base.&#10;&#10;&#10;&#10;Update Constraints&#10;&#10;&#10;&#10;    A string is required in msdbField when msdbType=FIXED, TERM,or DYNAMIC for the DBD user object to be valid.&#10;&#10;    The string in msdbField must not be the same as the name on any FIELD statement in this DBD.&#10;&#10;msdbField must be null when msdbType=NO.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1814' name='msdbType' annotation='This attribute specifies the type of Mass Storage Data Base. It may be NO (nonterminal-related without terminal-related keys which has key and sequence field as part of the segment), FIXED (terminal-related fixed), TERM (nonterminal-related with terminal-related keys), DYNAMIC (terminal-related dynamic) or null' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1613'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1716' name='SecondaryIndex' annotation='This type holds the attributes on the relationships between a SegmentComplex instance and the INDEX instances that act as secondary indexes for the DBD (maps to combination of LCHILD and XDFLD statements).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1815' name='constant' annotation='This attribute holds a character string that defines a one-byte self-defining term with which every index pointer segment in a particular secondary index is identified. It is used to identify index pointer segments for a specific secondary index when multiple secondary indexes reside in the same database.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1816' name='exitRoutine' annotation='This attribute is the name of the executable module that suppresses creation of index pointer segments.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1817' name='nullValue' annotation='This attribute holds a character string that is a one-byte self-defining term. The creation of index pointer segments is suppressed when the specified value is contained in the search field of an index pointer segment.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1818' name='index' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1672' referencedEnd='a1819'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1820' name='segment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1702' referencedEnd='a1821'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1822' name='indexSource' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1702' referencedEnd='a1823'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1824' name='ddataFields' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1726' referencedEnd='a1825'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>5</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1826' name='searchFields' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1726' referencedEnd='a1827'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>5</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1828' name='subseqFields' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1726' referencedEnd='a1829'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>5</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1627' name='Exit' annotation='This class represents a Data Capture exit routine, which is specified to enable DB2 applications and end users to access updated IMS data. Data Capture exits can apply to an entire DBD or to a specific segment.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1830' name='key' annotation='Specifies whether the exit routine is passed the physical concatenated key. This key identifies the physical segment updated by the application. A value of TRUE makes to KEY, a value of FALSE maps to NOKEY.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1831' name='data' annotation='This attribute specifies whether the physical segment data is passed to the exit routine for updating. When DATA is specified and a Segment Edit/Compression exit routine is also used, the data passed is expanded data. A value of TRUE maps to DATA, a value of FALSE maps to NODATA.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1832' name='path' annotation='This attribute specifies whether the data from each segment in the physical root?s hierarchical path must be passed to the exit routine for an updated segment. A value of TRUE maps to PATH; a value of FALSE maps to NOPATH.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1833' name='log' annotation='This attribute specifies whether the data capture control blocks and data should be written to the IMS system log. A value of TRUE maps to LOG; a value of FALSE maps to NOLOG.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1834' name='cascade' annotation='This attribute specifies whether the exit routine is called when DL/I deletes this segment because the application deleted a parent segment. Using CASCADE ensures that data is captured for the defined segment. A value of TRUE maps to CASCADE; a value of FALSE maps to NOCASCADE.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1835' name='cascadeKey' annotation='This attribute specifies whether to pass the physical concatenated key to the exit. This key identifies the segment being deleted by a cascade delete. A value of TRUE maps to PATH; a value of FALSE maps to NOPATH.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1836' name='cascadeData' annotation='The attribute specifies whether to pass segment data to the exit routine for a cascade delete. DATA also identifies the segment being deleted when the physical concatenated key is unable to do so.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1837' name='cascadePath' annotation='This attribute specifies whether to allow an application to separately access several segments for a cascade delete. A value of TRUE maps to PATH; a value of FALSE maps to NOPATH.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1838' name='dbd' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1615' referencedEnd='a1839'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1840' name='segment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1624' referencedEnd='a1841'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1709' name='LCHILD' annotation='This type holds the attributes that apply to the relationship used to connect a SegmentComplex instance to the SegmentComplex instances for which it is the logical parent (maps to LCHILD statement and to the PARENT keyword on the SEGM statement).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1842' name='counter' annotation='This attribute holds a flag for whether COUNTER keyword is to be used in the POINTER= parameter on the child segment.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1843' name='lcPointer' annotation='This attribute holds a value used in the POINTER keyword on the LCHILD macro to specify amount of pointer fields to be reserved in the logical parent segment.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1605'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1844' name='lparentFlag' annotation='This attribute holds a flag for whether LPARNT keyword is to be used in the POINTER= parameter on the child segment.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1845' name='ltwin' annotation='This attribute holds a value to be used in the POINTER= parameter on the child segment in order to specify logical twin pointers.&#10;&#10;' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1612'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1846' name='rules' annotation='This attribute holds a value used in the RULES keyword on the LCHILD macro to control the logical twin sequence.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1604'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1847' name='virtualParent' annotation='This attribute holds a value used in the PARENT parameter on the logical child segment to specify whether the concatenated key of the logical parent segment is stored with each logical child segment.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1614'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1848' name='lparent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1702' referencedEnd='a1849'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1850' name='lchild' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1702' referencedEnd='a1851'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1852' name='pairedSegment' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1702' referencedEnd='a1853'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1655' name='PSBLib' annotation='A collection of PSBs - comparable to a COPYlib for data structures.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1854' name='psb' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1642' referencedEnd='a1855'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1636' name='DBDLib' annotation='A DBDLib is a collection of DBDs, comparable to a COPYlib for data structures.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1856' name='dbd' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1615' referencedEnd='a1857'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a1858' name='ExtendedByAccessMethod' annotation='An instance of this relationship type is used to connect an instance of DBD to an instance of AccessMethod or one of its subclasses in order to hold the access-specific attributes of a DBD. Using an extension instead of subtyping DBD directly allows a tool to change the access method of a DBD (or decide the access method later) without having to change the type of the DBD instance.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1785' name='dbd' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1615'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1631' name='accessMethod' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1630'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1859' name='PrimaryIndex' annotation='An instance of this relationship type is used to connect a HIDAM DBD to the INDEX DBD that serves as the primary index for the HIDAM database.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1790' name='primaryTarget' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1789'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1802' name='index' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1672'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1860' name='Indexes' annotation='Instances of this relationship type are used to connect each SecondaryIndex instance to the INDEX DBD that acts as a secondary index for the DBD (this information maps to the combination of LCHILD and XDFLD statements).' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1792' name='secondaryTarget' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1716'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1819' name='index' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1672'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1861' name='IsIndexedBy' annotation='Instances of this relationship type are used to connect a SegmentComplex instance to the SecondaryIndex instances that act as secondary indexes for the DBD user object (maps to combination of LCHILD and XDFLD statements).' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1717' name='secondaryIndex' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1716'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>32</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1821' name='segment' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1702'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1862' name='IndexShares' annotation='This relationship connects an Index DBD to the other index DBDs sharing the dataset. This models the shared secondary index type of DBD.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1796' name='sharingIndex' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1672'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>16</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1794' name='sharedIndex' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1672'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1863' name='Searched' annotation='Instances of this relationship type are used to connect a SecondaryIndex instance to the Field instances that are used by the secondary index as search fields (SEARCH keyword on XDFLD statement).' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1827' name='searchFields' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1726'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>5</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1734' name='searchIndex' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1716'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1864' name='IsDuplicateData' annotation='Instances of this relationship type are used to connect a SecondaryIndex instance to the Field instances that are used by the secondary index as duplicate data fields (DDATA keyword on XDFLD statement).' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1825' name='ddataFields' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1726'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>5</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1732' name='ddataIndex' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1716'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1865' name='Subsequenced' annotation='Instances of this relationship type are used to connect a SecondaryIndex instance to the Field instances that are used by the secondary index as subsequence fields (SUBSEQ keyword on XDFLD statement).' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1736' name='subseqIndex' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1716'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1829' name='subseqFields' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1726'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>5</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1866' name='IsLChild' annotation='Instances of this relationship type are used to connect a SegmentComplex to its logical children.&#10;&#10;' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1712' name='lchild' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1709'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1849' name='lparent' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1702'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1867' name='HasSource' annotation='This relationship connects a logical segment to the one or two physical segments that contain the data. This relationship maps to the SOURCE keyword on the SEGM statement in a DBD with access=LOGICAL.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1699' name='logical' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1698'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1725' name='physical' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1624'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>2</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1868' name='SequencedBy' annotation='An instance of this relationship type is used to connect a PCB instance to the INDEX DBD that defines the processing sequence (PROCSEQ parameter) for the PCB.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1673' name='procSeq' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1672'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1800' name='sequencedPCB' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1639'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1869' name='Indices' annotation='Instances of this relationship type are used to connect a SensitiveSegment instance to the INDEX DBDs that are used as INDICES by the SENSEG.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1772' name='index' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1672'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>32</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1798' name='senseg' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1675'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1870' name='ContainsPSB' annotation='This relationship collects PSBs in an ACBLIB.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1658' name='acblib' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1633'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1783' name='psb' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1642'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1871' name='ContainsDBD' annotation='This relationship collects DBDs in an ACBLIB.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1634' name='acblib' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1633'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1781' name='dbd' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1615'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1872' name='HasIndexSource' annotation='An instance of this relationship type is used to connect a SecondaryIndex instance to the SegmentComplex instance that represents the index source segment for the secondary index (SEGMENT keyword on XDFLD statement).' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1823' name='indexSource' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1702'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1719' name='sourcedIndex' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1716'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1873' name='ContainsDataset' annotation='This relationship connects a DBD to the set of Datasets it uses.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1762' name='dbd' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1615'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1622' name='dataset' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1621'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1874' name='ContainsSegment' annotation='Instances of this relationship type are used to connect a DBD instance to the Segment instances that are used in the DBD user object.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1625' name='segment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1624'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>true</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1690' name='dbd' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1615'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1875' name='PcbToDbd' annotation='An instance of this relationship type is used to connect a PCB to the DBD on which the PCB is based. The base DBD contains all of the segments that the PCB can access.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1680' name='dbd' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1615'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1640' name='pcb' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1639'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1876' name='PsbToPcb' annotation='The relationship connects a PSB to the PCBs used within it.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1653' name='pcb' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1639'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1678' name='psb' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1642'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1877' name='PcbToSenSegment' annotation='Instances of this relationship type are used to connect a PCB to the SenSegments that reference the segments to which the PCB is sensitive.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1676' name='senSegment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1675'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1774' name='pcb' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1639'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1878' name='SensegToSenfld' annotation='Instances of this relationship type are used to connect a SensitiveField instance to the SensitiveSegment that is sensitive to a field.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1779' name='senSegment' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1675'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1768' name='senField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1738'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1879' name='SensegMapsTo' annotation='Instances of this relationship type are used to connect a SensitiveSegment instance to the Segment instance that represents a segment to which the PCB is sensitive.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1770' name='segment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1624'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1701' name='senseg' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1675'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1880' name='ParentChild' annotation='An instance of this relationship type is used to connect an Segment instance to the hierarchical parent Segment instance in the same DBD user object (maps to PARENT keyword on SEGM macro statement).' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1694' name='child' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1624'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1696' name='parent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1624'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1881' name='SenfldToField' annotation='Instances of this relationship type are used to connect a SensitiveField instance to the Field instance that represents a field to which the sensitiveSegment is sensitive.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1777' name='field' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1726'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1739' name='senField' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1738'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1882' name='Captures' annotation='This relationship connects a DBD to data capture exits.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1628' name='exit' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1627'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1839' name='dbd' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1615'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1883' name='CapturesExit' annotation='This relationship connects a Segment to data capture exits.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1692' name='exit' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1627'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1841' name='segment' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1624'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1884' name='IsLParent' annotation='Instances of this relationship connect a SegmentComplex to its logical parent.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1710' name='lparent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1709'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1851' name='lchild' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1702'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1885' name='IsPaired' annotation='This relationship connects a logical child to the bidirectionally paired segment.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1714' name='pairedLCHILD' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1709'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1853' name='pairedSegment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1702'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1886' name='IsInDBDLib' annotation='DBDs are stored in a DBDlib' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1857' name='dbd' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1615'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1637' name='library' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1636'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1887' name='IsInPSBLib' annotation='PSBs are stored in a PSBlib' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1656' name='library' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1655'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1855' name='psb' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1642'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1888' name='StoresSegment' annotation='In a full-function database, a segment can be assigned to a specific dataset.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1721' name='dataset' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1621'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1764' name='segment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1702'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a1889' name='Record' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a574'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a1890' name='Essbase' annotation='The Hyperion Essbase package represents the physical data model for a Hyperion Essbase Database. This package extends the Multidimensional package and provides a specific metadata representation for Hyperion?s Essbase multidimensional database.&#10;&#10;&#10;&#10;The classes in this package can be used as either sources or targets of data in the data warehouse, and are available to provide a physical implementation of the OLAP data model.&#10;&#10;&#10;&#10;The Essbase package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::Foundation::Expressions&#10;&#10;    org.omg::CWM::Foundation::SoftwareDeployment&#10;&#10;    org.omg::CWM::Resource::Multidimensional&#10;&#10;    org.omg::CWM::Analysis::OLAP&#10;&#10;&#10;&#10;Note that the Essbase metamodel is primarily dependent on classes of the Multidimensional model.&#10;&#10;&#10;&#10;OCL Representation of Essbase Constraints&#10;&#10;&#10;&#10;[C-1] Restrict the cardinality of the namespace role to 1 so that a Database must always be owned by an Application.&#10;&#10;context Database inv:&#10;&#10;self.namespace-&gt;notEmpty and self.namespace.oclIsKindOf( Application )&#10;&#10;&#10;&#10;[C-2] Essbase Dimensions are not composed from other Essbase dimensions.&#10;&#10;context Dimension&#10;&#10;inv: self.component-&gt;isEmpty&#10;&#10;inv: self.composite-&gt;isEmpty&#10;&#10;&#10;&#10;[C-3] The inclusion of certain DimensionedObjects is valid only for certain DimensionTypes.&#10;&#10;context Dimension&#10;&#10;inv: self.dimensionedObject-&gt;includes( TimeBalance ) implies self.type = #ess_accounts&#10;&#10;inv: self.dimensionedObject-&gt;includes( VarianceReporting ) implies self.type = #ess_accounts&#10;&#10;inv: self.dimensionedObject-&gt;includes( CurrencyConversion ) implies self.type = #ess_currencyPartition&#10;&#10;inv: self.dimensionedObject-&gt;includes( UDA ) implies self.type = #ess_attribute&#10;&#10;&#10;&#10;[C-4] The Outline name must be the same as the Database name.&#10;&#10;context Outline inv:&#10;&#10;self.name = self.database.name&#10;&#10;&#10;&#10;[C-5] Restrict the cardinality of the namespace role to 1 so that a Partition must&#10;&#10;always be owned by a Database.&#10;&#10;context Partition inv:&#10;&#10;self.namespace-&gt;notEmpty and self.namespace.oclIsKindOf( Database )&#10;&#10;&#10;&#10;[C-6] Only a source Partition can be shared.&#10;&#10;context Partition inv:&#10;&#10;self.isShared implies self.isSource' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1891' name='org.omg.xmi.namespace=CWMXESSB' annotation='' tagId='org.omg.xmi.namespace' elements='a1890'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMXESSB</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a1892' name='org.omg.mof.idl_prefix=org.omg.cwmx.resource' annotation='' tagId='org.omg.mof.idl_prefix' elements='a1890'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwmx.resource</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1893' name='Alias' annotation='An alias name for an Essbase Dimension member.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1894' name='Application' annotation='An Essbase Application is a named container of one or more Databases and their related files. In addition to the Database, an Application may include scripts that are used to load data into the database, calculate derived values, and prepare reports.&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a16'>
        </Model:Class>
        <Model:Class xmi.id='a1895' name='Comment' annotation='This is a user-defined comment that can be attached to an Essbase Dimension member.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1896' name='Consolidation' annotation='Specifies how this Essbase Dimension member is to roll-up into its parent (e.g., attribute instance values include: +, -, *, /, %, ~).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1897' name='CurrencyConversion' annotation='Currency conversion tag for an Essbase Currency Dimension member (e.g., attribute instance values include: &quot;None&quot;, &quot;NoConversion&quot;, &quot;Category&quot;).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1898' name='DataStorage' annotation='Data storage tag for an Essbase Dimension member (e.g., attribute instance values include: &quot;StoreData&quot;, &quot;DynamicCalc&amp;Store&quot;, &quot;DynamicCalc&quot;, &quot;NeverShare&quot;, &quot;LabelOnly&quot;, &quot;SharedMember&quot;).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1899' name='Database' annotation='An Essbase Database is a unique, named multidimensional database implemented by an Essbase server.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a619'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1900' name='isCurrency' annotation='If true, then this Database is a Currency Database.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1901' name='outline' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1902' referencedEnd='a1903'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1904' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a1905' name='Dimension' annotation='An Essbase Dimension is the primary physical object used in the construction of Essbase Databases.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a607'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1906' name='type' annotation='The type of the Essbase Dimension.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a1907'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1908' name='isDense' annotation='Specifies if this Essbase Dimension is sparse or dense.  Generally affected by Dimension type (e.g., Accounts and Time Dimensions are usually dense).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1909' name='outline' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1902' referencedEnd='a1910'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:DataType xmi.id='a1907' name='DimensionType' annotation='An enumeration defining possible types of Essbase Dimension.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='DimensionType' xmi.tcId='IDL:org.omg.cwmx.resource/Essbase/DimensionType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='ess_none'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='ess_accounts'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='ess_time'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='ess_country'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='ess_currencyPartition'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='ess_attribute'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Tag xmi.id='a1911' name='org.omg.xmi.enumerationUnprefix=ess_' annotation='' tagId='org.omg.xmi.enumerationUnprefix' elements='a1907'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>ess_</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1912' name='Formula' annotation='Formula used to calculate the value of an Essbase Dimension member.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1913' name='Generation' annotation='Common name/identifier for members occupying the same generation in the Dimension hierarchy, as defined by the Outline.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1914' name='ImmediateParent' annotation='Represents the immediate parent of an Essbase Dimension member in the Dimension hierarchy defined by the Outline.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1915' name='Level' annotation='Common name/identifier for members occupying the same level in the Dimension hierarchy, as defined by the Outline.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1916' name='MemberName' annotation='Name for an Essbase Dimension member.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1917' name='OLAPServer' annotation='A software process that implements one or more Essbase Databases.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a411'>
        </Model:Class>
        <Model:Class xmi.id='a1902' name='Outline' annotation='An Essbase Outline defines the structure of an Essbase Database, including the dimensional hierarchies, members, tags, types, consolidations, and mathematical relationships. Data is stored in the Database according to the structure defined in the Outline.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a19'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1918' name='aliasTableName' annotation='The name of the Alias Table to be used by this instance of Outline.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1919' name='database' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1899' referencedEnd='a1920'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1921' name='dimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1905' referencedEnd='a1922'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1923' name='Partition' annotation='Defines an abstract Essbase partition class (the superclass of all Essbase partition types).' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a818'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1924' name='isSource' annotation='If true, then this Partition is a source Partition (i.e., a source of data values for some other target Partition).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1925' name='isShared' annotation='If true, then this Partition is a shared source Partition (i.e., shared by several targets).' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1926' name='formula' annotation='Expression specifying the mapping of source Partition data cells to target Partition data cells.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1927' name='Expressions' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a310'>
        </Model:Import>
        <Model:Class xmi.id='a1928' name='ReplicatedPartition' annotation='Subclass of Essbase Partition representing Replicated Partitions.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1923'>
        </Model:Class>
        <Model:Class xmi.id='a1929' name='TimeBalance' annotation='Time balance tag for an Essbase Accounts Dimension member (e.g., attribute instance&#10;&#10;values include: &quot;None&quot;, &quot;First&quot;, &quot;Last&quot;, &quot;Average&quot;).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1930' name='TransparentPartition' annotation='Subclass of Essbase Partition representing Transparent Partitions.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1923'>
        </Model:Class>
        <Model:Class xmi.id='a1931' name='TwoPassCalculation' annotation='This is a tag specifying that a derived (calculated) Accounts member needs to be re-computed following the global calculation of an Essbase Database.&#10;&#10;&#10;&#10;This is done to provide a derived Accounts member that?s dependent on other account members with a final, correct value, following the sequential calculation of both the Accounts and Time Dimensions (e.g., Profit % Sales).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1932' name='UDA' annotation='An Essbase user-defined attribute.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1933' name='VarianceReporting' annotation='Variance reporting tag for an Essbase Accounts Dimension (e.g., attribute instance values include: &quot;NonExpense&quot;, &quot;Expense&quot;).' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
        </Model:Class>
        <Model:Class xmi.id='a1934' name='LinkedPartition' annotation='Subclass of Essbase Partition representing Linked Partitions.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1923'>
        </Model:Class>
        <Model:Association xmi.id='a1935' name='DatabaseOwnsOutline' annotation='A Database has exactly one Outline.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1920' name='database' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1899'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1903' name='outline' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1902'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a1936' name='OutlineReferencesDimensions' annotation='An Outline organizes the Dimensions contained in its Database.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1922' name='dimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1905'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1910' name='outline' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1902'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a1937' name='SoftwareDeployment' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a376'>
        </Model:Import>
        <Model:Import xmi.id='a1938' name='Multidimensional' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a604'>
        </Model:Import>
        <Model:Import xmi.id='a1939' name='Olap' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a805'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a1940' name='Express' annotation='The Oracle Express package is an extension of the Multidimensional package. It represents the physical data model for an Oracle Express Database.&#10;&#10;&#10;&#10;The classes in this package can be used as either sources or targets of data in the data warehouse, and are available to provide a physical implementation of the OLAP data model.&#10;&#10;&#10;&#10;The Express package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::Foundation::SoftwareDeployment&#10;&#10;    org.omg::CWM::Resource::Multidimensional&#10;&#10;&#10;&#10;OCL Representation of Express Constraints&#10;&#10;&#10;&#10;[C-1] An AggMap must be owned by a Database&#10;&#10;context AggMap&#10;&#10;inv: self.namespace-&gt;size = 1 and&#10;&#10;self.namespace.oclIsKindOf(Database)&#10;&#10;&#10;&#10;[C-2] A Model must be owned by a Database&#10;&#10;context Model&#10;&#10;inv: self.namespace-&gt;size = 1 and&#10;&#10;self.namespace.oclIsKindOf(Database)&#10;&#10;&#10;&#10;[C-3] A Program must be owned by a Database&#10;&#10;context Program&#10;&#10;inv: self.namespace-&gt;size = 1 and&#10;&#10;self.namespace.oclIsKindOf(Database)&#10;&#10;&#10;&#10;[C-4] A Worksheet must be owned by a Database&#10;&#10;context Wor ksheet&#10;&#10;inv: self.namespace-&gt;size = 1 and&#10;&#10;self.namespace.oclIsKindOf(Database)&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a1941' name='org.omg.xmi.namespace=CWMXExpress' annotation='' tagId='org.omg.xmi.namespace' elements='a1940'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMXExpress</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a1942' name='org.omg.mof.idl_prefix=org.omg.cwmx.resource' annotation='' tagId='org.omg.mof.idl_prefix' elements='a1940'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwmx.resource</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a1943' name='Dimension' annotation='This represents a physical Express dimension.' isRoot='false' isLeaf='false' isAbstract='true' visibility='public_vis' isSingleton='false' supertypes='a607'>
        </Model:Class>
        <Model:Class xmi.id='a1944' name='Database' annotation='This represents a physical Express database.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a619'>
        </Model:Class>
        <Model:Class xmi.id='a1945' name='Conjoint' annotation='This represents a physical Express conjoint. This is a type of physical dimension that may be used to provide more efficient storage for sparse cubes.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1943'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1946' name='searchAlgorithm' annotation='Indicates the type of algorithm Express should use for loading and accessing the values of the Conjoint Dimension. Valid values are HASH, BTREE, NOHASH.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1947' name='pageSpace' annotation='If specified, this defines the type of page space to be allocated to data relating specific values of the Conjoint to values of its base Dimensions:&#10;&#10;&#10;&#10;    OWNSPACE specifies that the data will be stored in private page space.&#10;&#10;    SHAREDSPACE specifies that the data will be stored in the database?s global page space.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a1948' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a1949' name='Program' annotation='This represents a physical Express program. The interface to the Program may be documented as an Operation associated with the Program.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a404'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1950' name='program' annotation='An Express representation of the Program.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1951' name='returnDimension' annotation='If present, this specifies that when the Program is called as a function it returns a value of the named Dimension.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1952' name='Model' annotation='This represents a physical Express model.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a404'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1953' name='content' annotation='An Express representation of the content of the Model.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1954' name='Variable' annotation='This represents a physical Express variable.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1955' name='storageType' annotation='The type of storage to use for the Variable. The valid values are: TEMP, INPLACE, PERMANENT.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1956' name='pageSpace' annotation='If specified, this defines the type of page space in which data associated with the Variable will be stored:&#10;&#10;&#10;&#10;    OWNSPACE specifies that the data will be stored in private page space associated with the Variable.&#10;&#10;    SHAREDSPACE specifies that the data will be stored in the database?s global page space.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1957' name='width' annotation='If specified, this defines a fixed width, in bytes, for the storage area for each value of a Variable. Fixed widths can be specified only for dimensioned TEXT and INTEGER Variables.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1958' name='Formula' annotation='This represents a physical Express formula.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1959' name='expression' annotation='The calculation to be performed to produce values when you use the Formula. It can be any valid Express expression, including a constant or the name of a Variable.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1960' name='ValueSet' annotation='This represents a physical Express value set.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1961' name='isTemp' annotation='If set, this indicates that values in the ValueSet are only temporary, and will be discarded at the end of each Express session.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1962' name='referenceDimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1943' referencedEnd='a1963'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1964' name='Relation' annotation='This represents a reference from one or more Dimensions to another Dimension.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a609'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1965' name='isTemp' annotation='If set, this indicates that values of the Relation are only temporary, and will be discarded at the end of each Express session.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1966' name='pageSpace' annotation='This identifies the type of page space in which data associated with the Relation will be stored:&#10;&#10;&#10;&#10;    OWNSPACE specifies that the data will be stored in private page space associated with the Relation.&#10;&#10;    SHAREDSPACE specifies that the data will be stored in the database?s global page space.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1967' name='referenceDimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1943' referencedEnd='a1968'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1969' name='Worksheet' annotation='This represents a physical Express worksheet.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1970' name='isTemp' annotation='If set, this indicates that values in the Worksheet are only temporary, and will be discarded at the end of each Express session.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1971' name='columnDimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1943' referencedEnd='a1972'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1973' name='rowDimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1943' referencedEnd='a1974'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1975' name='Composite' annotation='This represents a physical Express composite.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1943'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1976' name='searchAlgorithm' annotation='Indicates the type of algorithm Express should use for loading and accessing the values of the Composite Dimension. The valid values are HASH, BTREE.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1977' name='pageSpace' annotation='If specified, this defines the type of page space to be allocated to data relating specific values of the Composite to values of its base Dimensions:&#10;&#10;&#10;&#10;    OWNSPACE specifies that the data will be stored in private page space.&#10;&#10;    SHAREDSPACE specifies that the data will be stored in the database?s global page space.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1978' name='SimpleDimension' annotation='This represents an Express simple dimension.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1943'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1979' name='width' annotation='If specified, this defines a fixed width, in bytes, for the storage area for each value of the SimpleDimension. Fixed widths can be specified for TEXT dimensions only. Valid width values are 1 through 256.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1980' name='isTime' annotation='If set, indicates that the SimpleDimension is a time dimension.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1981' name='multiple' annotation='This may be used for SimpleDimensions whose data type is WEEK or MONTH, to define time periods that span a multiple number of weeks or months.  With the WEEK data type, multiple can be an integer from 2 to 52. With the MONTH data type, multiple can be 2, 3, 4, or 6.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a70'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1982' name='beginningPhase' annotation='This may be used for any time data type except DAY, to specify the beginning phase of the Dimension.&#10;&#10;For single weeks, beginningPhase can be a day of the week or a date. For multiple weeks, beginningPhase must be a date. For months, quarters, or years, beginningPhase must be a month, expressed as a month name or as a date.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1983' name='endingPhase' annotation='This may be used for any time data type except DAY, to specify the ending phase of the Dimension. For single weeks, endingPhase can be a day of the week or a date. For multiple weeks, endingPhase must be a date. For months, quarters, or years, endingPhase must be a month, expressed as a month name or as a date.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1984' name='searchAlgorithm' annotation='Indicates the type of algorithm Express should use for loading and accessing the values of the SimpleDimension. The valid values are HASH, BTREE.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a1985' name='pageSpace' annotation='If specified, this defines the type of page space to be allocated to values of the SimpleDimension:&#10;&#10;&#10;&#10;    OWNSPACE specifies that the data will be stored in private page space.&#10;&#10;    SHAREDSPACE specifies that the data will be stored in the database?s global page space.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1986' name='dataType' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a23' referencedEnd='a1987'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a1988' name='aliasDimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1989' referencedEnd='a1990'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1989' name='AliasDimension' annotation='This represents an Express alias dimension.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1943'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1991' name='baseDimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1978' referencedEnd='a1992'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1993' name='AggMap' annotation='This represents an Express aggregation map.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a29'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a1994' name='aggMapComponent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1995' referencedEnd='a1996'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a1995' name='AggMapComponent' annotation='This represents a component of an Express aggregation map.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a1997' name='aggOperator' annotation='A text expression indicating the type of aggregate operation.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a1998' name='aggMap' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1993' referencedEnd='a1999'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a2000' name='dimension' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1943' referencedEnd='a2001'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a2002' name='relation' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1964' referencedEnd='a2003'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a2004' name='computeClause' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a2005' referencedEnd='a2006'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a2005' name='PreComputeClause' annotation='This represents a pre-compute clause for an Express aggregation map.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a2007' name='statusList' annotation='The status of the dimension to aggregate.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a91'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a2008' name='aggMapComponent' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1995' referencedEnd='a2009'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a2010' name='RelationReferenceDimension' annotation='Associates Express Relations with the Dimension they reference.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1968' name='referenceDimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1943'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2011' name='relation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1964'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2012' name='WorksheetColumnDimension' annotation='Identifies a Dimension used as the column dimension in a physical Express worksheet structure.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1972' name='columnDimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1943'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2013' name='columnDimensionInWorksheet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1969'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2014' name='WorksheetRowDimension' annotation='Identifies a Dimension used as the row dimension in a physical Express worksheet structure.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a2015' name='rowDimensionInWorksheet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1969'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1974' name='rowDimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1943'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2016' name='AliasDimensionBaseDimension' annotation='Associates AliasDimensions with the SimpleDimension on which they are based.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1992' name='baseDimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1978'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1990' name='aliasDimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1989'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2017' name='ValueSetReferenceDimension' annotation='Associates Express ValueSets with the Dimension whose values are to be stored in the ValueSet.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1963' name='referenceDimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1943'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2018' name='valueSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1960'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2019' name='AggMapComponentRelation' annotation='Identifies a Relation used by an AggMapComponent.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a2003' name='relation' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1964'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2020' name='aggMapComponent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1995'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2021' name='AggMapComponentDimension' annotation='Identifies the associated Dimension for an AggMapComponent.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a2001' name='dimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1943'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2022' name='aggMapComponent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1995'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2023' name='ComputeClause' annotation='Identifies a PreComputeClause associated with an AggMapComponent.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a2006' name='computeClause' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2005'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2009' name='aggMapComponent' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1995'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2024' name='AggMapComponents' annotation='Identifies the AggMapComponents that constitute an AggMap.' isRoot='true' isLeaf='true' isAbstract='false' visibility='protected_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1999' name='aggMap' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a1993'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a1996' name='aggMapComponent' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1995'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2025' name='SimpleDimensionDataType' annotation='Identifies the data type for a SimpleDimension.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a1987' name='dataType' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a23'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2026' name='simpleDimension' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a1978'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a2027' name='SoftwareDeployment' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a376'>
        </Model:Import>
        <Model:Import xmi.id='a2028' name='Multidimensional' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a604'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a2029' name='InformationSet' annotation='The InformationSet package contains the metamodel of information sets that is an extension of the OLAP package.&#10;&#10;&#10;&#10;An important aspect of data warehousing is the collection of data from external resources using, for example, application generated reports, questionnaires or surveys. To allow for inter-operability of tools supporting data collection, the metadata identifying the data to be collected must be defined, together with metadata that can be used to ensure accuracy and validity of data.&#10;&#10;&#10;&#10;The InformationSet package is designed to enable interchange of common metadata about InformationSet structures, rules (e.g. validation, calculation), and, possibly, visual renderings.&#10;&#10;&#10;&#10;The characteristics of the InformationSet are:&#10;&#10;&#10;&#10;    the definition of logical structures that define the data to be collected can be both single and multi-dimensional (e.g. value of export by country and product)&#10;&#10;&#10;&#10;    data can be derived both from either from non-human sources or from human sources (e.g. questionnaire, report form).&#10;&#10;&#10;&#10;    instruments for data collection need to be designed in such a way that relevant and accurate data is collected, and in some instances this means that the designer needs control over the visual rendering of the collection instrument. Validation and Navigation within the InformationSet is also required in order to facilitate the collection/retrieval of accurate data.&#10;&#10;&#10;&#10;The InformationSet package contains metamodel elements that support the following functions:&#10;&#10;&#10;&#10;    Semantic definition of the InformationSet and its constituent parts&#10;&#10;    Visual rendering supporting different media&#10;&#10;    Validation, navigation and calculation based on data values entered/retrieved&#10;&#10;    Via OLAP, the links to Nomenclatures (LevelBasedHierarchy) that give the valid codes and multi lingual labels for the Dimensions The InformationSet is a domain specific extension of the OLAP model with some additional classes to support specific requirements of the InformationSet (e.g. validation, rendering). All information to be collected can be identified in terms of the OLAP model, thus supporting the definition of both multidimensional and unidimensional Segments (the OLAP Cube).&#10;&#10;&#10;&#10;In addition to the definition of multi-dimensional structures that comprise the logical InformationSet, there is a need to:&#10;&#10;&#10;&#10;    ensure accuracy of the data by applying validation and navigation expressions&#10;&#10;    derive values from other values in the InformationSet&#10;&#10;    provide visual rendering capability to support data collection using visual media such as forms or screens&#10;&#10;&#10;&#10;The InformationSet package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::Foundation::BusinessInformation&#10;&#10;    org.omg::CWM::Foundation::Expressions&#10;&#10;    org.omg::CWM::Analysis::OLAP&#10;&#10;    org.omg::CWM::Analysis::InformationVisualization&#10;&#10;&#10;&#10;The core classes in the InformationSet package (InformationSet, Segment, SegmentRegion) are derived from the OLAP package classes of Schema, Cube, and CubeRegion. This means that each part of an InformationSet (the Segment) is defined in terms of a multidimensional structure of Dimensions.&#10;&#10;&#10;&#10;Rule, InfoSetAdministration, and InfoSetDate are derived from ModelElement.&#10;&#10;&#10;&#10;InformationSet is the logical container of all elements comprising the InformationSet metamodel. It is the root element of the metamodel hierarchy and marks the entry point for navigating the metamodel.&#10;&#10;&#10;&#10;OCL Representation of InformationSet Constraints&#10;&#10;&#10;&#10;[C-1] One instance of Rule can be associated with only one of InformationSet, Segment, SegmentRegion.&#10;&#10;context Rule&#10;&#10;inv: self.informationSet-&gt;isEmpty xor self.segment-&gt;isEmpty xor self.segmentRegion-&gt;&#10;&#10;isEmpty' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a2030' name='org.omg.mof.idl_prefix=org.omg.cwmx.analysis' annotation='' tagId='org.omg.mof.idl_prefix' elements='a2029'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwmx.analysis</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a2031' name='org.omg.xmi.namespace=CWMXIS' annotation='' tagId='org.omg.xmi.namespace' elements='a2029'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMXIS</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a2032' name='InformationSet' annotation='InformationSet contains all elements comprising an InformationSet database model.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a821'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a2033' name='version' annotation='The version of an Information Set.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a2034' name='rule' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a2035' referencedEnd='a2036'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a2037' name='infoSetAdmin' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a2038' referencedEnd='a2039'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a2040' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Class xmi.id='a2041' name='Segment' annotation='Segment represents a multidimensional structure. A Segment is defined by a collection of unique Dimensions from the InformationSet. Each unique combination of members in the Cartesian product of the Segment?s Dimensions identifies precisely one data cell within the multidimensional structure.&#10;&#10;&#10;&#10;Note that a logical segment is &quot;defined&quot; by a collection of unique Dimensions from the InformationSet, and is &quot;described&quot; by a collection of one or more Segment Regions.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a812'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a2042' name='regionSequence' annotation='Specifies the sequence of the SegmentRegion.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a65'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a2043' name='rule' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a2035' referencedEnd='a2044'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Class xmi.id='a2045' name='SegmentRegion' annotation='SegmentRegion represents a sub-set of a Segment. A SegmentRegion may be used for exposing a subset of the dimensionality of a Segment. The Member Selections comprising a SegmentRegion always collectively define a subset of the total dimensionality of the associated Segment.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a818'>
          <Model:Namespace.contents>
            <Model:Reference xmi.id='a2046' name='rule' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a2035' referencedEnd='a2047'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a2048' name='renderedObject' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a1076' referencedEnd='a1123'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a2049' name='InformationVisualization' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a1073'>
        </Model:Import>
        <Model:Class xmi.id='a2035' name='Rule' annotation='This is a rule that performs one or more of the following:&#10;&#10;&#10;&#10;1) Defines the validation required for data extracted from the data resource part of the InformationSet, Segment or SegmentRegion. This can include the requirement or otherwise of other Segment or SegmentRegions based on the value of the data extracted from this Segment or SegmentRegion.&#10;&#10;&#10;&#10;2) Defines a calculation that can be used to derive data values, based on data values that are part of the InformationSet, Segment or SegmentRegion.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a2050' name='ruleExpression' annotation='This is the rule, which can be an expression or an expression tree.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a313'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a2051' name='type' annotation='This allows the Rule to be categorized - for example validation, calculation.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a2052' name='Expressions' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a310'>
        </Model:Import>
        <Model:Class xmi.id='a2038' name='InfoSetAdministration' annotation='This class represents administrative details of an Information Set.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a2053' name='priority' annotation='The priority of an Information Set.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a2054' name='acknowledgement' annotation='If true, an acknowledgement is requested.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a25'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a2055' name='date' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a2056' referencedEnd='a2057'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a2058' name='responsibleParty' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a217' referencedEnd='a278'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
            <Model:Reference xmi.id='a2059' name='document' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a261' referencedEnd='a274'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a2060' name='BusinessInformation' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a214'>
        </Model:Import>
        <Model:Class xmi.id='a2056' name='InfoSetDate' annotation='This class represents dates relevant to an InformationSet such as date of dissemination&#10;&#10;or receipt. It can have different formats.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a4'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a2061' name='type' annotation='Type of date, e.g. date of creation, validity period.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a2062' name='format' annotation='Format of date, time or period.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Attribute xmi.id='a2063' name='dateTime' annotation='A date, time or period.' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a58'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Association xmi.id='a2064' name='InformationSetReferencesRule' annotation='An InformationSet may reference one or more Rule.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a2065' name='informationSet' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2032'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2036' name='rule' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2035'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2066' name='SegmentReferencesRule' annotation='A Segment may reference one or more Rule.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a2067' name='segment' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2041'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2044' name='rule' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2035'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2068' name='SegmentRegionReferencesRule' annotation='A SegmentRegion may reference one or more Rules.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a2069' name='segmentRegion' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2045'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2047' name='rule' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2035'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2070' name='InformationSetReferencesInfoSetAdministration' annotation='This association relates an Information Set to Administrative details.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a2071' name='informationSet' annotation='' isNavigable='true' aggregation='composite' isChangeable='true' type='a2032'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2039' name='infoSetAdmin' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2038'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Association xmi.id='a2072' name='InfoSetAdministrationReferencesInfoSetDates' annotation='Allows dates to be specified for Information Set details.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a2057' name='date' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2056'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2073' name='infoSetAdmin' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2038'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a2074' name='Olap' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a805'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
    <Model:Package xmi.id='a2075' name='InformationReporting' annotation='The CWM Information Reporting metamodel extends the CWM Information Visualization metamodel for the purpose of defining metadata representing formatted reports.&#10;&#10;&#10;&#10;The Information Reporting package depends on the following packages:&#10;&#10;&#10;&#10;    org.omg::CWM::ObjectModel::Core&#10;&#10;    org.omg::CWM::Foundation::DataTypes&#10;&#10;    org.omg::CWM::Analysis::Transformation&#10;&#10;    org.omg::CWM::Analysis::InformationVisualization&#10;&#10;&#10;&#10;Report is a subclass of InformationVisualization::RenderedObject that represents a formatted report. Reports are comprised of instances of ReportGroup, which is also a subclass of RenderedObject. Thus, a Report is composed from ReportGroups, and ReportGroups may be composed recursively from other ReportGroups. Ultimately, the recursive definition of a ReportGroup must terminate with one or more ReportFields as leaf-level components. ReportField represents single-valued attributes of the Report that are individually mapped to data sources (e.g., report queries) and rendered (i.e., formatted) by associated instances of InformationVisualization::Rendering.&#10;&#10;&#10;&#10;Related Reports may be grouped together into a ReportPackage, a subclass of formationVisualization::RenderedObjectSet. A Report may also have a related ReportExecution, which is a subclass of TranformationMap that relates the Report to both its data sources and procedures required to run the Report. Each ReportGroup may also specify a separate QueryExpression which is evaluated to yield the contents of fields within the ReportGroup. This enables the specification of both derived, as well as retrieved, data values for report fields.&#10;&#10;&#10;&#10;Note that the Information Reporting metamodel makes extensive use of associations and attributes inherited from Information Visualization. For example, the formula attribute inherited from RenderedObject would be used by an instance of ReportGroup to indicate its positioning within the overall report layout. The inherited association &quot;CompositesReferenceComponents&quot; is used to compose Reports from ReportGroups, as well as to compose ReportGroups recursively from other ReportGroups and ReportFields. The inherited association &quot;NeighborsReferenceNeighbors&quot; may be used to specify topological relationships between instances of ReportGroup at the same level of composition.&#10;&#10;&#10;&#10;OCL Representation of Information Reporting Constraints&#10;&#10;&#10;&#10;[C-1] Reports generally do not have neighbor relationships with other reports.&#10;&#10;context Report&#10;&#10;inv: self.neighbor-&gt;isEmpty&#10;&#10;inv: self.referencingNeighbor-&gt;isEmpty&#10;&#10;&#10;&#10;[C-2] A ReportField is associated with precisely one ReportGroup.&#10;&#10;context ReportField inv:&#10;&#10;self.composite-&gt;size = 1&#10;&#10;&#10;&#10;[C-3] A ReportField may not have components.&#10;&#10;context ReportField inv:&#10;&#10;self.component-&gt;isEmpty&#10;&#10;&#10;&#10;[C-4] A ReportGroup is associated with precisely one Report.&#10;&#10;context ReportGroup inv:&#10;&#10;self.composite-&gt;size = 1&#10;&#10;&#10;&#10;' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis'>
      <Model:Namespace.contents>
        <Model:Tag xmi.id='a2076' name='org.omg.mof.idl_prefix=org.omg.cwmx.analysis' annotation='' tagId='org.omg.mof.idl_prefix' elements='a2075'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>org.omg.cwmx.analysis</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Tag xmi.id='a2077' name='org.omg.xmi.namespace=CWMXIR' annotation='' tagId='org.omg.xmi.namespace' elements='a2075'>
          <Model:Tag.values>
            <XMI.any xmi.type='string'>CWMXIR</XMI.any>
          </Model:Tag.values>
        </Model:Tag>
        <Model:Class xmi.id='a2078' name='Report' annotation='Report is a subclass of RenderedObject that defines a two-dimensional, formatted report. A Report may be rendered as a printed report, in HTML, or as a dynamic, online report.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1076'>
        </Model:Class>
        <Model:Class xmi.id='a2079' name='ReportAttribute' annotation='ReportAttribute is a subclass of UML Attribute that generally defines a ReportField. Note that ReportAttributes may be re-used in the definitions of multiple ReportFields.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a49'>
        </Model:Class>
        <Model:Class xmi.id='a2080' name='ReportExecution' annotation='ReportExecution is a subclass of TransformationMap that defines any necessary mappings and procedures for actually generating an instance of a Report.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a739'>
        </Model:Class>
        <Model:Class xmi.id='a2081' name='ReportField' annotation='ReportField defines a specific field within a ReportGroup.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1076'>
        </Model:Class>
        <Model:Class xmi.id='a2082' name='ReportGroup' annotation='ReportGroup defines a grouping of fields on a report.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1076'>
          <Model:Namespace.contents>
            <Model:Attribute xmi.id='a2083' name='groupType' annotation='Specifies the type of a ReportGroup' scope='instance_level' visibility='public_vis' isChangeable='true' isDerived='false' type='a2084'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>1</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Attribute>
            <Model:Reference xmi.id='a2085' name='reportQuery' annotation='' scope='instance_level' visibility='public_vis' isChangeable='true' type='a293' referencedEnd='a2086'>
              <Model:StructuralFeature.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:StructuralFeature.multiplicity>
            </Model:Reference>
          </Model:Namespace.contents>
        </Model:Class>
        <Model:Import xmi.id='a2087' name='DataTypes' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a280'>
        </Model:Import>
        <Model:DataType xmi.id='a2084' name='ReportGroupType' annotation='Defines ReportGroup types.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis'>
          <Model:DataType.typeCode>
            <XMI.CorbaTypeCode>
              <XMI.CorbaTcEnum xmi.tcName='ReportGroupType' xmi.tcId='IDL:org.omg.cwmx.analysis/InformationReporting/ReportGroupType:1.0'>
                <XMI.CorbaTcEnumLabel xmi.tcName='header'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='footer'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='detail'/>
                <XMI.CorbaTcEnumLabel xmi.tcName='other'/>
              </XMI.CorbaTcEnum>
            </XMI.CorbaTypeCode>
          </Model:DataType.typeCode>
        </Model:DataType>
        <Model:Class xmi.id='a2088' name='ReportPackage' annotation='Defines a grouping of related reports.' isRoot='false' isLeaf='false' isAbstract='false' visibility='public_vis' isSingleton='false' supertypes='a1098'>
        </Model:Class>
        <Model:Association xmi.id='a2089' name='ReportGroupReferenceQueryExpressions' annotation='A ReportGroup may reference one or more instances of QueryExpression.' isRoot='true' isLeaf='true' isAbstract='false' visibility='public_vis' isDerived='false'>
          <Model:Namespace.contents>
            <Model:AssociationEnd xmi.id='a2086' name='reportQuery' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a293'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>-1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>true</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
            <Model:AssociationEnd xmi.id='a2090' name='reportGroup' annotation='' isNavigable='true' aggregation='none' isChangeable='true' type='a2082'>
              <Model:AssociationEnd.multiplicity>
                <XMI.field>0</XMI.field> <!-- lower -->
                <XMI.field>1</XMI.field> <!-- upper -->
                <XMI.field>false</XMI.field> <!-- is_ordered -->
                <XMI.field>false</XMI.field> <!-- is_unique -->
              </Model:AssociationEnd.multiplicity>
            </Model:AssociationEnd>
          </Model:Namespace.contents>
        </Model:Association>
        <Model:Import xmi.id='a2091' name='Core' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a0'>
        </Model:Import>
        <Model:Import xmi.id='a2092' name='Transformation' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a697'>
        </Model:Import>
        <Model:Import xmi.id='a2093' name='InformationVisualization' annotation='' visibility='public_vis' isClustered='true' importedNamespace='a1073'>
        </Model:Import>
      </Model:Namespace.contents>
    </Model:Package>
  </XMI.content>
</XMI>
