<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI is the top-level XML element for XMI transfer text          -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI (XMI.header?, XMI.content?, XMI.difference*,
               XMI.extensions*)>
<!ATTLIST XMI
            xmi.version CDATA #FIXED "1.1"
            timestamp CDATA #IMPLIED
            verified (true|false) #IMPLIED>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.header contains documentation and identifies the model,     -->
<!-- metamodel, and metametamodel                                    -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.header (XMI.documentation?, XMI.model*, XMI.metamodel*,
                      XMI.metametamodel*, XMI.import*)>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- documentation for transfer data                                 -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.documentation (#PCDATA | XMI.owner | XMI.contact |
                             XMI.longDescription | XMI.shortDescription |
                             XMI.exporter | XMI.exporterVersion |
                             XMI.notice)*>
<!ELEMENT XMI.owner ANY>
<!ELEMENT XMI.contact ANY>
<!ELEMENT XMI.longDescription ANY>
<!ELEMENT XMI.shortDescription ANY>
<!ELEMENT XMI.exporter ANY>
<!ELEMENT XMI.exporterVersion ANY>
<!ELEMENT XMI.exporterID ANY>
<!ELEMENT XMI.notice ANY>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.element.att defines the attributes that each XML element    -->
<!-- that corresponds to a metamodel class must have to conform to   -->
<!-- the XMI specification.                                          -->
<!-- _______________________________________________________________ -->

<!ENTITY % XMI.element.att
               'xmi.id ID #IMPLIED xmi.label CDATA #IMPLIED xmi.uuid
                CDATA #IMPLIED '>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.link.att defines the attributes that each XML element that  -->
<!-- corresponds to a metamodel class must have to enable it to      -->
<!-- function as a simple XLink as well as refer to model            -->
<!-- constructs within the same XMI file.                            -->
<!-- _______________________________________________________________ -->

<!ENTITY % XMI.link.att
               'href CDATA #IMPLIED xmi.idref IDREF #IMPLIED xml:link
                CDATA #IMPLIED xlink:inline (true|false) #IMPLIED
                xlink:actuate (show|user) #IMPLIED xlink:content-role
                CDATA #IMPLIED xlink:title CDATA #IMPLIED xlink:show
                (embed|replace|new) #IMPLIED xlink:behavior CDATA
                #IMPLIED'>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.model identifies the model(s) being transferred             -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.model ANY>
<!ATTLIST XMI.model %XMI.link.att;
            xmi.name    CDATA #REQUIRED
            xmi.version CDATA #IMPLIED>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.metamodel identifies the metamodel(s) for the transferred   -->
<!-- data                                                            -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.metamodel ANY>
<!ATTLIST XMI.metamodel %XMI.link.att;
            xmi.name    CDATA #REQUIRED
            xmi.version CDATA #IMPLIED>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.metametamodel identifies the metametamodel(s) for the       -->
<!-- transferred data                                                -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.metametamodel ANY>
<!ATTLIST XMI.metametamodel %XMI.link.att;
            xmi.name    CDATA #REQUIRED
            xmi.version CDATA #IMPLIED>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.import identifies imported metamodel(s)                     -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.import ANY>
<!ATTLIST XMI.import %XMI.link.att;
            xmi.name    CDATA #REQUIRED
            xmi.version CDATA #IMPLIED>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.content is the actual data being transferred                -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.content ANY>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.extensions contains data to transfer that does not conform  -->
<!-- to the metamodel(s) in the header                               -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.extensions ANY>
<!ATTLIST XMI.extensions
            xmi.extender CDATA #REQUIRED>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- extension contains information related to a specific model      -->
<!-- construct that is not defined in the metamodel(s) in the header -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.extension ANY>
<!ATTLIST XMI.extension %XMI.element.att; %XMI.link.att;
            xmi.extender CDATA #REQUIRED
            xmi.extenderID CDATA #IMPLIED>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.difference holds XML elements representing differences to a -->
<!-- base model                                                      -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.difference (XMI.difference | XMI.delete | XMI.add |
                          XMI.replace)*>
<!ATTLIST XMI.difference %XMI.element.att; %XMI.link.att;>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.delete represents a deletion from a base model              -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.delete EMPTY>
<!ATTLIST XMI.delete %XMI.element.att; %XMI.link.att;>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.add represents an addition to a base model                  -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.add ANY>
<!ATTLIST XMI.add %XMI.element.att; %XMI.link.att;
            xmi.position CDATA "-1">

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.replace represents the replacement of a model construct     -->
<!-- with another model construct in a base model                    -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.replace ANY>
<!ATTLIST XMI.replace %XMI.element.att; %XMI.link.att;
            xmi.position CDATA "-1">

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- XMI.reference may be used to refer to data types not defined in -->
<!-- the metamodel                                                   -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.reference ANY>
<!ATTLIST XMI.reference %XMI.link.att;>

<!-- _______________________________________________________________ -->
<!--                                                                 -->
<!-- This section contains the declaration of XML elements           -->
<!-- representing data types                                         -->
<!-- _______________________________________________________________ -->

<!ELEMENT XMI.TypeDefinitions ANY>
<!ELEMENT XMI.field ANY>
<!ELEMENT XMI.seqItem ANY>
<!ELEMENT XMI.octetStream (#PCDATA)>
<!ELEMENT XMI.unionDiscrim ANY>

<!ELEMENT XMI.enum EMPTY>
<!ATTLIST XMI.enum xmi.value CDATA #REQUIRED>

<!ELEMENT XMI.any ANY>
<!ATTLIST XMI.any %XMI.link.att;
            xmi.type CDATA #IMPLIED
            xmi.name CDATA #IMPLIED>


<!ATTLIST XMI xmlns:CWM CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMRDB CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMREC CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMMDB CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMXML CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMTFM CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMOLAP CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMMIN CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMIV CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMBUS CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMWHP CDATA #IMPLIED>
<!ATTLIST XMI xmlns:CWMWHO CDATA #IMPLIED>

<!-- ========= CWM:Core ========= -->
<!ENTITY % CWM:ChangeableKind '(changeable|frozen|addOnly)'>
<!ENTITY % CWM:OrderingKind '(unordered|ordered)'>
<!ENTITY % CWM:ScopeKind '(instance|classifier)'>
<!ENTITY % CWM:VisibilityKind '(public|protected|private|package|
   notapplicable)'>

<!-- ========= CWM:Element ========= -->
<!ENTITY % CWM:ElementFeatures 'XMI.extension'>
<!ENTITY % CWM:ElementAtts '%XMI.element.att; %XMI.link.att;'>
<!ELEMENT CWM:Element (%CWM:ElementFeatures;)*>
<!ATTLIST CWM:Element %CWM:ElementAtts;>

<!-- ========= CWM:ModelElement ========= -->
<!ELEMENT CWM:ModelElement.name (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:ModelElement.visibility EMPTY>
<!ATTLIST CWM:ModelElement.visibility xmi.value %CWM:VisibilityKind; #REQUIRED>
<!ELEMENT CWM:ModelElement.clientDependency (CWM:Dependency)*>
<!ELEMENT CWM:ModelElement.constraint (CWM:Constraint)*>
<!ELEMENT CWM:ModelElement.importer (CWM:Package)*>
<!ELEMENT CWM:ModelElement.namespace (CWM:Namespace)*>
<!ENTITY % CWM:ModelElementFeatures '%CWM:ElementFeatures; |
   CWM:ModelElement.name |
   CWM:ModelElement.visibility |
   CWM:ModelElement.clientDependency |
   CWM:ModelElement.constraint |
   CWM:ModelElement.importer |
   CWM:ModelElement.namespace'>
<!ENTITY % CWM:ModelElementAtts '%CWM:ElementAtts;
   name CDATA #IMPLIED
   visibility %CWM:VisibilityKind; #IMPLIED
   clientDependency IDREFS #IMPLIED
   constraint IDREFS #IMPLIED
   importer IDREFS #IMPLIED
   namespace IDREFS #IMPLIED'>
<!ELEMENT CWM:ModelElement (%CWM:ModelElementFeatures;)*>
<!ATTLIST CWM:ModelElement %CWM:ModelElementAtts;>

<!-- ========= CWM:Namespace ========= -->
<!ELEMENT CWM:Namespace.ownedElement (CWM:ModelElement|CWM:Namespace|
   CWM:Classifier|CWM:Class|CWM:Association|CWMRDB:ColumnSet|
   CWMRDB:NamedColumnSet|CWMRDB:Table|CWMRDB:View|CWMRDB:QueryColumnSet|
   CWMRDB:SQLStructuredType|CWMREC:RecordDef|CWMMDB:Dimension|
   CWMXML:ElementType|CWMOLAP:Cube|CWMOLAP:CubeDeployment|
   CWMOLAP:CubeDimensionAssociation|CWMOLAP:CubeRegion|CWMOLAP:Dimension|
   CWMOLAP:DimensionDeployment|CWMOLAP:Hierarchy|CWMOLAP:LevelBasedHierarchy|
   CWMOLAP:ValueBasedHierarchy|CWMOLAP:HierarchyLevelAssociation|
   CWMOLAP:MemberSelectionGroup|CWMOLAP:MemberSelection|CWMOLAP:Level|
   CWMOLAP:CodedLevel|CWMMIN:ApplicationInputSpecification|
   CWMMIN:CategoryHierarchy|CWMMIN:CostMatrix|CWMMIN:MiningDataSpecification|
   CWMMIN:MiningModel|CWMMIN:SupervisedMiningModel|CWMMIN:MiningModelResult|
   CWMMIN:MiningSettings|CWMMIN:ClusteringSettings|CWMMIN:StatisticsSettings|
   CWMMIN:SupervisedMiningSettings|CWMMIN:ClassificationSettings|
   CWMMIN:RegressionSettings|CWMMIN:AssociationRulesSettings|CWM:DataType|
   CWM:Enumeration|CWM:TypeAlias|CWMRDB:SQLDistinctType|CWMRDB:SQLSimpleType|
   CWM:Subsystem|CWM:SoftwareSystem|CWMTFM:TransformationActivity|
   CWM:Interface|CWM:Union|CWM:Component|CWMTFM:TransformationTask|
   CWMRDB:SQLDataType|CWMREC:Group|CWMIV:RenderedObject|CWM:Package|CWM:Model|
   CWM:Extent|CWMRDB:RowSet|CWMREC:RecordSet|CWMMDB:MemberSet|CWMXML:Document|
   CWM:DeployedComponent|CWM:DataManager|CWM:DataProvider|
   CWM:DeployedSoftwareSystem|CWM:TypeSystem|CWMRDB:Catalog|CWMRDB:Schema|
   CWMREC:RecordFile|CWMMDB:Schema|CWMXML:Schema|CWMOLAP:DeploymentGroup|
   CWMOLAP:Schema|CWMIV:RenderedObjectSet|CWMBUS:Nomenclature|CWMBUS:Taxonomy|
   CWMBUS:Glossary|CWMBUS:BusinessDomain|CWMWHP:CustomCalendar|
   CWMWHP:ProcessPackage|CWM:ResponsibleParty|CWM:Description|CWM:Document|
   CWM:Machine|CWMTFM:Transformation|CWMTFM:TransformationMap|
   CWMOLAP:ContentMap|CWMOLAP:StructureMap|CWMTFM:TransformationTree|
   CWMTFM:ClassifierMap|CWM:Feature|CWM:StructuralFeature|CWM:Attribute|
   CWM:UnionMember|CWMRDB:Column|CWMREC:Field|CWMREC:FixedOffsetField|
   CWMMDB:DimensionedObject|CWMXML:Attribute|CWMXML:ElementTypeReference|
   CWMXML:Text|CWMOLAP:Measure|CWMMIN:MiningAttribute|CWMMIN:NumericAttribute|
   CWMMIN:CategoricalAttribute|CWMMIN:OrdinalAttribute|
   CWMMIN:ApplicationAttribute|CWM:AssociationEnd|CWM:BehavioralFeature|
   CWM:Method|CWMRDB:Procedure|CWM:Operation|CWMIV:Rendering|
   CWMIV:XSLRendering|CWM:Constraint|CWMRDB:CheckConstraint|
   CWMTFM:PrecedenceConstraint|CWM:Dependency|CWM:PackageUsage|
   CWMTFM:TransformationUse|CWMTFM:StepPrecedence|CWM:Stereotype|CWM:Argument|
   CWM:CallAction|CWM:Event|CWMWHP:WarehouseEvent|CWMWHP:ScheduleEvent|
   CWMWHP:PointInTimeEvent|CWMWHP:CustomCalendarEvent|
   CWMWHP:RecurringPointInTimeEvent|CWMWHP:IntervalEvent|CWMWHP:ExternalEvent|
   CWMWHP:InternalEvent|CWMWHP:CascadeEvent|CWMWHP:RetryEvent|CWM:Parameter|
   CWMRDB:SQLParameter|CWM:Generalization|CWM:Instance|CWM:DataValue|
   CWMRDB:ColumnValue|CWMREC:FieldValue|CWMMDB:MemberValue|CWM:Object|
   CWMRDB:Row|CWMREC:Record|CWMMDB:Member|CWMXML:Element|CWM:Slot|
   CWM:Telephone|CWM:Email|CWM:Location|CWM:Site|CWM:Contact|
   CWM:ResourceLocator|CWM:EnumerationLiteral|CWM:UniqueKey|
   CWMRDB:UniqueConstraint|CWMRDB:PrimaryKey|CWM:Index|CWMRDB:SQLIndex|
   CWM:KeyRelationship|CWMRDB:ForeignKey|CWM:IndexedFeature|
   CWMRDB:SQLIndexColumn|CWM:ProviderConnection|CWM:TypeMapping|
   CWMRDB:Trigger|CWMXML:Content|CWMXML:ElementContent|CWMXML:MixedContent|
   CWMTFM:DataObjectSet|CWMTFM:TransformationStep|CWMTFM:FeatureMap|
   CWMTFM:ClassifierFeatureMap|CWMMIN:AttributeUsageRelation|CWMMIN:Category|
   CWMBUS:VocabularyElement|CWMBUS:Concept|CWMBUS:Term|CWMWHP:CalendarDate|
   CWMWHP:WarehouseProcess|CWMWHP:WarehouseStep|CWMWHP:WarehouseActivity|
   CWMWHO:Measurement|CWMWHO:ChangeRequest|CWMWHO:TransformationExecution|
   CWMWHO:ActivityExecution|CWMWHO:StepExecution)*>
<!ENTITY % CWM:NamespaceFeatures '%CWM:ModelElementFeatures; |
   CWM:Namespace.ownedElement'>
<!ENTITY % CWM:NamespaceAtts '%CWM:ModelElementAtts;'>
<!ELEMENT CWM:Namespace (%CWM:NamespaceFeatures;)*>
<!ATTLIST CWM:Namespace %CWM:NamespaceAtts;>

<!-- ========= CWM:Classifier ========= -->
<!ELEMENT CWM:Classifier.isAbstract EMPTY>
<!ATTLIST CWM:Classifier.isAbstract xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:Classifier.feature (CWM:Feature|CWM:StructuralFeature|
   CWM:Attribute|CWM:UnionMember|CWMRDB:Column|CWMREC:Field|
   CWMREC:FixedOffsetField|CWMMDB:DimensionedObject|CWMXML:Attribute|
   CWMXML:ElementTypeReference|CWMXML:Text|CWMOLAP:Measure|
   CWMMIN:MiningAttribute|CWMMIN:NumericAttribute|CWMMIN:CategoricalAttribute|
   CWMMIN:OrdinalAttribute|CWMMIN:ApplicationAttribute|CWM:AssociationEnd|
   CWM:BehavioralFeature|CWM:Method|CWMRDB:Procedure|CWM:Operation|
   CWMIV:Rendering|CWMIV:XSLRendering)*>
<!ENTITY % CWM:ClassifierFeatures '%CWM:NamespaceFeatures; |
   CWM:Classifier.isAbstract |
   CWM:Classifier.feature'>
<!ENTITY % CWM:ClassifierAtts '%CWM:NamespaceAtts;
   isAbstract (true|false) #IMPLIED'>
<!ELEMENT CWM:Classifier (%CWM:ClassifierFeatures;)*>
<!ATTLIST CWM:Classifier %CWM:ClassifierAtts;>

<!-- ========= CWM:Class ========= -->
<!ENTITY % CWM:ClassFeatures '%CWM:ClassifierFeatures;'>
<!ENTITY % CWM:ClassAtts '%CWM:ClassifierAtts;'>
<!ELEMENT CWM:Class (%CWM:ClassFeatures;)*>
<!ATTLIST CWM:Class %CWM:ClassAtts;>

<!-- ========= CWM:DataType ========= -->
<!ENTITY % CWM:DataTypeFeatures '%CWM:ClassifierFeatures;'>
<!ENTITY % CWM:DataTypeAtts '%CWM:ClassifierAtts;'>
<!ELEMENT CWM:DataType (%CWM:DataTypeFeatures;)*>
<!ATTLIST CWM:DataType %CWM:DataTypeAtts;>

<!-- ========= CWM:Package ========= -->
<!ELEMENT CWM:Package.importedElement (CWM:ModelElement)*>
<!ENTITY % CWM:PackageFeatures '%CWM:NamespaceFeatures; |
   CWM:Package.importedElement'>
<!ENTITY % CWM:PackageAtts '%CWM:NamespaceAtts;
   importedElement IDREFS #IMPLIED'>
<!ELEMENT CWM:Package (%CWM:PackageFeatures;)*>
<!ATTLIST CWM:Package %CWM:PackageAtts;>

<!-- ========= CWM:Subsystem ========= -->
<!ENTITY % CWM:SubsystemFeatures '%CWM:PackageFeatures; |
   CWM:Classifier.isAbstract |
   CWM:Classifier.feature'>
<!ENTITY % CWM:SubsystemAtts '%CWM:PackageAtts;
   isAbstract (true|false) #IMPLIED'>
<!ELEMENT CWM:Subsystem (%CWM:SubsystemFeatures;)*>
<!ATTLIST CWM:Subsystem %CWM:SubsystemAtts;>

<!-- ========= CWM:Model ========= -->
<!ENTITY % CWM:ModelFeatures '%CWM:PackageFeatures;'>
<!ENTITY % CWM:ModelAtts '%CWM:PackageAtts;'>
<!ELEMENT CWM:Model (%CWM:ModelFeatures;)*>
<!ATTLIST CWM:Model %CWM:ModelAtts;>

<!-- ========= CWM:Feature ========= -->
<!ELEMENT CWM:Feature.ownerScope EMPTY>
<!ATTLIST CWM:Feature.ownerScope xmi.value %CWM:ScopeKind; #REQUIRED>
<!ELEMENT CWM:Feature.owner (CWM:Classifier)*>
<!ENTITY % CWM:FeatureFeatures '%CWM:ModelElementFeatures; |
   CWM:Feature.ownerScope |
   CWM:Feature.owner'>
<!ENTITY % CWM:FeatureAtts '%CWM:ModelElementAtts;
   ownerScope %CWM:ScopeKind; #IMPLIED
   owner IDREFS #IMPLIED'>
<!ELEMENT CWM:Feature (%CWM:FeatureFeatures;)*>
<!ATTLIST CWM:Feature %CWM:FeatureAtts;>

<!-- ========= CWM:StructuralFeature ========= -->
<!ELEMENT CWM:StructuralFeature.changeability EMPTY>
<!ATTLIST CWM:StructuralFeature.changeability xmi.value %CWM:ChangeableKind; #REQUIRED>
<!ELEMENT CWM:StructuralFeature.multiplicity (CWM:Multiplicity)*>
<!ELEMENT CWM:StructuralFeature.ordering EMPTY>
<!ATTLIST CWM:StructuralFeature.ordering xmi.value %CWM:OrderingKind; #REQUIRED>
<!ELEMENT CWM:StructuralFeature.targetScope EMPTY>
<!ATTLIST CWM:StructuralFeature.targetScope xmi.value %CWM:ScopeKind; #REQUIRED>
<!ELEMENT CWM:StructuralFeature.type (CWM:Classifier)*>
<!ENTITY % CWM:StructuralFeatureFeatures '%CWM:FeatureFeatures; |
   CWM:StructuralFeature.changeability |
   CWM:StructuralFeature.multiplicity |
   CWM:StructuralFeature.ordering |
   CWM:StructuralFeature.targetScope |
   CWM:StructuralFeature.type'>
<!ENTITY % CWM:StructuralFeatureAtts '%CWM:FeatureAtts;
   changeability %CWM:ChangeableKind; #IMPLIED
   ordering %CWM:OrderingKind; #IMPLIED
   targetScope %CWM:ScopeKind; #IMPLIED
   type IDREFS #IMPLIED'>
<!ELEMENT CWM:StructuralFeature (%CWM:StructuralFeatureFeatures;)*>
<!ATTLIST CWM:StructuralFeature %CWM:StructuralFeatureAtts;>

<!-- ========= CWM:Attribute ========= -->
<!ELEMENT CWM:Attribute.initialValue (CWM:Expression|CWM:BooleanExpression|
   CWM:ProcedureExpression|CWM:QueryExpression)*>
<!ENTITY % CWM:AttributeFeatures '%CWM:StructuralFeatureFeatures; |
   CWM:Attribute.initialValue'>
<!ENTITY % CWM:AttributeAtts '%CWM:StructuralFeatureAtts;'>
<!ELEMENT CWM:Attribute (%CWM:AttributeFeatures;)*>
<!ATTLIST CWM:Attribute %CWM:AttributeAtts;>

<!-- ========= CWM:Constraint ========= -->
<!ELEMENT CWM:Constraint.body (CWM:BooleanExpression)*>
<!ELEMENT CWM:Constraint.constrainedElement (CWM:ModelElement)*>
<!ENTITY % CWM:ConstraintFeatures '%CWM:ModelElementFeatures; |
   CWM:Constraint.body |
   CWM:Constraint.constrainedElement'>
<!ENTITY % CWM:ConstraintAtts '%CWM:ModelElementAtts;
   constrainedElement IDREFS #IMPLIED'>
<!ELEMENT CWM:Constraint (%CWM:ConstraintFeatures;)*>
<!ATTLIST CWM:Constraint %CWM:ConstraintAtts;>

<!-- ========= CWM:Dependency ========= -->
<!ELEMENT CWM:Dependency.kind (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Dependency.client (CWM:ModelElement)*>
<!ELEMENT CWM:Dependency.supplier (CWM:ModelElement)*>
<!ENTITY % CWM:DependencyFeatures '%CWM:ModelElementFeatures; |
   CWM:Dependency.kind |
   CWM:Dependency.client |
   CWM:Dependency.supplier'>
<!ENTITY % CWM:DependencyAtts '%CWM:ModelElementAtts;
   kind CDATA #IMPLIED
   client IDREFS #IMPLIED
   supplier IDREFS #IMPLIED'>
<!ELEMENT CWM:Dependency (%CWM:DependencyFeatures;)*>
<!ATTLIST CWM:Dependency %CWM:DependencyAtts;>

<!-- ========= CWM:Expression ========= -->
<!ELEMENT CWM:Expression.body (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Expression.language (#PCDATA|XMI.reference)*>
<!ENTITY % CWM:ExpressionFeatures '%CWM:ElementFeatures; |
   CWM:Expression.body |
   CWM:Expression.language'>
<!ENTITY % CWM:ExpressionAtts '%CWM:ElementAtts;
   body CDATA #IMPLIED
   language CDATA #IMPLIED'>
<!ELEMENT CWM:Expression (%CWM:ExpressionFeatures;)*>
<!ATTLIST CWM:Expression %CWM:ExpressionAtts;>

<!-- ========= CWM:BooleanExpression ========= -->
<!ENTITY % CWM:BooleanExpressionFeatures '%CWM:ExpressionFeatures;'>
<!ENTITY % CWM:BooleanExpressionAtts '%CWM:ExpressionAtts;'>
<!ELEMENT CWM:BooleanExpression (%CWM:BooleanExpressionFeatures;)*>
<!ATTLIST CWM:BooleanExpression %CWM:BooleanExpressionAtts;>

<!-- ========= CWM:ProcedureExpression ========= -->
<!ENTITY % CWM:ProcedureExpressionFeatures '%CWM:ExpressionFeatures;'>
<!ENTITY % CWM:ProcedureExpressionAtts '%CWM:ExpressionAtts;'>
<!ELEMENT CWM:ProcedureExpression (%CWM:ProcedureExpressionFeatures;)*>
<!ATTLIST CWM:ProcedureExpression %CWM:ProcedureExpressionAtts;>

<!-- ========= CWM:Multiplicity ========= -->
<!ELEMENT CWM:Multiplicity.range (CWM:MultiplicityRange)*>
<!ENTITY % CWM:MultiplicityFeatures '%CWM:ElementFeatures; |
   CWM:Multiplicity.range'>
<!ENTITY % CWM:MultiplicityAtts '%CWM:ElementAtts;'>
<!ELEMENT CWM:Multiplicity (%CWM:MultiplicityFeatures;)*>
<!ATTLIST CWM:Multiplicity %CWM:MultiplicityAtts;>

<!-- ========= CWM:MultiplicityRange ========= -->
<!ELEMENT CWM:MultiplicityRange.lower (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:MultiplicityRange.upper (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:MultiplicityRange.multiplicity (CWM:Multiplicity)*>
<!ENTITY % CWM:MultiplicityRangeFeatures '%CWM:ElementFeatures; |
   CWM:MultiplicityRange.lower |
   CWM:MultiplicityRange.upper |
   CWM:MultiplicityRange.multiplicity'>
<!ENTITY % CWM:MultiplicityRangeAtts '%CWM:ElementAtts;
   lower CDATA #IMPLIED
   upper CDATA #IMPLIED
   multiplicity IDREFS #IMPLIED'>
<!ELEMENT CWM:MultiplicityRange (%CWM:MultiplicityRangeFeatures;)*>
<!ATTLIST CWM:MultiplicityRange %CWM:MultiplicityRangeAtts;>

<!-- ========= CWM:Stereotype ========= -->
<!ELEMENT CWM:Stereotype.baseClass (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Stereotype.extendedElement (CWM:ModelElement)*>
<!ELEMENT CWM:Stereotype.requiredTag (CWM:TaggedValue)*>
<!ELEMENT CWM:Stereotype.stereotypeConstraint (CWM:Constraint|
   CWMRDB:CheckConstraint|CWMTFM:PrecedenceConstraint)*>
<!ENTITY % CWM:StereotypeFeatures '%CWM:ModelElementFeatures; |
   CWM:Stereotype.baseClass |
   CWM:Stereotype.extendedElement |
   CWM:Stereotype.requiredTag |
   CWM:Stereotype.stereotypeConstraint'>
<!ENTITY % CWM:StereotypeAtts '%CWM:ModelElementAtts;
   baseClass CDATA #IMPLIED
   extendedElement IDREFS #IMPLIED'>
<!ELEMENT CWM:Stereotype (%CWM:StereotypeFeatures;)*>
<!ATTLIST CWM:Stereotype %CWM:StereotypeAtts;>

<!-- ========= CWM:TaggedValue ========= -->
<!ELEMENT CWM:TaggedValue.tag (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:TaggedValue.value (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:TaggedValue.modelElement (CWM:ModelElement)*>
<!ELEMENT CWM:TaggedValue.stereotype (CWM:Stereotype)*>
<!ENTITY % CWM:TaggedValueFeatures '%CWM:ElementFeatures; |
   CWM:TaggedValue.tag |
   CWM:TaggedValue.value |
   CWM:TaggedValue.modelElement |
   CWM:TaggedValue.stereotype'>
<!ENTITY % CWM:TaggedValueAtts '%CWM:ElementAtts;
   tag CDATA #IMPLIED
   value CDATA #IMPLIED
   modelElement IDREFS #IMPLIED
   stereotype IDREFS #IMPLIED'>
<!ELEMENT CWM:TaggedValue (%CWM:TaggedValueFeatures;)*>
<!ATTLIST CWM:TaggedValue %CWM:TaggedValueAtts;>

<!-- ========= CWM:Behavioral ========= -->
<!ENTITY % CWM:ParameterDirectionKind '(in|inout|out|return)'>

<!-- ========= CWM:Argument ========= -->
<!ELEMENT CWM:Argument.value (CWM:Expression|CWM:BooleanExpression|
   CWM:ProcedureExpression|CWM:QueryExpression)*>
<!ELEMENT CWM:Argument.callAction (CWM:CallAction)*>
<!ENTITY % CWM:ArgumentFeatures '%CWM:ModelElementFeatures; |
   CWM:Argument.value |
   CWM:Argument.callAction'>
<!ENTITY % CWM:ArgumentAtts '%CWM:ModelElementAtts;
   callAction IDREFS #IMPLIED'>
<!ELEMENT CWM:Argument (%CWM:ArgumentFeatures;)*>
<!ATTLIST CWM:Argument %CWM:ArgumentAtts;>

<!-- ========= CWM:BehavioralFeature ========= -->
<!ELEMENT CWM:BehavioralFeature.isQuery EMPTY>
<!ATTLIST CWM:BehavioralFeature.isQuery xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:BehavioralFeature.parameter (CWM:Parameter|CWMRDB:SQLParameter)*>
<!ENTITY % CWM:BehavioralFeatureFeatures '%CWM:FeatureFeatures; |
   CWM:BehavioralFeature.isQuery |
   CWM:BehavioralFeature.parameter'>
<!ENTITY % CWM:BehavioralFeatureAtts '%CWM:FeatureAtts;
   isQuery (true|false) #IMPLIED'>
<!ELEMENT CWM:BehavioralFeature (%CWM:BehavioralFeatureFeatures;)*>
<!ATTLIST CWM:BehavioralFeature %CWM:BehavioralFeatureAtts;>

<!-- ========= CWM:CallAction ========= -->
<!ELEMENT CWM:CallAction.operation (CWM:Operation)*>
<!ELEMENT CWM:CallAction.actualArgument (CWM:Argument)*>
<!ENTITY % CWM:CallActionFeatures '%CWM:ModelElementFeatures; |
   CWM:CallAction.operation |
   CWM:CallAction.actualArgument'>
<!ENTITY % CWM:CallActionAtts '%CWM:ModelElementAtts;
   operation IDREFS #IMPLIED'>
<!ELEMENT CWM:CallAction (%CWM:CallActionFeatures;)*>
<!ATTLIST CWM:CallAction %CWM:CallActionAtts;>

<!-- ========= CWM:Event ========= -->
<!ELEMENT CWM:Event.parameter (CWM:Parameter|CWMRDB:SQLParameter)*>
<!ENTITY % CWM:EventFeatures '%CWM:ModelElementFeatures; |
   CWM:Event.parameter'>
<!ENTITY % CWM:EventAtts '%CWM:ModelElementAtts;'>
<!ELEMENT CWM:Event (%CWM:EventFeatures;)*>
<!ATTLIST CWM:Event %CWM:EventAtts;>

<!-- ========= CWM:Interface ========= -->
<!ENTITY % CWM:InterfaceFeatures '%CWM:ClassifierFeatures;'>
<!ENTITY % CWM:InterfaceAtts '%CWM:ClassifierAtts;'>
<!ELEMENT CWM:Interface (%CWM:InterfaceFeatures;)*>
<!ATTLIST CWM:Interface %CWM:InterfaceAtts;>

<!-- ========= CWM:Method ========= -->
<!ELEMENT CWM:Method.body (CWM:ProcedureExpression|CWM:QueryExpression)*>
<!ELEMENT CWM:Method.specification (CWM:Operation)*>
<!ENTITY % CWM:MethodFeatures '%CWM:BehavioralFeatureFeatures; |
   CWM:Method.body |
   CWM:Method.specification'>
<!ENTITY % CWM:MethodAtts '%CWM:BehavioralFeatureAtts;
   specification IDREFS #IMPLIED'>
<!ELEMENT CWM:Method (%CWM:MethodFeatures;)*>
<!ATTLIST CWM:Method %CWM:MethodAtts;>

<!-- ========= CWM:Operation ========= -->
<!ELEMENT CWM:Operation.isAbstract EMPTY>
<!ATTLIST CWM:Operation.isAbstract xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:Operation.method (CWM:Method)*>
<!ENTITY % CWM:OperationFeatures '%CWM:BehavioralFeatureFeatures; |
   CWM:Operation.isAbstract |
   CWM:Operation.method'>
<!ENTITY % CWM:OperationAtts '%CWM:BehavioralFeatureAtts;
   isAbstract (true|false) #IMPLIED
   method IDREFS #IMPLIED'>
<!ELEMENT CWM:Operation (%CWM:OperationFeatures;)*>
<!ATTLIST CWM:Operation %CWM:OperationAtts;>

<!-- ========= CWM:Parameter ========= -->
<!ELEMENT CWM:Parameter.defaultValue (CWM:Expression|CWM:BooleanExpression|
   CWM:ProcedureExpression|CWM:QueryExpression)*>
<!ELEMENT CWM:Parameter.kind EMPTY>
<!ATTLIST CWM:Parameter.kind xmi.value %CWM:ParameterDirectionKind; #REQUIRED>
<!ELEMENT CWM:Parameter.behavioralFeature (CWM:BehavioralFeature)*>
<!ELEMENT CWM:Parameter.event (CWM:Event)*>
<!ELEMENT CWM:Parameter.type (CWM:Classifier)*>
<!ENTITY % CWM:ParameterFeatures '%CWM:ModelElementFeatures; |
   CWM:Parameter.defaultValue |
   CWM:Parameter.kind |
   CWM:Parameter.behavioralFeature |
   CWM:Parameter.event |
   CWM:Parameter.type'>
<!ENTITY % CWM:ParameterAtts '%CWM:ModelElementAtts;
   kind %CWM:ParameterDirectionKind; #IMPLIED
   behavioralFeature IDREFS #IMPLIED
   event IDREFS #IMPLIED
   type IDREFS #IMPLIED'>
<!ELEMENT CWM:Parameter (%CWM:ParameterFeatures;)*>
<!ATTLIST CWM:Parameter %CWM:ParameterAtts;>

<!-- ========= CWM:Relationships ========= -->
<!ENTITY % CWM:AggregationKind '(none|aggregate|composite)'>

<!-- ========= CWM:Association ========= -->
<!ENTITY % CWM:AssociationFeatures '%CWM:ClassFeatures;'>
<!ENTITY % CWM:AssociationAtts '%CWM:ClassAtts;'>
<!ELEMENT CWM:Association (%CWM:AssociationFeatures;)*>
<!ATTLIST CWM:Association %CWM:AssociationAtts;>

<!-- ========= CWM:AssociationEnd ========= -->
<!ELEMENT CWM:AssociationEnd.aggregation EMPTY>
<!ATTLIST CWM:AssociationEnd.aggregation xmi.value %CWM:AggregationKind; #REQUIRED>
<!ELEMENT CWM:AssociationEnd.isNavigable EMPTY>
<!ATTLIST CWM:AssociationEnd.isNavigable xmi.value (true|false) #REQUIRED>
<!ENTITY % CWM:AssociationEndFeatures '%CWM:StructuralFeatureFeatures; |
   CWM:AssociationEnd.aggregation |
   CWM:AssociationEnd.isNavigable'>
<!ENTITY % CWM:AssociationEndAtts '%CWM:StructuralFeatureAtts;
   aggregation %CWM:AggregationKind; #IMPLIED
   isNavigable (true|false) #IMPLIED'>
<!ELEMENT CWM:AssociationEnd (%CWM:AssociationEndFeatures;)*>
<!ATTLIST CWM:AssociationEnd %CWM:AssociationEndAtts;>

<!-- ========= CWM:Generalization ========= -->
<!ELEMENT CWM:Generalization.child (CWM:Classifier)*>
<!ELEMENT CWM:Generalization.parent (CWM:Classifier)*>
<!ENTITY % CWM:GeneralizationFeatures '%CWM:ModelElementFeatures; |
   CWM:Generalization.child |
   CWM:Generalization.parent'>
<!ENTITY % CWM:GeneralizationAtts '%CWM:ModelElementAtts;
   child IDREFS #IMPLIED
   parent IDREFS #IMPLIED'>
<!ELEMENT CWM:Generalization (%CWM:GeneralizationFeatures;)*>
<!ATTLIST CWM:Generalization %CWM:GeneralizationAtts;>

<!-- ========= CWM:Instance ========= -->

<!-- ========= CWM:Instance ========= -->
<!ELEMENT CWM:Instance.classifier (CWM:Classifier)*>
<!ENTITY % CWM:InstanceFeatures '%CWM:ModelElementFeatures; |
   CWM:Instance.classifier'>
<!ENTITY % CWM:InstanceAtts '%CWM:ModelElementAtts;
   classifier IDREFS #IMPLIED'>
<!ELEMENT CWM:Instance (%CWM:InstanceFeatures;)*>
<!ATTLIST CWM:Instance %CWM:InstanceAtts;>

<!-- ========= CWM:Slot ========= -->
<!ELEMENT CWM:Slot.object (CWM:Object)*>
<!ELEMENT CWM:Slot.value (CWM:Instance)*>
<!ELEMENT CWM:Slot.feature (CWM:StructuralFeature)*>
<!ENTITY % CWM:SlotFeatures '%CWM:ModelElementFeatures; |
   CWM:Slot.object |
   CWM:Slot.value |
   CWM:Slot.feature'>
<!ENTITY % CWM:SlotAtts '%CWM:ModelElementAtts;
   object IDREFS #IMPLIED
   value IDREFS #IMPLIED
   feature IDREFS #IMPLIED'>
<!ELEMENT CWM:Slot (%CWM:SlotFeatures;)*>
<!ATTLIST CWM:Slot %CWM:SlotAtts;>

<!-- ========= CWM:DataValue ========= -->
<!ELEMENT CWM:DataValue.value (#PCDATA|XMI.reference)*>
<!ENTITY % CWM:DataValueFeatures '%CWM:InstanceFeatures; |
   CWM:DataValue.value'>
<!ENTITY % CWM:DataValueAtts '%CWM:InstanceAtts;
   value CDATA #IMPLIED'>
<!ELEMENT CWM:DataValue (%CWM:DataValueFeatures;)*>
<!ATTLIST CWM:DataValue %CWM:DataValueAtts;>

<!-- ========= CWM:Object ========= -->
<!ELEMENT CWM:Object.slot (CWM:Slot)*>
<!ENTITY % CWM:ObjectFeatures '%CWM:InstanceFeatures; |
   CWM:Object.slot'>
<!ENTITY % CWM:ObjectAtts '%CWM:InstanceAtts;'>
<!ELEMENT CWM:Object (%CWM:ObjectFeatures;)*>
<!ATTLIST CWM:Object %CWM:ObjectAtts;>

<!-- ========= CWM:Extent ========= -->
<!ENTITY % CWM:ExtentFeatures '%CWM:PackageFeatures;'>
<!ENTITY % CWM:ExtentAtts '%CWM:PackageAtts;'>
<!ELEMENT CWM:Extent (%CWM:ExtentFeatures;)*>
<!ATTLIST CWM:Extent %CWM:ExtentAtts;>

<!-- ========= CWM:BusinessInformation ========= -->

<!-- ========= CWM:ResponsibleParty ========= -->
<!ELEMENT CWM:ResponsibleParty.responsibility (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:ResponsibleParty.contact (CWM:Contact)*>
<!ELEMENT CWM:ResponsibleParty.modelElement (CWM:ModelElement)*>
<!ENTITY % CWM:ResponsiblePartyFeatures '%CWM:NamespaceFeatures; |
   CWM:ResponsibleParty.responsibility |
   CWM:ResponsibleParty.contact |
   CWM:ResponsibleParty.modelElement'>
<!ENTITY % CWM:ResponsiblePartyAtts '%CWM:NamespaceAtts;
   responsibility CDATA #IMPLIED
   contact IDREFS #IMPLIED
   modelElement IDREFS #IMPLIED'>
<!ELEMENT CWM:ResponsibleParty (%CWM:ResponsiblePartyFeatures;)*>
<!ATTLIST CWM:ResponsibleParty %CWM:ResponsiblePartyAtts;>

<!-- ========= CWM:Telephone ========= -->
<!ELEMENT CWM:Telephone.phoneNumber (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Telephone.phoneType (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Telephone.contact (CWM:Contact)*>
<!ENTITY % CWM:TelephoneFeatures '%CWM:ModelElementFeatures; |
   CWM:Telephone.phoneNumber |
   CWM:Telephone.phoneType |
   CWM:Telephone.contact'>
<!ENTITY % CWM:TelephoneAtts '%CWM:ModelElementAtts;
   phoneNumber CDATA #IMPLIED
   phoneType CDATA #IMPLIED
   contact IDREFS #IMPLIED'>
<!ELEMENT CWM:Telephone (%CWM:TelephoneFeatures;)*>
<!ATTLIST CWM:Telephone %CWM:TelephoneAtts;>

<!-- ========= CWM:Email ========= -->
<!ELEMENT CWM:Email.emailAddress (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Email.emailType (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Email.contact (CWM:Contact)*>
<!ENTITY % CWM:EmailFeatures '%CWM:ModelElementFeatures; |
   CWM:Email.emailAddress |
   CWM:Email.emailType |
   CWM:Email.contact'>
<!ENTITY % CWM:EmailAtts '%CWM:ModelElementAtts;
   emailAddress CDATA #IMPLIED
   emailType CDATA #IMPLIED
   contact IDREFS #IMPLIED'>
<!ELEMENT CWM:Email (%CWM:EmailFeatures;)*>
<!ATTLIST CWM:Email %CWM:EmailAtts;>

<!-- ========= CWM:Location ========= -->
<!ELEMENT CWM:Location.locationType (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Location.address (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Location.city (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Location.postCode (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Location.area (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Location.country (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Location.contact (CWM:Contact)*>
<!ENTITY % CWM:LocationFeatures '%CWM:ModelElementFeatures; |
   CWM:Location.locationType |
   CWM:Location.address |
   CWM:Location.city |
   CWM:Location.postCode |
   CWM:Location.area |
   CWM:Location.country |
   CWM:Location.contact'>
<!ENTITY % CWM:LocationAtts '%CWM:ModelElementAtts;
   locationType CDATA #IMPLIED
   address CDATA #IMPLIED
   city CDATA #IMPLIED
   postCode CDATA #IMPLIED
   area CDATA #IMPLIED
   country CDATA #IMPLIED
   contact IDREFS #IMPLIED'>
<!ELEMENT CWM:Location (%CWM:LocationFeatures;)*>
<!ATTLIST CWM:Location %CWM:LocationAtts;>

<!-- ========= CWM:Contact ========= -->
<!ELEMENT CWM:Contact.email (CWM:Email)*>
<!ELEMENT CWM:Contact.location (CWM:Location)*>
<!ELEMENT CWM:Contact.responsibleParty (CWM:ResponsibleParty)*>
<!ELEMENT CWM:Contact.telephone (CWM:Telephone)*>
<!ELEMENT CWM:Contact.url (CWM:ResourceLocator)*>
<!ENTITY % CWM:ContactFeatures '%CWM:ModelElementFeatures; |
   CWM:Contact.email |
   CWM:Contact.location |
   CWM:Contact.responsibleParty |
   CWM:Contact.telephone |
   CWM:Contact.url'>
<!ENTITY % CWM:ContactAtts '%CWM:ModelElementAtts;
   email IDREFS #IMPLIED
   location IDREFS #IMPLIED
   responsibleParty IDREFS #IMPLIED
   telephone IDREFS #IMPLIED
   url IDREFS #IMPLIED'>
<!ELEMENT CWM:Contact (%CWM:ContactFeatures;)*>
<!ATTLIST CWM:Contact %CWM:ContactAtts;>

<!-- ========= CWM:Description ========= -->
<!ELEMENT CWM:Description.body (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Description.language (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Description.type (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Description.modelElement (CWM:ModelElement)*>
<!ENTITY % CWM:DescriptionFeatures '%CWM:NamespaceFeatures; |
   CWM:Description.body |
   CWM:Description.language |
   CWM:Description.type |
   CWM:Description.modelElement'>
<!ENTITY % CWM:DescriptionAtts '%CWM:NamespaceAtts;
   body CDATA #IMPLIED
   language CDATA #IMPLIED
   type CDATA #IMPLIED
   modelElement IDREFS #IMPLIED'>
<!ELEMENT CWM:Description (%CWM:DescriptionFeatures;)*>
<!ATTLIST CWM:Description %CWM:DescriptionAtts;>

<!-- ========= CWM:Document ========= -->
<!ELEMENT CWM:Document.reference (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Document.type (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Document.modelElement (CWM:ModelElement)*>
<!ENTITY % CWM:DocumentFeatures '%CWM:NamespaceFeatures; |
   CWM:Document.reference |
   CWM:Document.type |
   CWM:Document.modelElement'>
<!ENTITY % CWM:DocumentAtts '%CWM:NamespaceAtts;
   reference CDATA #IMPLIED
   type CDATA #IMPLIED
   modelElement IDREFS #IMPLIED'>
<!ELEMENT CWM:Document (%CWM:DocumentFeatures;)*>
<!ATTLIST CWM:Document %CWM:DocumentAtts;>

<!-- ========= CWM:ResourceLocator ========= -->
<!ELEMENT CWM:ResourceLocator.url (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:ResourceLocator.contact (CWM:Contact)*>
<!ENTITY % CWM:ResourceLocatorFeatures '%CWM:ModelElementFeatures; |
   CWM:ResourceLocator.url |
   CWM:ResourceLocator.contact'>
<!ENTITY % CWM:ResourceLocatorAtts '%CWM:ModelElementAtts;
   url CDATA #IMPLIED
   contact IDREFS #IMPLIED'>
<!ELEMENT CWM:ResourceLocator (%CWM:ResourceLocatorFeatures;)*>
<!ATTLIST CWM:ResourceLocator %CWM:ResourceLocatorAtts;>

<!-- ========= CWM:DataTypes ========= -->

<!-- ========= CWM:Enumeration ========= -->
<!ELEMENT CWM:Enumeration.isOrdered EMPTY>
<!ATTLIST CWM:Enumeration.isOrdered xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:Enumeration.literal (CWM:EnumerationLiteral)*>
<!ENTITY % CWM:EnumerationFeatures '%CWM:DataTypeFeatures; |
   CWM:Enumeration.isOrdered |
   CWM:Enumeration.literal'>
<!ENTITY % CWM:EnumerationAtts '%CWM:DataTypeAtts;
   isOrdered (true|false) #IMPLIED'>
<!ELEMENT CWM:Enumeration (%CWM:EnumerationFeatures;)*>
<!ATTLIST CWM:Enumeration %CWM:EnumerationAtts;>

<!-- ========= CWM:EnumerationLiteral ========= -->
<!ELEMENT CWM:EnumerationLiteral.value (CWM:Expression|CWM:BooleanExpression|
   CWM:ProcedureExpression|CWM:QueryExpression)*>
<!ELEMENT CWM:EnumerationLiteral.enumeration (CWM:Enumeration)*>
<!ENTITY % CWM:EnumerationLiteralFeatures '%CWM:ModelElementFeatures; |
   CWM:EnumerationLiteral.value |
   CWM:EnumerationLiteral.enumeration'>
<!ENTITY % CWM:EnumerationLiteralAtts '%CWM:ModelElementAtts;
   enumeration IDREFS #IMPLIED'>
<!ELEMENT CWM:EnumerationLiteral (%CWM:EnumerationLiteralFeatures;)*>
<!ATTLIST CWM:EnumerationLiteral %CWM:EnumerationLiteralAtts;>

<!-- ========= CWM:QueryExpression ========= -->
<!ENTITY % CWM:QueryExpressionFeatures '%CWM:ProcedureExpressionFeatures;'>
<!ENTITY % CWM:QueryExpressionAtts '%CWM:ProcedureExpressionAtts;'>
<!ELEMENT CWM:QueryExpression (%CWM:QueryExpressionFeatures;)*>
<!ATTLIST CWM:QueryExpression %CWM:QueryExpressionAtts;>

<!-- ========= CWM:TypeAlias ========= -->
<!ELEMENT CWM:TypeAlias.type (CWM:Classifier)*>
<!ENTITY % CWM:TypeAliasFeatures '%CWM:DataTypeFeatures; |
   CWM:TypeAlias.type'>
<!ENTITY % CWM:TypeAliasAtts '%CWM:DataTypeAtts;
   type IDREFS #IMPLIED'>
<!ELEMENT CWM:TypeAlias (%CWM:TypeAliasFeatures;)*>
<!ATTLIST CWM:TypeAlias %CWM:TypeAliasAtts;>

<!-- ========= CWM:Union ========= -->
<!ELEMENT CWM:Union.discriminator (CWM:StructuralFeature)*>
<!ENTITY % CWM:UnionFeatures '%CWM:ClassifierFeatures; |
   CWM:Union.discriminator'>
<!ENTITY % CWM:UnionAtts '%CWM:ClassifierAtts;
   discriminator IDREFS #IMPLIED'>
<!ELEMENT CWM:Union (%CWM:UnionFeatures;)*>
<!ATTLIST CWM:Union %CWM:UnionAtts;>

<!-- ========= CWM:UnionMember ========= -->
<!ELEMENT CWM:UnionMember.memberCase (CWM:Expression|CWM:BooleanExpression|
   CWM:ProcedureExpression|CWM:QueryExpression)*>
<!ELEMENT CWM:UnionMember.isDefault EMPTY>
<!ATTLIST CWM:UnionMember.isDefault xmi.value (true|false) #REQUIRED>
<!ENTITY % CWM:UnionMemberFeatures '%CWM:AttributeFeatures; |
   CWM:UnionMember.memberCase |
   CWM:UnionMember.isDefault'>
<!ENTITY % CWM:UnionMemberAtts '%CWM:AttributeAtts;
   isDefault (true|false) #IMPLIED'>
<!ELEMENT CWM:UnionMember (%CWM:UnionMemberFeatures;)*>
<!ATTLIST CWM:UnionMember %CWM:UnionMemberAtts;>

<!-- ========= CWM:Expressions ========= -->

<!-- ========= CWM:ExpressionNode ========= -->
<!ELEMENT CWM:ExpressionNode.expression (CWM:Expression|CWM:BooleanExpression|
   CWM:ProcedureExpression|CWM:QueryExpression)*>
<!ELEMENT CWM:ExpressionNode.featureNode (CWM:FeatureNode)*>
<!ELEMENT CWM:ExpressionNode.type (CWM:Classifier)*>
<!ENTITY % CWM:ExpressionNodeFeatures '%CWM:ElementFeatures; |
   CWM:ExpressionNode.expression |
   CWM:ExpressionNode.featureNode |
   CWM:ExpressionNode.type'>
<!ENTITY % CWM:ExpressionNodeAtts '%CWM:ElementAtts;
   featureNode IDREFS #IMPLIED
   type IDREFS #IMPLIED'>
<!ELEMENT CWM:ExpressionNode (%CWM:ExpressionNodeFeatures;)*>
<!ATTLIST CWM:ExpressionNode %CWM:ExpressionNodeAtts;>

<!-- ========= CWM:ConstantNode ========= -->
<!ELEMENT CWM:ConstantNode.value (XMI.any)>
<!ENTITY % CWM:ConstantNodeFeatures '%CWM:ExpressionNodeFeatures; |
   CWM:ConstantNode.value'>
<!ENTITY % CWM:ConstantNodeAtts '%CWM:ExpressionNodeAtts;'>
<!ELEMENT CWM:ConstantNode (%CWM:ConstantNodeFeatures;)*>
<!ATTLIST CWM:ConstantNode %CWM:ConstantNodeAtts;>

<!-- ========= CWM:ElementNode ========= -->
<!ELEMENT CWM:ElementNode.modelElement (CWM:ModelElement)*>
<!ENTITY % CWM:ElementNodeFeatures '%CWM:ExpressionNodeFeatures; |
   CWM:ElementNode.modelElement'>
<!ENTITY % CWM:ElementNodeAtts '%CWM:ExpressionNodeAtts;
   modelElement IDREFS #IMPLIED'>
<!ELEMENT CWM:ElementNode (%CWM:ElementNodeFeatures;)*>
<!ATTLIST CWM:ElementNode %CWM:ElementNodeAtts;>

<!-- ========= CWM:FeatureNode ========= -->
<!ELEMENT CWM:FeatureNode.argument (CWM:ExpressionNode|CWM:ConstantNode|
   CWM:ElementNode|CWM:FeatureNode)*>
<!ELEMENT CWM:FeatureNode.feature (CWM:Feature)*>
<!ENTITY % CWM:FeatureNodeFeatures '%CWM:ExpressionNodeFeatures; |
   CWM:FeatureNode.argument |
   CWM:FeatureNode.feature'>
<!ENTITY % CWM:FeatureNodeAtts '%CWM:ExpressionNodeAtts;
   feature IDREFS #IMPLIED'>
<!ELEMENT CWM:FeatureNode (%CWM:FeatureNodeFeatures;)*>
<!ATTLIST CWM:FeatureNode %CWM:FeatureNodeAtts;>

<!-- ========= CWM:KeysIndexes ========= -->

<!-- ========= CWM:UniqueKey ========= -->
<!ELEMENT CWM:UniqueKey.feature (CWM:StructuralFeature)*>
<!ELEMENT CWM:UniqueKey.keyRelationship (CWM:KeyRelationship)*>
<!ENTITY % CWM:UniqueKeyFeatures '%CWM:ModelElementFeatures; |
   CWM:UniqueKey.feature |
   CWM:UniqueKey.keyRelationship'>
<!ENTITY % CWM:UniqueKeyAtts '%CWM:ModelElementAtts;
   feature IDREFS #IMPLIED
   keyRelationship IDREFS #IMPLIED'>
<!ELEMENT CWM:UniqueKey (%CWM:UniqueKeyFeatures;)*>
<!ATTLIST CWM:UniqueKey %CWM:UniqueKeyAtts;>

<!-- ========= CWM:Index ========= -->
<!ELEMENT CWM:Index.isPartitioning EMPTY>
<!ATTLIST CWM:Index.isPartitioning xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:Index.isSorted EMPTY>
<!ATTLIST CWM:Index.isSorted xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:Index.isUnique EMPTY>
<!ATTLIST CWM:Index.isUnique xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:Index.indexedFeature (CWM:IndexedFeature|CWMRDB:SQLIndexColumn)*>
<!ELEMENT CWM:Index.spannedClass (CWM:Class)*>
<!ENTITY % CWM:IndexFeatures '%CWM:ModelElementFeatures; |
   CWM:Index.isPartitioning |
   CWM:Index.isSorted |
   CWM:Index.isUnique |
   CWM:Index.indexedFeature |
   CWM:Index.spannedClass'>
<!ENTITY % CWM:IndexAtts '%CWM:ModelElementAtts;
   isPartitioning (true|false) #IMPLIED
   isSorted (true|false) #IMPLIED
   isUnique (true|false) #IMPLIED
   spannedClass IDREFS #IMPLIED'>
<!ELEMENT CWM:Index (%CWM:IndexFeatures;)*>
<!ATTLIST CWM:Index %CWM:IndexAtts;>

<!-- ========= CWM:KeyRelationship ========= -->
<!ELEMENT CWM:KeyRelationship.feature (CWM:StructuralFeature)*>
<!ELEMENT CWM:KeyRelationship.uniqueKey (CWM:UniqueKey)*>
<!ENTITY % CWM:KeyRelationshipFeatures '%CWM:ModelElementFeatures; |
   CWM:KeyRelationship.feature |
   CWM:KeyRelationship.uniqueKey'>
<!ENTITY % CWM:KeyRelationshipAtts '%CWM:ModelElementAtts;
   feature IDREFS #IMPLIED
   uniqueKey IDREFS #IMPLIED'>
<!ELEMENT CWM:KeyRelationship (%CWM:KeyRelationshipFeatures;)*>
<!ATTLIST CWM:KeyRelationship %CWM:KeyRelationshipAtts;>

<!-- ========= CWM:IndexedFeature ========= -->
<!ELEMENT CWM:IndexedFeature.isAscending EMPTY>
<!ATTLIST CWM:IndexedFeature.isAscending xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:IndexedFeature.feature (CWM:StructuralFeature)*>
<!ELEMENT CWM:IndexedFeature.index (CWM:Index)*>
<!ENTITY % CWM:IndexedFeatureFeatures '%CWM:ModelElementFeatures; |
   CWM:IndexedFeature.isAscending |
   CWM:IndexedFeature.feature |
   CWM:IndexedFeature.index'>
<!ENTITY % CWM:IndexedFeatureAtts '%CWM:ModelElementAtts;
   isAscending (true|false) #IMPLIED
   feature IDREFS #IMPLIED
   index IDREFS #IMPLIED'>
<!ELEMENT CWM:IndexedFeature (%CWM:IndexedFeatureFeatures;)*>
<!ATTLIST CWM:IndexedFeature %CWM:IndexedFeatureAtts;>

<!-- ========= CWM:TypeMapping ========= -->

<!-- ========= CWM:TypeMapping ========= -->
<!ELEMENT CWM:TypeMapping.isBestMatch EMPTY>
<!ATTLIST CWM:TypeMapping.isBestMatch xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:TypeMapping.isLossy EMPTY>
<!ATTLIST CWM:TypeMapping.isLossy xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:TypeMapping.sourceType (CWM:Classifier)*>
<!ELEMENT CWM:TypeMapping.targetType (CWM:Classifier)*>
<!ENTITY % CWM:TypeMappingFeatures '%CWM:ModelElementFeatures; |
   CWM:TypeMapping.isBestMatch |
   CWM:TypeMapping.isLossy |
   CWM:TypeMapping.sourceType |
   CWM:TypeMapping.targetType'>
<!ENTITY % CWM:TypeMappingAtts '%CWM:ModelElementAtts;
   isBestMatch (true|false) #IMPLIED
   isLossy (true|false) #IMPLIED
   sourceType IDREFS #IMPLIED
   targetType IDREFS #IMPLIED'>
<!ELEMENT CWM:TypeMapping (%CWM:TypeMappingFeatures;)*>
<!ATTLIST CWM:TypeMapping %CWM:TypeMappingAtts;>

<!-- ========= CWM:TypeSystem ========= -->
<!ELEMENT CWM:TypeSystem.version (#PCDATA|XMI.reference)*>
<!ENTITY % CWM:TypeSystemFeatures '%CWM:PackageFeatures; |
   CWM:TypeSystem.version'>
<!ENTITY % CWM:TypeSystemAtts '%CWM:PackageAtts;
   version CDATA #IMPLIED'>
<!ELEMENT CWM:TypeSystem (%CWM:TypeSystemFeatures;)*>
<!ATTLIST CWM:TypeSystem %CWM:TypeSystemAtts;>

<!-- ========= CWM:SoftwareDeployment ========= -->

<!-- ========= CWM:Site ========= -->
<!ELEMENT CWM:Site.containingSite (CWM:Site)*>
<!ENTITY % CWM:SiteFeatures '%CWM:LocationFeatures; |
   CWM:Site.containingSite'>
<!ENTITY % CWM:SiteAtts '%CWM:LocationAtts;
   containingSite IDREFS #IMPLIED'>
<!ELEMENT CWM:Site (%CWM:SiteFeatures;)*>
<!ATTLIST CWM:Site %CWM:SiteAtts;>

<!-- ========= CWM:Machine ========= -->
<!ELEMENT CWM:Machine.ipAddress (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Machine.hostName (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Machine.machineID (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:Machine.site (CWM:Site)*>
<!ELEMENT CWM:Machine.deployedComponent (CWM:DeployedComponent|
   CWM:DataManager|CWM:DataProvider)*>
<!ENTITY % CWM:MachineFeatures '%CWM:NamespaceFeatures; |
   CWM:Machine.ipAddress |
   CWM:Machine.hostName |
   CWM:Machine.machineID |
   CWM:Machine.site |
   CWM:Machine.deployedComponent'>
<!ENTITY % CWM:MachineAtts '%CWM:NamespaceAtts;
   machineID CDATA #IMPLIED
   site IDREFS #IMPLIED'>
<!ELEMENT CWM:Machine (%CWM:MachineFeatures;)*>
<!ATTLIST CWM:Machine %CWM:MachineAtts;>

<!-- ========= CWM:SoftwareSystem ========= -->
<!ELEMENT CWM:SoftwareSystem.type (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:SoftwareSystem.subtype (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:SoftwareSystem.supplier (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:SoftwareSystem.version (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:SoftwareSystem.typespace (CWM:TypeSystem)*>
<!ENTITY % CWM:SoftwareSystemFeatures '%CWM:SubsystemFeatures; |
   CWM:SoftwareSystem.type |
   CWM:SoftwareSystem.subtype |
   CWM:SoftwareSystem.supplier |
   CWM:SoftwareSystem.version |
   CWM:SoftwareSystem.typespace'>
<!ENTITY % CWM:SoftwareSystemAtts '%CWM:SubsystemAtts;
   type CDATA #IMPLIED
   subtype CDATA #IMPLIED
   supplier CDATA #IMPLIED
   version CDATA #IMPLIED
   typespace IDREFS #IMPLIED'>
<!ELEMENT CWM:SoftwareSystem (%CWM:SoftwareSystemFeatures;)*>
<!ATTLIST CWM:SoftwareSystem %CWM:SoftwareSystemAtts;>

<!-- ========= CWM:DeployedComponent ========= -->
<!ELEMENT CWM:DeployedComponent.pathname (#PCDATA|XMI.reference)*>
<!ELEMENT CWM:DeployedComponent.component (CWM:Component)*>
<!ELEMENT CWM:DeployedComponent.machine (CWM:Machine)*>
<!ENTITY % CWM:DeployedComponentFeatures '%CWM:PackageFeatures; |
   CWM:DeployedComponent.pathname |
   CWM:DeployedComponent.component |
   CWM:DeployedComponent.machine'>
<!ENTITY % CWM:DeployedComponentAtts '%CWM:PackageAtts;
   pathname CDATA #IMPLIED
   component IDREFS #IMPLIED
   machine IDREFS #IMPLIED'>
<!ELEMENT CWM:DeployedComponent (%CWM:DeployedComponentFeatures;)*>
<!ATTLIST CWM:DeployedComponent %CWM:DeployedComponentAtts;>

<!-- ========= CWM:DeployedSoftwareSystem ========= -->
<!ELEMENT CWM:DeployedSoftwareSystem.softwareSystem (CWM:SoftwareSystem)*>
<!ENTITY % CWM:DeployedSoftwareSystemFeatures '%CWM:PackageFeatures; |
   CWM:DeployedSoftwareSystem.softwareSystem'>
<!ENTITY % CWM:DeployedSoftwareSystemAtts '%CWM:PackageAtts;
   softwareSystem IDREFS #IMPLIED'>
<!ELEMENT CWM:DeployedSoftwareSystem (%CWM:DeployedSoftwareSystemFeatures;)*>
<!ATTLIST CWM:DeployedSoftwareSystem %CWM:DeployedSoftwareSystemAtts;>

<!-- ========= CWM:DataManager ========= -->
<!ELEMENT CWM:DataManager.isCaseSensitive EMPTY>
<!ATTLIST CWM:DataManager.isCaseSensitive xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:DataManager.dataPackage (CWM:Package)*>
<!ENTITY % CWM:DataManagerFeatures '%CWM:DeployedComponentFeatures; |
   CWM:DataManager.isCaseSensitive |
   CWM:DataManager.dataPackage'>
<!ENTITY % CWM:DataManagerAtts '%CWM:DeployedComponentAtts;
   isCaseSensitive (true|false) #IMPLIED
   dataPackage IDREFS #IMPLIED'>
<!ELEMENT CWM:DataManager (%CWM:DataManagerFeatures;)*>
<!ATTLIST CWM:DataManager %CWM:DataManagerAtts;>

<!-- ========= CWM:DataProvider ========= -->
<!ELEMENT CWM:DataProvider.resourceConnection (CWM:ProviderConnection)*>
<!ENTITY % CWM:DataProviderFeatures '%CWM:DataManagerFeatures; |
   CWM:DataProvider.resourceConnection'>
<!ENTITY % CWM:DataProviderAtts '%CWM:DataManagerAtts;'>
<!ELEMENT CWM:DataProvider (%CWM:DataProviderFeatures;)*>
<!ATTLIST CWM:DataProvider %CWM:DataProviderAtts;>

<!-- ========= CWM:ProviderConnection ========= -->
<!ELEMENT CWM:ProviderConnection.isReadOnly EMPTY>
<!ATTLIST CWM:ProviderConnection.isReadOnly xmi.value (true|false) #REQUIRED>
<!ELEMENT CWM:ProviderConnection.dataProvider (CWM:DataProvider)*>
<!ELEMENT CWM:ProviderConnection.dataManager (CWM:DataManager)*>
<!ENTITY % CWM:ProviderConnectionFeatures '%CWM:ModelElementFeatures; |
   CWM:ProviderConnection.isReadOnly |
   CWM:ProviderConnection.dataProvider |
   CWM:ProviderConnection.dataManager'>
<!ENTITY % CWM:ProviderConnectionAtts '%CWM:ModelElementAtts;
   isReadOnly (true|false) #IMPLIED
   dataProvider IDREFS #IMPLIED
   dataManager IDREFS #IMPLIED'>
<!ELEMENT CWM:ProviderConnection (%CWM:ProviderConnectionFeatures;)*>
<!ATTLIST CWM:ProviderConnection %CWM:ProviderConnectionAtts;>

<!-- ========= CWM:Component ========= -->
<!ENTITY % CWM:ComponentFeatures '%CWM:ClassifierFeatures;'>
<!ENTITY % CWM:ComponentAtts '%CWM:ClassifierAtts;'>
<!ELEMENT CWM:Component (%CWM:ComponentFeatures;)*>
<!ATTLIST CWM:Component %CWM:ComponentAtts;>

<!-- ========= CWM:PackageUsage ========= -->
<!ELEMENT CWM:PackageUsage.packageAlias (#PCDATA|XMI.reference)*>
<!ENTITY % CWM:PackageUsageFeatures '%CWM:DependencyFeatures; |
   CWM:PackageUsage.packageAlias'>
<!ENTITY % CWM:PackageUsageAtts '%CWM:DependencyAtts;
   packageAlias CDATA #IMPLIED'>
<!ELEMENT CWM:PackageUsage (%CWM:PackageUsageFeatures;)*>
<!ATTLIST CWM:PackageUsage %CWM:PackageUsageAtts;>

<!-- ========= CWM:DeployedSoftwareSystemComponents ========= -->
<!ELEMENT CWM:DeployedSoftwareSystemComponents.deployedSoftwareSystem (CWM:DeployedSoftwareSystem)?>
<!ELEMENT CWM:DeployedSoftwareSystemComponents.deployedComponent (CWM:DeployedComponent)?>
<!ELEMENT CWM:DeployedSoftwareSystemComponents (
   CWM:DeployedSoftwareSystemComponents.deployedSoftwareSystem |
   CWM:DeployedSoftwareSystemComponents.deployedComponent)*>
<!ATTLIST CWM:DeployedSoftwareSystemComponents %XMI.element.att; %XMI.link.att;
   deployedSoftwareSystem IDREFS #IMPLIED
   deployedComponent IDREFS #IMPLIED>

<!-- ========= CWMRDB:Relational ========= -->
<!ENTITY % CWMRDB:ActionOrientationType '(row|statement)'>
<!ENTITY % CWMRDB:ConditionTimingType '(before|after)'>
<!ENTITY % CWMRDB:DeferrabilityType '(initiallyDeferred|initiallyImmediate|
   notDeferrable)'>
<!ENTITY % CWMRDB:EventManipulationType '(insert|delete|update)'>
<!ENTITY % CWMRDB:NullableType '(columnNoNulls|columnNullable|
   columnNullableUnknown)'>
<!ENTITY % CWMRDB:ProcedureType '(procedure|function)'>
<!ENTITY % CWMRDB:ReferentialRuleType '(importedKeyNoAction|
   importedKeyCascade|importedKeySetNull|importedKeyRestrict|
   importedKeySetDefault)'>

<!-- ========= CWMRDB:Enumerations ========= -->

<!-- ========= CWMRDB:Catalog ========= -->
<!ELEMENT CWMRDB:Catalog.defaultCharacterSetName (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:Catalog.defaultCollationName (#PCDATA|XMI.reference)*>
<!ENTITY % CWMRDB:CatalogFeatures '%CWM:PackageFeatures; |
   CWMRDB:Catalog.defaultCharacterSetName |
   CWMRDB:Catalog.defaultCollationName'>
<!ENTITY % CWMRDB:CatalogAtts '%CWM:PackageAtts;
   defaultCharacterSetName CDATA #IMPLIED
   defaultCollationName CDATA #IMPLIED'>
<!ELEMENT CWMRDB:Catalog (%CWMRDB:CatalogFeatures;)*>
<!ATTLIST CWMRDB:Catalog %CWMRDB:CatalogAtts;>

<!-- ========= CWMRDB:Schema ========= -->
<!ENTITY % CWMRDB:SchemaFeatures '%CWM:PackageFeatures;'>
<!ENTITY % CWMRDB:SchemaAtts '%CWM:PackageAtts;'>
<!ELEMENT CWMRDB:Schema (%CWMRDB:SchemaFeatures;)*>
<!ATTLIST CWMRDB:Schema %CWMRDB:SchemaAtts;>

<!-- ========= CWMRDB:ColumnSet ========= -->
<!ENTITY % CWMRDB:ColumnSetFeatures '%CWM:ClassFeatures;'>
<!ENTITY % CWMRDB:ColumnSetAtts '%CWM:ClassAtts;'>
<!ELEMENT CWMRDB:ColumnSet (%CWMRDB:ColumnSetFeatures;)*>
<!ATTLIST CWMRDB:ColumnSet %CWMRDB:ColumnSetAtts;>

<!-- ========= CWMRDB:NamedColumnSet ========= -->
<!ELEMENT CWMRDB:NamedColumnSet.optionScopeColumn (CWMRDB:Column)*>
<!ELEMENT CWMRDB:NamedColumnSet.type (CWMRDB:SQLStructuredType)*>
<!ELEMENT CWMRDB:NamedColumnSet.usingTrigger (CWMRDB:Trigger)*>
<!ENTITY % CWMRDB:NamedColumnSetFeatures '%CWMRDB:ColumnSetFeatures; |
   CWMRDB:NamedColumnSet.optionScopeColumn |
   CWMRDB:NamedColumnSet.type |
   CWMRDB:NamedColumnSet.usingTrigger'>
<!ENTITY % CWMRDB:NamedColumnSetAtts '%CWMRDB:ColumnSetAtts;
   optionScopeColumn IDREFS #IMPLIED
   type IDREFS #IMPLIED
   usingTrigger IDREFS #IMPLIED'>
<!ELEMENT CWMRDB:NamedColumnSet (%CWMRDB:NamedColumnSetFeatures;)*>
<!ATTLIST CWMRDB:NamedColumnSet %CWMRDB:NamedColumnSetAtts;>

<!-- ========= CWMRDB:Table ========= -->
<!ELEMENT CWMRDB:Table.isTemporary EMPTY>
<!ATTLIST CWMRDB:Table.isTemporary xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMRDB:Table.temporaryScope (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:Table.trigger (CWMRDB:Trigger)*>
<!ELEMENT CWMRDB:Table.isSystem EMPTY>
<!ATTLIST CWMRDB:Table.isSystem xmi.value (true|false) #REQUIRED>
<!ENTITY % CWMRDB:TableFeatures '%CWMRDB:NamedColumnSetFeatures; |
   CWMRDB:Table.isTemporary |
   CWMRDB:Table.temporaryScope |
   CWMRDB:Table.trigger |
   CWMRDB:Table.isSystem'>
<!ENTITY % CWMRDB:TableAtts '%CWMRDB:NamedColumnSetAtts;
   isTemporary (true|false) #IMPLIED
   temporaryScope CDATA #IMPLIED
   trigger IDREFS #IMPLIED
   isSystem (true|false) #IMPLIED'>
<!ELEMENT CWMRDB:Table (%CWMRDB:TableFeatures;)*>
<!ATTLIST CWMRDB:Table %CWMRDB:TableAtts;>

<!-- ========= CWMRDB:View ========= -->
<!ELEMENT CWMRDB:View.isReadOnly EMPTY>
<!ATTLIST CWMRDB:View.isReadOnly xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMRDB:View.checkOption EMPTY>
<!ATTLIST CWMRDB:View.checkOption xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMRDB:View.queryExpression (CWM:QueryExpression)*>
<!ENTITY % CWMRDB:ViewFeatures '%CWMRDB:NamedColumnSetFeatures; |
   CWMRDB:View.isReadOnly |
   CWMRDB:View.checkOption |
   CWMRDB:View.queryExpression'>
<!ENTITY % CWMRDB:ViewAtts '%CWMRDB:NamedColumnSetAtts;
   isReadOnly (true|false) #IMPLIED
   checkOption (true|false) #IMPLIED'>
<!ELEMENT CWMRDB:View (%CWMRDB:ViewFeatures;)*>
<!ATTLIST CWMRDB:View %CWMRDB:ViewAtts;>

<!-- ========= CWMRDB:QueryColumnSet ========= -->
<!ELEMENT CWMRDB:QueryColumnSet.query (CWM:QueryExpression)*>
<!ENTITY % CWMRDB:QueryColumnSetFeatures '%CWMRDB:ColumnSetFeatures; |
   CWMRDB:QueryColumnSet.query'>
<!ENTITY % CWMRDB:QueryColumnSetAtts '%CWMRDB:ColumnSetAtts;'>
<!ELEMENT CWMRDB:QueryColumnSet (%CWMRDB:QueryColumnSetFeatures;)*>
<!ATTLIST CWMRDB:QueryColumnSet %CWMRDB:QueryColumnSetAtts;>

<!-- ========= CWMRDB:SQLDataType ========= -->
<!ELEMENT CWMRDB:SQLDataType.typeNumber (#PCDATA|XMI.reference)*>
<!ENTITY % CWMRDB:SQLDataTypeFeatures '%CWM:ClassifierFeatures; |
   CWMRDB:SQLDataType.typeNumber'>
<!ENTITY % CWMRDB:SQLDataTypeAtts '%CWM:ClassifierAtts;
   typeNumber CDATA #IMPLIED'>
<!ELEMENT CWMRDB:SQLDataType (%CWMRDB:SQLDataTypeFeatures;)*>
<!ATTLIST CWMRDB:SQLDataType %CWMRDB:SQLDataTypeAtts;>

<!-- ========= CWMRDB:SQLDistinctType ========= -->
<!ELEMENT CWMRDB:SQLDistinctType.length (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:SQLDistinctType.precision (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:SQLDistinctType.scale (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:SQLDistinctType.sqlSimpleType (CWMRDB:SQLSimpleType)*>
<!ENTITY % CWMRDB:SQLDistinctTypeFeatures '%CWMRDB:SQLDataTypeFeatures; |
   CWM:TypeAlias.type |
   CWMRDB:SQLDistinctType.length |
   CWMRDB:SQLDistinctType.precision |
   CWMRDB:SQLDistinctType.scale |
   CWMRDB:SQLDistinctType.sqlSimpleType'>
<!ENTITY % CWMRDB:SQLDistinctTypeAtts '%CWMRDB:SQLDataTypeAtts;
   type IDREFS #IMPLIED
   length CDATA #IMPLIED
   precision CDATA #IMPLIED
   scale CDATA #IMPLIED
   sqlSimpleType IDREFS #IMPLIED'>
<!ELEMENT CWMRDB:SQLDistinctType (%CWMRDB:SQLDistinctTypeFeatures;)*>
<!ATTLIST CWMRDB:SQLDistinctType %CWMRDB:SQLDistinctTypeAtts;>

<!-- ========= CWMRDB:SQLSimpleType ========= -->
<!ELEMENT CWMRDB:SQLSimpleType.characterMaximumLength (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:SQLSimpleType.characterOctetLength (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:SQLSimpleType.numericPrecision (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:SQLSimpleType.numericPrecisionRadix (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:SQLSimpleType.numericScale (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:SQLSimpleType.dateTimePrecision (#PCDATA|XMI.reference)*>
<!ENTITY % CWMRDB:SQLSimpleTypeFeatures '%CWMRDB:SQLDataTypeFeatures; |
   CWMRDB:SQLSimpleType.characterMaximumLength |
   CWMRDB:SQLSimpleType.characterOctetLength |
   CWMRDB:SQLSimpleType.numericPrecision |
   CWMRDB:SQLSimpleType.numericPrecisionRadix |
   CWMRDB:SQLSimpleType.numericScale |
   CWMRDB:SQLSimpleType.dateTimePrecision'>
<!ENTITY % CWMRDB:SQLSimpleTypeAtts '%CWMRDB:SQLDataTypeAtts;
   characterMaximumLength CDATA #IMPLIED
   characterOctetLength CDATA #IMPLIED
   numericPrecision CDATA #IMPLIED
   numericPrecisionRadix CDATA #IMPLIED
   numericScale CDATA #IMPLIED
   dateTimePrecision CDATA #IMPLIED'>
<!ELEMENT CWMRDB:SQLSimpleType (%CWMRDB:SQLSimpleTypeFeatures;)*>
<!ATTLIST CWMRDB:SQLSimpleType %CWMRDB:SQLSimpleTypeAtts;>

<!-- ========= CWMRDB:SQLStructuredType ========= -->
<!ELEMENT CWMRDB:SQLStructuredType.referencingColumn (CWMRDB:Column)*>
<!ELEMENT CWMRDB:SQLStructuredType.columnSet (CWMRDB:NamedColumnSet)*>
<!ENTITY % CWMRDB:SQLStructuredTypeFeatures '%CWMRDB:SQLDataTypeFeatures; |
   CWMRDB:SQLStructuredType.referencingColumn |
   CWMRDB:SQLStructuredType.columnSet'>
<!ENTITY % CWMRDB:SQLStructuredTypeAtts '%CWMRDB:SQLDataTypeAtts;
   referencingColumn IDREFS #IMPLIED
   columnSet IDREFS #IMPLIED'>
<!ELEMENT CWMRDB:SQLStructuredType (%CWMRDB:SQLStructuredTypeFeatures;)*>
<!ATTLIST CWMRDB:SQLStructuredType %CWMRDB:SQLStructuredTypeAtts;>

<!-- ========= CWMRDB:Column ========= -->
<!ELEMENT CWMRDB:Column.precision (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:Column.scale (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:Column.isNullable EMPTY>
<!ATTLIST CWMRDB:Column.isNullable xmi.value %CWMRDB:NullableType; #REQUIRED>
<!ELEMENT CWMRDB:Column.length (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:Column.collationName (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:Column.characterSetName (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:Column.optionScopeColumnSet (CWMRDB:NamedColumnSet)*>
<!ELEMENT CWMRDB:Column.referencedTableType (CWMRDB:SQLStructuredType)*>
<!ENTITY % CWMRDB:ColumnFeatures '%CWM:AttributeFeatures; |
   CWMRDB:Column.precision |
   CWMRDB:Column.scale |
   CWMRDB:Column.isNullable |
   CWMRDB:Column.length |
   CWMRDB:Column.collationName |
   CWMRDB:Column.characterSetName |
   CWMRDB:Column.optionScopeColumnSet |
   CWMRDB:Column.referencedTableType'>
<!ENTITY % CWMRDB:ColumnAtts '%CWM:AttributeAtts;
   precision CDATA #IMPLIED
   scale CDATA #IMPLIED
   isNullable %CWMRDB:NullableType; #IMPLIED
   length CDATA #IMPLIED
   collationName CDATA #IMPLIED
   characterSetName CDATA #IMPLIED
   optionScopeColumnSet IDREFS #IMPLIED
   referencedTableType IDREFS #IMPLIED'>
<!ELEMENT CWMRDB:Column (%CWMRDB:ColumnFeatures;)*>
<!ATTLIST CWMRDB:Column %CWMRDB:ColumnAtts;>

<!-- ========= CWMRDB:Procedure ========= -->
<!ELEMENT CWMRDB:Procedure.type EMPTY>
<!ATTLIST CWMRDB:Procedure.type xmi.value %CWMRDB:ProcedureType; #REQUIRED>
<!ENTITY % CWMRDB:ProcedureFeatures '%CWM:MethodFeatures; |
   CWMRDB:Procedure.type'>
<!ENTITY % CWMRDB:ProcedureAtts '%CWM:MethodAtts;
   type %CWMRDB:ProcedureType; #IMPLIED'>
<!ELEMENT CWMRDB:Procedure (%CWMRDB:ProcedureFeatures;)*>
<!ATTLIST CWMRDB:Procedure %CWMRDB:ProcedureAtts;>

<!-- ========= CWMRDB:Trigger ========= -->
<!ELEMENT CWMRDB:Trigger.eventManipulation EMPTY>
<!ATTLIST CWMRDB:Trigger.eventManipulation xmi.value %CWMRDB:EventManipulationType; #REQUIRED>
<!ELEMENT CWMRDB:Trigger.actionCondition (CWM:BooleanExpression)*>
<!ELEMENT CWMRDB:Trigger.actionStatement (CWM:ProcedureExpression|
   CWM:QueryExpression)*>
<!ELEMENT CWMRDB:Trigger.actionOrientation EMPTY>
<!ATTLIST CWMRDB:Trigger.actionOrientation xmi.value %CWMRDB:ActionOrientationType; #REQUIRED>
<!ELEMENT CWMRDB:Trigger.conditionTiming EMPTY>
<!ATTLIST CWMRDB:Trigger.conditionTiming xmi.value %CWMRDB:ConditionTimingType; #REQUIRED>
<!ELEMENT CWMRDB:Trigger.conditionReferenceNewTable (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:Trigger.conditionReferenceOldTable (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:Trigger.table (CWMRDB:Table)*>
<!ELEMENT CWMRDB:Trigger.usedColumnSet (CWMRDB:NamedColumnSet)*>
<!ENTITY % CWMRDB:TriggerFeatures '%CWM:ModelElementFeatures; |
   CWMRDB:Trigger.eventManipulation |
   CWMRDB:Trigger.actionCondition |
   CWMRDB:Trigger.actionStatement |
   CWMRDB:Trigger.actionOrientation |
   CWMRDB:Trigger.conditionTiming |
   CWMRDB:Trigger.conditionReferenceNewTable |
   CWMRDB:Trigger.conditionReferenceOldTable |
   CWMRDB:Trigger.table |
   CWMRDB:Trigger.usedColumnSet'>
<!ENTITY % CWMRDB:TriggerAtts '%CWM:ModelElementAtts;
   eventManipulation %CWMRDB:EventManipulationType; #IMPLIED
   actionOrientation %CWMRDB:ActionOrientationType; #IMPLIED
   conditionTiming %CWMRDB:ConditionTimingType; #IMPLIED
   conditionReferenceNewTable CDATA #IMPLIED
   conditionReferenceOldTable CDATA #IMPLIED
   table IDREFS #IMPLIED
   usedColumnSet IDREFS #IMPLIED'>
<!ELEMENT CWMRDB:Trigger (%CWMRDB:TriggerFeatures;)*>
<!ATTLIST CWMRDB:Trigger %CWMRDB:TriggerAtts;>

<!-- ========= CWMRDB:SQLIndex ========= -->
<!ELEMENT CWMRDB:SQLIndex.filterCondition (#PCDATA|XMI.reference)*>
<!ELEMENT CWMRDB:SQLIndex.isNullable EMPTY>
<!ATTLIST CWMRDB:SQLIndex.isNullable xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMRDB:SQLIndex.autoUpdate EMPTY>
<!ATTLIST CWMRDB:SQLIndex.autoUpdate xmi.value (true|false) #REQUIRED>
<!ENTITY % CWMRDB:SQLIndexFeatures '%CWM:IndexFeatures; |
   CWMRDB:SQLIndex.filterCondition |
   CWMRDB:SQLIndex.isNullable |
   CWMRDB:SQLIndex.autoUpdate'>
<!ENTITY % CWMRDB:SQLIndexAtts '%CWM:IndexAtts;
   filterCondition CDATA #IMPLIED
   isNullable (true|false) #IMPLIED
   autoUpdate (true|false) #IMPLIED'>
<!ELEMENT CWMRDB:SQLIndex (%CWMRDB:SQLIndexFeatures;)*>
<!ATTLIST CWMRDB:SQLIndex %CWMRDB:SQLIndexAtts;>

<!-- ========= CWMRDB:UniqueConstraint ========= -->
<!ELEMENT CWMRDB:UniqueConstraint.deferrability EMPTY>
<!ATTLIST CWMRDB:UniqueConstraint.deferrability xmi.value %CWMRDB:DeferrabilityType; #REQUIRED>
<!ENTITY % CWMRDB:UniqueConstraintFeatures '%CWM:UniqueKeyFeatures; |
   CWMRDB:UniqueConstraint.deferrability'>
<!ENTITY % CWMRDB:UniqueConstraintAtts '%CWM:UniqueKeyAtts;
   deferrability %CWMRDB:DeferrabilityType; #IMPLIED'>
<!ELEMENT CWMRDB:UniqueConstraint (%CWMRDB:UniqueConstraintFeatures;)*>
<!ATTLIST CWMRDB:UniqueConstraint %CWMRDB:UniqueConstraintAtts;>

<!-- ========= CWMRDB:ForeignKey ========= -->
<!ELEMENT CWMRDB:ForeignKey.deleteRule EMPTY>
<!ATTLIST CWMRDB:ForeignKey.deleteRule xmi.value %CWMRDB:ReferentialRuleType; #REQUIRED>
<!ELEMENT CWMRDB:ForeignKey.updateRule EMPTY>
<!ATTLIST CWMRDB:ForeignKey.updateRule xmi.value %CWMRDB:ReferentialRuleType; #REQUIRED>
<!ELEMENT CWMRDB:ForeignKey.deferrability EMPTY>
<!ATTLIST CWMRDB:ForeignKey.deferrability xmi.value %CWMRDB:DeferrabilityType; #REQUIRED>
<!ENTITY % CWMRDB:ForeignKeyFeatures '%CWM:KeyRelationshipFeatures; |
   CWMRDB:ForeignKey.deleteRule |
   CWMRDB:ForeignKey.updateRule |
   CWMRDB:ForeignKey.deferrability'>
<!ENTITY % CWMRDB:ForeignKeyAtts '%CWM:KeyRelationshipAtts;
   deleteRule %CWMRDB:ReferentialRuleType; #IMPLIED
   updateRule %CWMRDB:ReferentialRuleType; #IMPLIED
   deferrability %CWMRDB:DeferrabilityType; #IMPLIED'>
<!ELEMENT CWMRDB:ForeignKey (%CWMRDB:ForeignKeyFeatures;)*>
<!ATTLIST CWMRDB:ForeignKey %CWMRDB:ForeignKeyAtts;>

<!-- ========= CWMRDB:SQLIndexColumn ========= -->
<!ENTITY % CWMRDB:SQLIndexColumnFeatures '%CWM:IndexedFeatureFeatures;'>
<!ENTITY % CWMRDB:SQLIndexColumnAtts '%CWM:IndexedFeatureAtts;'>
<!ELEMENT CWMRDB:SQLIndexColumn (%CWMRDB:SQLIndexColumnFeatures;)*>
<!ATTLIST CWMRDB:SQLIndexColumn %CWMRDB:SQLIndexColumnAtts;>

<!-- ========= CWMRDB:PrimaryKey ========= -->
<!ENTITY % CWMRDB:PrimaryKeyFeatures '%CWMRDB:UniqueConstraintFeatures;'>
<!ENTITY % CWMRDB:PrimaryKeyAtts '%CWMRDB:UniqueConstraintAtts;'>
<!ELEMENT CWMRDB:PrimaryKey (%CWMRDB:PrimaryKeyFeatures;)*>
<!ATTLIST CWMRDB:PrimaryKey %CWMRDB:PrimaryKeyAtts;>

<!-- ========= CWMRDB:Row ========= -->
<!ENTITY % CWMRDB:RowFeatures '%CWM:ObjectFeatures;'>
<!ENTITY % CWMRDB:RowAtts '%CWM:ObjectAtts;'>
<!ELEMENT CWMRDB:Row (%CWMRDB:RowFeatures;)*>
<!ATTLIST CWMRDB:Row %CWMRDB:RowAtts;>

<!-- ========= CWMRDB:ColumnValue ========= -->
<!ENTITY % CWMRDB:ColumnValueFeatures '%CWM:DataValueFeatures;'>
<!ENTITY % CWMRDB:ColumnValueAtts '%CWM:DataValueAtts;'>
<!ELEMENT CWMRDB:ColumnValue (%CWMRDB:ColumnValueFeatures;)*>
<!ATTLIST CWMRDB:ColumnValue %CWMRDB:ColumnValueAtts;>

<!-- ========= CWMRDB:CheckConstraint ========= -->
<!ELEMENT CWMRDB:CheckConstraint.deferrability EMPTY>
<!ATTLIST CWMRDB:CheckConstraint.deferrability xmi.value %CWMRDB:DeferrabilityType; #REQUIRED>
<!ENTITY % CWMRDB:CheckConstraintFeatures '%CWM:ConstraintFeatures; |
   CWMRDB:CheckConstraint.deferrability'>
<!ENTITY % CWMRDB:CheckConstraintAtts '%CWM:ConstraintAtts;
   deferrability %CWMRDB:DeferrabilityType; #IMPLIED'>
<!ELEMENT CWMRDB:CheckConstraint (%CWMRDB:CheckConstraintFeatures;)*>
<!ATTLIST CWMRDB:CheckConstraint %CWMRDB:CheckConstraintAtts;>

<!-- ========= CWMRDB:RowSet ========= -->
<!ENTITY % CWMRDB:RowSetFeatures '%CWM:ExtentFeatures;'>
<!ENTITY % CWMRDB:RowSetAtts '%CWM:ExtentAtts;'>
<!ELEMENT CWMRDB:RowSet (%CWMRDB:RowSetFeatures;)*>
<!ATTLIST CWMRDB:RowSet %CWMRDB:RowSetAtts;>

<!-- ========= CWMRDB:SQLParameter ========= -->
<!ENTITY % CWMRDB:SQLParameterFeatures '%CWM:ParameterFeatures;'>
<!ENTITY % CWMRDB:SQLParameterAtts '%CWM:ParameterAtts;'>
<!ELEMENT CWMRDB:SQLParameter (%CWMRDB:SQLParameterFeatures;)*>
<!ATTLIST CWMRDB:SQLParameter %CWMRDB:SQLParameterAtts;>

<!-- ========= CWMREC:Record ========= -->

<!-- ========= CWMREC:Field ========= -->
<!ELEMENT CWMREC:Field.length (#PCDATA|XMI.reference)*>
<!ELEMENT CWMREC:Field.precision (#PCDATA|XMI.reference)*>
<!ELEMENT CWMREC:Field.scale (#PCDATA|XMI.reference)*>
<!ENTITY % CWMREC:FieldFeatures '%CWM:AttributeFeatures; |
   CWMREC:Field.length |
   CWMREC:Field.precision |
   CWMREC:Field.scale'>
<!ENTITY % CWMREC:FieldAtts '%CWM:AttributeAtts;
   length CDATA #IMPLIED
   precision CDATA #IMPLIED
   scale CDATA #IMPLIED'>
<!ELEMENT CWMREC:Field (%CWMREC:FieldFeatures;)*>
<!ATTLIST CWMREC:Field %CWMREC:FieldAtts;>

<!-- ========= CWMREC:RecordDef ========= -->
<!ELEMENT CWMREC:RecordDef.fieldDelimiter (#PCDATA|XMI.reference)*>
<!ELEMENT CWMREC:RecordDef.isFixedWidth EMPTY>
<!ATTLIST CWMREC:RecordDef.isFixedWidth xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMREC:RecordDef.textDelimiter (#PCDATA|XMI.reference)*>
<!ELEMENT CWMREC:RecordDef.file (CWMREC:RecordFile)*>
<!ENTITY % CWMREC:RecordDefFeatures '%CWM:ClassFeatures; |
   CWMREC:RecordDef.fieldDelimiter |
   CWMREC:RecordDef.isFixedWidth |
   CWMREC:RecordDef.textDelimiter |
   CWMREC:RecordDef.file'>
<!ENTITY % CWMREC:RecordDefAtts '%CWM:ClassAtts;
   fieldDelimiter CDATA #IMPLIED
   isFixedWidth (true|false) #IMPLIED
   textDelimiter CDATA #IMPLIED
   file IDREFS #IMPLIED'>
<!ELEMENT CWMREC:RecordDef (%CWMREC:RecordDefFeatures;)*>
<!ATTLIST CWMREC:RecordDef %CWMREC:RecordDefAtts;>

<!-- ========= CWMREC:FixedOffsetField ========= -->
<!ELEMENT CWMREC:FixedOffsetField.offset (#PCDATA|XMI.reference)*>
<!ELEMENT CWMREC:FixedOffsetField.offsetUnitBits (#PCDATA|XMI.reference)*>
<!ENTITY % CWMREC:FixedOffsetFieldFeatures '%CWMREC:FieldFeatures; |
   CWMREC:FixedOffsetField.offset |
   CWMREC:FixedOffsetField.offsetUnitBits'>
<!ENTITY % CWMREC:FixedOffsetFieldAtts '%CWMREC:FieldAtts;
   offset CDATA #IMPLIED
   offsetUnitBits CDATA #IMPLIED'>
<!ELEMENT CWMREC:FixedOffsetField (%CWMREC:FixedOffsetFieldFeatures;)*>
<!ATTLIST CWMREC:FixedOffsetField %CWMREC:FixedOffsetFieldAtts;>

<!-- ========= CWMREC:RecordFile ========= -->
<!ELEMENT CWMREC:RecordFile.isSelfDescribing EMPTY>
<!ATTLIST CWMREC:RecordFile.isSelfDescribing xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMREC:RecordFile.recordDelimiter (#PCDATA|XMI.reference)*>
<!ELEMENT CWMREC:RecordFile.skipRecords (#PCDATA|XMI.reference)*>
<!ELEMENT CWMREC:RecordFile.record (CWMREC:RecordDef)*>
<!ENTITY % CWMREC:RecordFileFeatures '%CWM:PackageFeatures; |
   CWMREC:RecordFile.isSelfDescribing |
   CWMREC:RecordFile.recordDelimiter |
   CWMREC:RecordFile.skipRecords |
   CWMREC:RecordFile.record'>
<!ENTITY % CWMREC:RecordFileAtts '%CWM:PackageAtts;
   isSelfDescribing (true|false) #IMPLIED
   recordDelimiter CDATA #IMPLIED
   skipRecords CDATA #IMPLIED
   record IDREFS #IMPLIED'>
<!ELEMENT CWMREC:RecordFile (%CWMREC:RecordFileFeatures;)*>
<!ATTLIST CWMREC:RecordFile %CWMREC:RecordFileAtts;>

<!-- ========= CWMREC:FieldValue ========= -->
<!ENTITY % CWMREC:FieldValueFeatures '%CWM:DataValueFeatures;'>
<!ENTITY % CWMREC:FieldValueAtts '%CWM:DataValueAtts;'>
<!ELEMENT CWMREC:FieldValue (%CWMREC:FieldValueFeatures;)*>
<!ATTLIST CWMREC:FieldValue %CWMREC:FieldValueAtts;>

<!-- ========= CWMREC:Record ========= -->
<!ENTITY % CWMREC:RecordFeatures '%CWM:ObjectFeatures;'>
<!ENTITY % CWMREC:RecordAtts '%CWM:ObjectAtts;'>
<!ELEMENT CWMREC:Record (%CWMREC:RecordFeatures;)*>
<!ATTLIST CWMREC:Record %CWMREC:RecordAtts;>

<!-- ========= CWMREC:RecordSet ========= -->
<!ENTITY % CWMREC:RecordSetFeatures '%CWM:ExtentFeatures;'>
<!ENTITY % CWMREC:RecordSetAtts '%CWM:ExtentAtts;'>
<!ELEMENT CWMREC:RecordSet (%CWMREC:RecordSetFeatures;)*>
<!ATTLIST CWMREC:RecordSet %CWMREC:RecordSetAtts;>

<!-- ========= CWMREC:Group ========= -->
<!ENTITY % CWMREC:GroupFeatures '%CWM:ClassifierFeatures;'>
<!ENTITY % CWMREC:GroupAtts '%CWM:ClassifierAtts;'>
<!ELEMENT CWMREC:Group (%CWMREC:GroupFeatures;)*>
<!ATTLIST CWMREC:Group %CWMREC:GroupAtts;>

<!-- ========= CWMMDB:Multidimensional ========= -->

<!-- ========= CWMMDB:Dimension ========= -->
<!ELEMENT CWMMDB:Dimension.dimensionedObject (CWMMDB:DimensionedObject)*>
<!ELEMENT CWMMDB:Dimension.component (CWMMDB:Dimension)*>
<!ELEMENT CWMMDB:Dimension.composite (CWMMDB:Dimension)*>
<!ELEMENT CWMMDB:Dimension.memberSet (CWMMDB:MemberSet)*>
<!ELEMENT CWMMDB:Dimension.schema (CWMMDB:Schema)*>
<!ENTITY % CWMMDB:DimensionFeatures '%CWM:ClassFeatures; |
   CWMMDB:Dimension.dimensionedObject |
   CWMMDB:Dimension.component |
   CWMMDB:Dimension.composite |
   CWMMDB:Dimension.memberSet |
   CWMMDB:Dimension.schema'>
<!ENTITY % CWMMDB:DimensionAtts '%CWM:ClassAtts;
   dimensionedObject IDREFS #IMPLIED
   component IDREFS #IMPLIED
   composite IDREFS #IMPLIED
   schema IDREFS #IMPLIED'>
<!ELEMENT CWMMDB:Dimension (%CWMMDB:DimensionFeatures;)*>
<!ATTLIST CWMMDB:Dimension %CWMMDB:DimensionAtts;>

<!-- ========= CWMMDB:DimensionedObject ========= -->
<!ELEMENT CWMMDB:DimensionedObject.dimension (CWMMDB:Dimension)*>
<!ELEMENT CWMMDB:DimensionedObject.schema (CWMMDB:Schema)*>
<!ENTITY % CWMMDB:DimensionedObjectFeatures '%CWM:AttributeFeatures; |
   CWMMDB:DimensionedObject.dimension |
   CWMMDB:DimensionedObject.schema'>
<!ENTITY % CWMMDB:DimensionedObjectAtts '%CWM:AttributeAtts;
   dimension IDREFS #IMPLIED
   schema IDREFS #IMPLIED'>
<!ELEMENT CWMMDB:DimensionedObject (%CWMMDB:DimensionedObjectFeatures;)*>
<!ATTLIST CWMMDB:DimensionedObject %CWMMDB:DimensionedObjectAtts;>

<!-- ========= CWMMDB:Member ========= -->
<!ENTITY % CWMMDB:MemberFeatures '%CWM:ObjectFeatures;'>
<!ENTITY % CWMMDB:MemberAtts '%CWM:ObjectAtts;'>
<!ELEMENT CWMMDB:Member (%CWMMDB:MemberFeatures;)*>
<!ATTLIST CWMMDB:Member %CWMMDB:MemberAtts;>

<!-- ========= CWMMDB:MemberSet ========= -->
<!ELEMENT CWMMDB:MemberSet.dimension (CWMMDB:Dimension)*>
<!ENTITY % CWMMDB:MemberSetFeatures '%CWM:ExtentFeatures; |
   CWMMDB:MemberSet.dimension'>
<!ENTITY % CWMMDB:MemberSetAtts '%CWM:ExtentAtts;
   dimension IDREFS #IMPLIED'>
<!ELEMENT CWMMDB:MemberSet (%CWMMDB:MemberSetFeatures;)*>
<!ATTLIST CWMMDB:MemberSet %CWMMDB:MemberSetAtts;>

<!-- ========= CWMMDB:MemberValue ========= -->
<!ENTITY % CWMMDB:MemberValueFeatures '%CWM:DataValueFeatures;'>
<!ENTITY % CWMMDB:MemberValueAtts '%CWM:DataValueAtts;'>
<!ELEMENT CWMMDB:MemberValue (%CWMMDB:MemberValueFeatures;)*>
<!ATTLIST CWMMDB:MemberValue %CWMMDB:MemberValueAtts;>

<!-- ========= CWMMDB:Schema ========= -->
<!ELEMENT CWMMDB:Schema.dimensionedObject (CWMMDB:DimensionedObject)*>
<!ELEMENT CWMMDB:Schema.dimension (CWMMDB:Dimension)*>
<!ENTITY % CWMMDB:SchemaFeatures '%CWM:PackageFeatures; |
   CWMMDB:Schema.dimensionedObject |
   CWMMDB:Schema.dimension'>
<!ENTITY % CWMMDB:SchemaAtts '%CWM:PackageAtts;'>
<!ELEMENT CWMMDB:Schema (%CWMMDB:SchemaFeatures;)*>
<!ATTLIST CWMMDB:Schema %CWMMDB:SchemaAtts;>

<!-- ========= CWMXML:XML ========= -->
<!ENTITY % CWMXML:AttributeDefault '(required|implied|default|fixed)'>
<!ENTITY % CWMXML:ContentType '(empty|any|mixed|element)'>
<!ENTITY % CWMXML:OccurrenceType '(one|zeroOrOne|zeroOrMore|oneOrMore)'>
<!ENTITY % CWMXML:ElementOrderType '(choice|sequence)'>

<!-- ========= CWMXML:Schema ========= -->
<!ELEMENT CWMXML:Schema.version (#PCDATA|XMI.reference)*>
<!ELEMENT CWMXML:Schema.xmlNamespace (#PCDATA|XMI.reference)*>
<!ELEMENT CWMXML:Schema.elementType (CWM:ModelElement|CWM:Namespace|
   CWM:Classifier|CWM:Class|CWM:Association|CWMRDB:ColumnSet|
   CWMRDB:NamedColumnSet|CWMRDB:Table|CWMRDB:View|CWMRDB:QueryColumnSet|
   CWMRDB:SQLStructuredType|CWMREC:RecordDef|CWMMDB:Dimension|
   CWMXML:ElementType|CWMOLAP:Cube|CWMOLAP:CubeDeployment|
   CWMOLAP:CubeDimensionAssociation|CWMOLAP:CubeRegion|CWMOLAP:Dimension|
   CWMOLAP:DimensionDeployment|CWMOLAP:Hierarchy|CWMOLAP:LevelBasedHierarchy|
   CWMOLAP:ValueBasedHierarchy|CWMOLAP:HierarchyLevelAssociation|
   CWMOLAP:MemberSelectionGroup|CWMOLAP:MemberSelection|CWMOLAP:Level|
   CWMOLAP:CodedLevel|CWMMIN:ApplicationInputSpecification|
   CWMMIN:CategoryHierarchy|CWMMIN:CostMatrix|CWMMIN:MiningDataSpecification|
   CWMMIN:MiningModel|CWMMIN:SupervisedMiningModel|CWMMIN:MiningModelResult|
   CWMMIN:MiningSettings|CWMMIN:ClusteringSettings|CWMMIN:StatisticsSettings|
   CWMMIN:SupervisedMiningSettings|CWMMIN:ClassificationSettings|
   CWMMIN:RegressionSettings|CWMMIN:AssociationRulesSettings|CWM:DataType|
   CWM:Enumeration|CWM:TypeAlias|CWMRDB:SQLDistinctType|CWMRDB:SQLSimpleType|
   CWM:Subsystem|CWM:SoftwareSystem|CWMTFM:TransformationActivity|
   CWM:Interface|CWM:Union|CWM:Component|CWMTFM:TransformationTask|
   CWMRDB:SQLDataType|CWMREC:Group|CWMIV:RenderedObject|CWM:Package|CWM:Model|
   CWM:Extent|CWMRDB:RowSet|CWMREC:RecordSet|CWMMDB:MemberSet|CWMXML:Document|
   CWM:DeployedComponent|CWM:DataManager|CWM:DataProvider|
   CWM:DeployedSoftwareSystem|CWM:TypeSystem|CWMRDB:Catalog|CWMRDB:Schema|
   CWMREC:RecordFile|CWMMDB:Schema|CWMXML:Schema|CWMOLAP:DeploymentGroup|
   CWMOLAP:Schema|CWMIV:RenderedObjectSet|CWMBUS:Nomenclature|CWMBUS:Taxonomy|
   CWMBUS:Glossary|CWMBUS:BusinessDomain|CWMWHP:CustomCalendar|
   CWMWHP:ProcessPackage|CWM:ResponsibleParty|CWM:Description|CWM:Document|
   CWM:Machine|CWMTFM:Transformation|CWMTFM:TransformationMap|
   CWMOLAP:ContentMap|CWMOLAP:StructureMap|CWMTFM:TransformationTree|
   CWMTFM:ClassifierMap|CWM:Feature|CWM:StructuralFeature|CWM:Attribute|
   CWM:UnionMember|CWMRDB:Column|CWMREC:Field|CWMREC:FixedOffsetField|
   CWMMDB:DimensionedObject|CWMXML:Attribute|CWMXML:ElementTypeReference|
   CWMXML:Text|CWMOLAP:Measure|CWMMIN:MiningAttribute|CWMMIN:NumericAttribute|
   CWMMIN:CategoricalAttribute|CWMMIN:OrdinalAttribute|
   CWMMIN:ApplicationAttribute|CWM:AssociationEnd|CWM:BehavioralFeature|
   CWM:Method|CWMRDB:Procedure|CWM:Operation|CWMIV:Rendering|
   CWMIV:XSLRendering|CWM:Constraint|CWMRDB:CheckConstraint|
   CWMTFM:PrecedenceConstraint|CWM:Dependency|CWM:PackageUsage|
   CWMTFM:TransformationUse|CWMTFM:StepPrecedence|CWM:Stereotype|CWM:Argument|
   CWM:CallAction|CWM:Event|CWMWHP:WarehouseEvent|CWMWHP:ScheduleEvent|
   CWMWHP:PointInTimeEvent|CWMWHP:CustomCalendarEvent|
   CWMWHP:RecurringPointInTimeEvent|CWMWHP:IntervalEvent|CWMWHP:ExternalEvent|
   CWMWHP:InternalEvent|CWMWHP:CascadeEvent|CWMWHP:RetryEvent|CWM:Parameter|
   CWMRDB:SQLParameter|CWM:Generalization|CWM:Instance|CWM:DataValue|
   CWMRDB:ColumnValue|CWMREC:FieldValue|CWMMDB:MemberValue|CWM:Object|
   CWMRDB:Row|CWMREC:Record|CWMMDB:Member|CWMXML:Element|CWM:Slot|
   CWM:Telephone|CWM:Email|CWM:Location|CWM:Site|CWM:Contact|
   CWM:ResourceLocator|CWM:EnumerationLiteral|CWM:UniqueKey|
   CWMRDB:UniqueConstraint|CWMRDB:PrimaryKey|CWM:Index|CWMRDB:SQLIndex|
   CWM:KeyRelationship|CWMRDB:ForeignKey|CWM:IndexedFeature|
   CWMRDB:SQLIndexColumn|CWM:ProviderConnection|CWM:TypeMapping|
   CWMRDB:Trigger|CWMXML:Content|CWMXML:ElementContent|CWMXML:MixedContent|
   CWMTFM:DataObjectSet|CWMTFM:TransformationStep|CWMTFM:FeatureMap|
   CWMTFM:ClassifierFeatureMap|CWMMIN:AttributeUsageRelation|CWMMIN:Category|
   CWMBUS:VocabularyElement|CWMBUS:Concept|CWMBUS:Term|CWMWHP:CalendarDate|
   CWMWHP:WarehouseProcess|CWMWHP:WarehouseStep|CWMWHP:WarehouseActivity|
   CWMWHO:Measurement|CWMWHO:ChangeRequest|CWMWHO:TransformationExecution|
   CWMWHO:ActivityExecution|CWMWHO:StepExecution)*>
<!ENTITY % CWMXML:SchemaFeatures '%CWM:PackageFeatures; |
   CWMXML:Schema.version |
   CWMXML:Schema.xmlNamespace |
   CWMXML:Schema.elementType'>
<!ENTITY % CWMXML:SchemaAtts '%CWM:PackageAtts;
   version CDATA #IMPLIED
   xmlNamespace CDATA #IMPLIED'>
<!ELEMENT CWMXML:Schema (%CWMXML:SchemaFeatures;)*>
<!ATTLIST CWMXML:Schema %CWMXML:SchemaAtts;>

<!-- ========= CWMXML:ElementType ========= -->
<!ELEMENT CWMXML:ElementType.schema (CWM:Namespace)*>
<!ELEMENT CWMXML:ElementType.attribute (CWM:Feature|CWM:StructuralFeature|
   CWM:Attribute|CWM:UnionMember|CWMRDB:Column|CWMREC:Field|
   CWMREC:FixedOffsetField|CWMMDB:DimensionedObject|CWMXML:Attribute|
   CWMXML:ElementTypeReference|CWMXML:Text|CWMOLAP:Measure|
   CWMMIN:MiningAttribute|CWMMIN:NumericAttribute|CWMMIN:CategoricalAttribute|
   CWMMIN:OrdinalAttribute|CWMMIN:ApplicationAttribute|CWM:AssociationEnd|
   CWM:BehavioralFeature|CWM:Method|CWMRDB:Procedure|CWM:Operation|
   CWMIV:Rendering|CWMIV:XSLRendering)*>
<!ELEMENT CWMXML:ElementType.content (CWMXML:Content)*>
<!ENTITY % CWMXML:ElementTypeFeatures '%CWM:ClassFeatures; |
   CWMXML:ElementType.schema |
   CWMXML:ElementType.attribute |
   CWMXML:ElementType.content'>
<!ENTITY % CWMXML:ElementTypeAtts '%CWM:ClassAtts;
   schema IDREFS #IMPLIED
   content IDREFS #IMPLIED'>
<!ELEMENT CWMXML:ElementType (%CWMXML:ElementTypeFeatures;)*>
<!ATTLIST CWMXML:ElementType %CWMXML:ElementTypeAtts;>

<!-- ========= CWMXML:Attribute ========= -->
<!ELEMENT CWMXML:Attribute.defaultKind EMPTY>
<!ATTLIST CWMXML:Attribute.defaultKind xmi.value %CWMXML:AttributeDefault; #REQUIRED>
<!ELEMENT CWMXML:Attribute.elementType (CWM:Classifier)*>
<!ENTITY % CWMXML:AttributeFeatures '%CWM:AttributeFeatures; |
   CWMXML:Attribute.defaultKind |
   CWMXML:Attribute.elementType'>
<!ENTITY % CWMXML:AttributeAtts '%CWM:AttributeAtts;
   defaultKind %CWMXML:AttributeDefault; #IMPLIED
   elementType IDREFS #IMPLIED'>
<!ELEMENT CWMXML:Attribute (%CWMXML:AttributeFeatures;)*>
<!ATTLIST CWMXML:Attribute %CWMXML:AttributeAtts;>

<!-- ========= CWMXML:Content ========= -->
<!ELEMENT CWMXML:Content.type EMPTY>
<!ATTLIST CWMXML:Content.type xmi.value %CWMXML:ContentType; #REQUIRED>
<!ELEMENT CWMXML:Content.occurrence EMPTY>
<!ATTLIST CWMXML:Content.occurrence xmi.value %CWMXML:OccurrenceType; #REQUIRED>
<!ELEMENT CWMXML:Content.elementType (CWMXML:ElementType)*>
<!ELEMENT CWMXML:Content.ownedElementType (CWMXML:ElementTypeReference)*>
<!ENTITY % CWMXML:ContentFeatures '%CWM:ModelElementFeatures; |
   CWMXML:Content.type |
   CWMXML:Content.occurrence |
   CWMXML:Content.elementType |
   CWMXML:Content.ownedElementType'>
<!ENTITY % CWMXML:ContentAtts '%CWM:ModelElementAtts;
   type %CWMXML:ContentType; #IMPLIED
   occurrence %CWMXML:OccurrenceType; #IMPLIED
   elementType IDREFS #IMPLIED
   ownedElementType IDREFS #IMPLIED'>
<!ELEMENT CWMXML:Content (%CWMXML:ContentFeatures;)*>
<!ATTLIST CWMXML:Content %CWMXML:ContentAtts;>

<!-- ========= CWMXML:ElementContent ========= -->
<!ELEMENT CWMXML:ElementContent.order EMPTY>
<!ATTLIST CWMXML:ElementContent.order xmi.value %CWMXML:ElementOrderType; #REQUIRED>
<!ELEMENT CWMXML:ElementContent.ownedContent (CWMXML:ElementContent)*>
<!ELEMENT CWMXML:ElementContent.ownerContent (CWMXML:ElementContent)*>
<!ENTITY % CWMXML:ElementContentFeatures '%CWMXML:ContentFeatures; |
   CWMXML:ElementContent.order |
   CWMXML:ElementContent.ownedContent |
   CWMXML:ElementContent.ownerContent'>
<!ENTITY % CWMXML:ElementContentAtts '%CWMXML:ContentAtts;
   order %CWMXML:ElementOrderType; #IMPLIED
   ownedContent IDREFS #IMPLIED
   ownerContent IDREFS #IMPLIED'>
<!ELEMENT CWMXML:ElementContent (%CWMXML:ElementContentFeatures;)*>
<!ATTLIST CWMXML:ElementContent %CWMXML:ElementContentAtts;>

<!-- ========= CWMXML:MixedContent ========= -->
<!ELEMENT CWMXML:MixedContent.text (CWMXML:Text)*>
<!ENTITY % CWMXML:MixedContentFeatures '%CWMXML:ContentFeatures; |
   CWMXML:MixedContent.text'>
<!ENTITY % CWMXML:MixedContentAtts '%CWMXML:ContentAtts;'>
<!ELEMENT CWMXML:MixedContent (%CWMXML:MixedContentFeatures;)*>
<!ATTLIST CWMXML:MixedContent %CWMXML:MixedContentAtts;>

<!-- ========= CWMXML:ElementTypeReference ========= -->
<!ELEMENT CWMXML:ElementTypeReference.occurrence EMPTY>
<!ATTLIST CWMXML:ElementTypeReference.occurrence xmi.value %CWMXML:OccurrenceType; #REQUIRED>
<!ELEMENT CWMXML:ElementTypeReference.ownerContent (CWMXML:Content)*>
<!ENTITY % CWMXML:ElementTypeReferenceFeatures '%CWM:AttributeFeatures; |
   CWMXML:ElementTypeReference.occurrence |
   CWMXML:ElementTypeReference.ownerContent'>
<!ENTITY % CWMXML:ElementTypeReferenceAtts '%CWM:AttributeAtts;
   occurrence %CWMXML:OccurrenceType; #IMPLIED
   ownerContent IDREFS #IMPLIED'>
<!ELEMENT CWMXML:ElementTypeReference (%CWMXML:ElementTypeReferenceFeatures;)*>
<!ATTLIST CWMXML:ElementTypeReference %CWMXML:ElementTypeReferenceAtts;>

<!-- ========= CWMXML:Text ========= -->
<!ELEMENT CWMXML:Text.ownerContent (CWMXML:MixedContent)*>
<!ENTITY % CWMXML:TextFeatures '%CWM:AttributeFeatures; |
   CWMXML:Text.ownerContent'>
<!ENTITY % CWMXML:TextAtts '%CWM:AttributeAtts;
   ownerContent IDREFS #IMPLIED'>
<!ELEMENT CWMXML:Text (%CWMXML:TextFeatures;)*>
<!ATTLIST CWMXML:Text %CWMXML:TextAtts;>

<!-- ========= CWMXML:Element ========= -->
<!ENTITY % CWMXML:ElementFeatures '%CWM:ObjectFeatures;'>
<!ENTITY % CWMXML:ElementAtts '%CWM:ObjectAtts;'>
<!ELEMENT CWMXML:Element (%CWMXML:ElementFeatures;)*>
<!ATTLIST CWMXML:Element %CWMXML:ElementAtts;>

<!-- ========= CWMXML:Document ========= -->
<!ENTITY % CWMXML:DocumentFeatures '%CWM:ExtentFeatures;'>
<!ENTITY % CWMXML:DocumentAtts '%CWM:ExtentAtts;'>
<!ELEMENT CWMXML:Document (%CWMXML:DocumentFeatures;)*>
<!ATTLIST CWMXML:Document %CWMXML:DocumentAtts;>

<!-- ========= CWMTFM:Transformation ========= -->
<!ENTITY % CWMTFM:TreeType '(unary|binary)'>

<!-- ========= CWMTFM:Transformation ========= -->
<!ELEMENT CWMTFM:Transformation.function (CWM:ProcedureExpression|
   CWM:QueryExpression)*>
<!ELEMENT CWMTFM:Transformation.functionDescription (#PCDATA|XMI.reference)*>
<!ELEMENT CWMTFM:Transformation.isPrimary EMPTY>
<!ATTLIST CWMTFM:Transformation.isPrimary xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMTFM:Transformation.source (CWMTFM:DataObjectSet)*>
<!ELEMENT CWMTFM:Transformation.target (CWMTFM:DataObjectSet)*>
<!ELEMENT CWMTFM:Transformation.use (CWM:Dependency)*>
<!ENTITY % CWMTFM:TransformationFeatures '%CWM:NamespaceFeatures; |
   CWMTFM:Transformation.function |
   CWMTFM:Transformation.functionDescription |
   CWMTFM:Transformation.isPrimary |
   CWMTFM:Transformation.source |
   CWMTFM:Transformation.target |
   CWMTFM:Transformation.use'>
<!ENTITY % CWMTFM:TransformationAtts '%CWM:NamespaceAtts;
   functionDescription CDATA #IMPLIED
   isPrimary (true|false) #IMPLIED
   source IDREFS #IMPLIED
   target IDREFS #IMPLIED
   use IDREFS #IMPLIED'>
<!ELEMENT CWMTFM:Transformation (%CWMTFM:TransformationFeatures;)*>
<!ATTLIST CWMTFM:Transformation %CWMTFM:TransformationAtts;>

<!-- ========= CWMTFM:DataObjectSet ========= -->
<!ELEMENT CWMTFM:DataObjectSet.element (CWM:ModelElement)*>
<!ELEMENT CWMTFM:DataObjectSet.sourceTransformation (CWMTFM:Transformation)*>
<!ELEMENT CWMTFM:DataObjectSet.targetTransformation (CWMTFM:Transformation)*>
<!ENTITY % CWMTFM:DataObjectSetFeatures '%CWM:ModelElementFeatures; |
   CWMTFM:DataObjectSet.element |
   CWMTFM:DataObjectSet.sourceTransformation |
   CWMTFM:DataObjectSet.targetTransformation'>
<!ENTITY % CWMTFM:DataObjectSetAtts '%CWM:ModelElementAtts;
   element IDREFS #IMPLIED
   sourceTransformation IDREFS #IMPLIED
   targetTransformation IDREFS #IMPLIED'>
<!ELEMENT CWMTFM:DataObjectSet (%CWMTFM:DataObjectSetFeatures;)*>
<!ATTLIST CWMTFM:DataObjectSet %CWMTFM:DataObjectSetAtts;>

<!-- ========= CWMTFM:TransformationTask ========= -->
<!ELEMENT CWMTFM:TransformationTask.transformation (CWMTFM:Transformation)*>
<!ELEMENT CWMTFM:TransformationTask.inverseTask (CWMTFM:TransformationTask)*>
<!ELEMENT CWMTFM:TransformationTask.originalTask (CWMTFM:TransformationTask)*>
<!ENTITY % CWMTFM:TransformationTaskFeatures '%CWM:ComponentFeatures; |
   CWMTFM:TransformationTask.transformation |
   CWMTFM:TransformationTask.inverseTask |
   CWMTFM:TransformationTask.originalTask'>
<!ENTITY % CWMTFM:TransformationTaskAtts '%CWM:ComponentAtts;
   transformation IDREFS #IMPLIED
   inverseTask IDREFS #IMPLIED
   originalTask IDREFS #IMPLIED'>
<!ELEMENT CWMTFM:TransformationTask (%CWMTFM:TransformationTaskFeatures;)*>
<!ATTLIST CWMTFM:TransformationTask %CWMTFM:TransformationTaskAtts;>

<!-- ========= CWMTFM:TransformationStep ========= -->
<!ELEMENT CWMTFM:TransformationStep.task (CWMTFM:TransformationTask)*>
<!ELEMENT CWMTFM:TransformationStep.activity (CWM:Namespace)*>
<!ELEMENT CWMTFM:TransformationStep.precedence (CWM:Constraint)*>
<!ELEMENT CWMTFM:TransformationStep.precedingStep (CWM:Dependency)*>
<!ELEMENT CWMTFM:TransformationStep.succeedingStep (CWM:Dependency)*>
<!ENTITY % CWMTFM:TransformationStepFeatures '%CWM:ModelElementFeatures; |
   CWMTFM:TransformationStep.task |
   CWMTFM:TransformationStep.activity |
   CWMTFM:TransformationStep.precedence |
   CWMTFM:TransformationStep.precedingStep |
   CWMTFM:TransformationStep.succeedingStep'>
<!ENTITY % CWMTFM:TransformationStepAtts '%CWM:ModelElementAtts;
   task IDREFS #IMPLIED
   activity IDREFS #IMPLIED
   precedence IDREFS #IMPLIED
   precedingStep IDREFS #IMPLIED
   succeedingStep IDREFS #IMPLIED'>
<!ELEMENT CWMTFM:TransformationStep (%CWMTFM:TransformationStepFeatures;)*>
<!ATTLIST CWMTFM:TransformationStep %CWMTFM:TransformationStepAtts;>

<!-- ========= CWMTFM:TransformationActivity ========= -->
<!ELEMENT CWMTFM:TransformationActivity.creationDate (#PCDATA|XMI.reference)*>
<!ELEMENT CWMTFM:TransformationActivity.step (CWM:ModelElement|CWM:Namespace|
   CWM:Classifier|CWM:Class|CWM:Association|CWMRDB:ColumnSet|
   CWMRDB:NamedColumnSet|CWMRDB:Table|CWMRDB:View|CWMRDB:QueryColumnSet|
   CWMRDB:SQLStructuredType|CWMREC:RecordDef|CWMMDB:Dimension|
   CWMXML:ElementType|CWMOLAP:Cube|CWMOLAP:CubeDeployment|
   CWMOLAP:CubeDimensionAssociation|CWMOLAP:CubeRegion|CWMOLAP:Dimension|
   CWMOLAP:DimensionDeployment|CWMOLAP:Hierarchy|CWMOLAP:LevelBasedHierarchy|
   CWMOLAP:ValueBasedHierarchy|CWMOLAP:HierarchyLevelAssociation|
   CWMOLAP:MemberSelectionGroup|CWMOLAP:MemberSelection|CWMOLAP:Level|
   CWMOLAP:CodedLevel|CWMMIN:ApplicationInputSpecification|
   CWMMIN:CategoryHierarchy|CWMMIN:CostMatrix|CWMMIN:MiningDataSpecification|
   CWMMIN:MiningModel|CWMMIN:SupervisedMiningModel|CWMMIN:MiningModelResult|
   CWMMIN:MiningSettings|CWMMIN:ClusteringSettings|CWMMIN:StatisticsSettings|
   CWMMIN:SupervisedMiningSettings|CWMMIN:ClassificationSettings|
   CWMMIN:RegressionSettings|CWMMIN:AssociationRulesSettings|CWM:DataType|
   CWM:Enumeration|CWM:TypeAlias|CWMRDB:SQLDistinctType|CWMRDB:SQLSimpleType|
   CWM:Subsystem|CWM:SoftwareSystem|CWMTFM:TransformationActivity|
   CWM:Interface|CWM:Union|CWM:Component|CWMTFM:TransformationTask|
   CWMRDB:SQLDataType|CWMREC:Group|CWMIV:RenderedObject|CWM:Package|CWM:Model|
   CWM:Extent|CWMRDB:RowSet|CWMREC:RecordSet|CWMMDB:MemberSet|CWMXML:Document|
   CWM:DeployedComponent|CWM:DataManager|CWM:DataProvider|
   CWM:DeployedSoftwareSystem|CWM:TypeSystem|CWMRDB:Catalog|CWMRDB:Schema|
   CWMREC:RecordFile|CWMMDB:Schema|CWMXML:Schema|CWMOLAP:DeploymentGroup|
   CWMOLAP:Schema|CWMIV:RenderedObjectSet|CWMBUS:Nomenclature|CWMBUS:Taxonomy|
   CWMBUS:Glossary|CWMBUS:BusinessDomain|CWMWHP:CustomCalendar|
   CWMWHP:ProcessPackage|CWM:ResponsibleParty|CWM:Description|CWM:Document|
   CWM:Machine|CWMTFM:Transformation|CWMTFM:TransformationMap|
   CWMOLAP:ContentMap|CWMOLAP:StructureMap|CWMTFM:TransformationTree|
   CWMTFM:ClassifierMap|CWM:Feature|CWM:StructuralFeature|CWM:Attribute|
   CWM:UnionMember|CWMRDB:Column|CWMREC:Field|CWMREC:FixedOffsetField|
   CWMMDB:DimensionedObject|CWMXML:Attribute|CWMXML:ElementTypeReference|
   CWMXML:Text|CWMOLAP:Measure|CWMMIN:MiningAttribute|CWMMIN:NumericAttribute|
   CWMMIN:CategoricalAttribute|CWMMIN:OrdinalAttribute|
   CWMMIN:ApplicationAttribute|CWM:AssociationEnd|CWM:BehavioralFeature|
   CWM:Method|CWMRDB:Procedure|CWM:Operation|CWMIV:Rendering|
   CWMIV:XSLRendering|CWM:Constraint|CWMRDB:CheckConstraint|
   CWMTFM:PrecedenceConstraint|CWM:Dependency|CWM:PackageUsage|
   CWMTFM:TransformationUse|CWMTFM:StepPrecedence|CWM:Stereotype|CWM:Argument|
   CWM:CallAction|CWM:Event|CWMWHP:WarehouseEvent|CWMWHP:ScheduleEvent|
   CWMWHP:PointInTimeEvent|CWMWHP:CustomCalendarEvent|
   CWMWHP:RecurringPointInTimeEvent|CWMWHP:IntervalEvent|CWMWHP:ExternalEvent|
   CWMWHP:InternalEvent|CWMWHP:CascadeEvent|CWMWHP:RetryEvent|CWM:Parameter|
   CWMRDB:SQLParameter|CWM:Generalization|CWM:Instance|CWM:DataValue|
   CWMRDB:ColumnValue|CWMREC:FieldValue|CWMMDB:MemberValue|CWM:Object|
   CWMRDB:Row|CWMREC:Record|CWMMDB:Member|CWMXML:Element|CWM:Slot|
   CWM:Telephone|CWM:Email|CWM:Location|CWM:Site|CWM:Contact|
   CWM:ResourceLocator|CWM:EnumerationLiteral|CWM:UniqueKey|
   CWMRDB:UniqueConstraint|CWMRDB:PrimaryKey|CWM:Index|CWMRDB:SQLIndex|
   CWM:KeyRelationship|CWMRDB:ForeignKey|CWM:IndexedFeature|
   CWMRDB:SQLIndexColumn|CWM:ProviderConnection|CWM:TypeMapping|
   CWMRDB:Trigger|CWMXML:Content|CWMXML:ElementContent|CWMXML:MixedContent|
   CWMTFM:DataObjectSet|CWMTFM:TransformationStep|CWMTFM:FeatureMap|
   CWMTFM:ClassifierFeatureMap|CWMMIN:AttributeUsageRelation|CWMMIN:Category|
   CWMBUS:VocabularyElement|CWMBUS:Concept|CWMBUS:Term|CWMWHP:CalendarDate|
   CWMWHP:WarehouseProcess|CWMWHP:WarehouseStep|CWMWHP:WarehouseActivity|
   CWMWHO:Measurement|CWMWHO:ChangeRequest|CWMWHO:TransformationExecution|
   CWMWHO:ActivityExecution|CWMWHO:StepExecution)*>
<!ENTITY % CWMTFM:TransformationActivityFeatures '%CWM:SubsystemFeatures; |
   CWMTFM:TransformationActivity.creationDate |
   CWMTFM:TransformationActivity.step'>
<!ENTITY % CWMTFM:TransformationActivityAtts '%CWM:SubsystemAtts;
   creationDate CDATA #IMPLIED'>
<!ELEMENT CWMTFM:TransformationActivity (%CWMTFM:TransformationActivityFeatures;)*>
<!ATTLIST CWMTFM:TransformationActivity %CWMTFM:TransformationActivityAtts;>

<!-- ========= CWMTFM:PrecedenceConstraint ========= -->
<!ENTITY % CWMTFM:PrecedenceConstraintFeatures '%CWM:ConstraintFeatures;'>
<!ENTITY % CWMTFM:PrecedenceConstraintAtts '%CWM:ConstraintAtts;'>
<!ELEMENT CWMTFM:PrecedenceConstraint (%CWMTFM:PrecedenceConstraintFeatures;)*>
<!ATTLIST CWMTFM:PrecedenceConstraint %CWMTFM:PrecedenceConstraintAtts;>

<!-- ========= CWMTFM:TransformationUse ========= -->
<!ELEMENT CWMTFM:TransformationUse.type (#PCDATA|XMI.reference)*>
<!ELEMENT CWMTFM:TransformationUse.transformation (CWM:ModelElement)*>
<!ELEMENT CWMTFM:TransformationUse.operation (CWM:ModelElement)*>
<!ENTITY % CWMTFM:TransformationUseFeatures '%CWM:DependencyFeatures; |
   CWMTFM:TransformationUse.type |
   CWMTFM:TransformationUse.transformation |
   CWMTFM:TransformationUse.operation'>
<!ENTITY % CWMTFM:TransformationUseAtts '%CWM:DependencyAtts;
   type CDATA #IMPLIED
   transformation IDREFS #IMPLIED
   operation IDREFS #IMPLIED'>
<!ELEMENT CWMTFM:TransformationUse (%CWMTFM:TransformationUseFeatures;)*>
<!ATTLIST CWMTFM:TransformationUse %CWMTFM:TransformationUseAtts;>

<!-- ========= CWMTFM:TransformationMap ========= -->
<!ELEMENT CWMTFM:TransformationMap.classifierMap (CWM:ModelElement|
   CWM:Namespace|CWM:Classifier|CWM:Class|CWM:Association|CWMRDB:ColumnSet|
   CWMRDB:NamedColumnSet|CWMRDB:Table|CWMRDB:View|CWMRDB:QueryColumnSet|
   CWMRDB:SQLStructuredType|CWMREC:RecordDef|CWMMDB:Dimension|
   CWMXML:ElementType|CWMOLAP:Cube|CWMOLAP:CubeDeployment|
   CWMOLAP:CubeDimensionAssociation|CWMOLAP:CubeRegion|CWMOLAP:Dimension|
   CWMOLAP:DimensionDeployment|CWMOLAP:Hierarchy|CWMOLAP:LevelBasedHierarchy|
   CWMOLAP:ValueBasedHierarchy|CWMOLAP:HierarchyLevelAssociation|
   CWMOLAP:MemberSelectionGroup|CWMOLAP:MemberSelection|CWMOLAP:Level|
   CWMOLAP:CodedLevel|CWMMIN:ApplicationInputSpecification|
   CWMMIN:CategoryHierarchy|CWMMIN:CostMatrix|CWMMIN:MiningDataSpecification|
   CWMMIN:MiningModel|CWMMIN:SupervisedMiningModel|CWMMIN:MiningModelResult|
   CWMMIN:MiningSettings|CWMMIN:ClusteringSettings|CWMMIN:StatisticsSettings|
   CWMMIN:SupervisedMiningSettings|CWMMIN:ClassificationSettings|
   CWMMIN:RegressionSettings|CWMMIN:AssociationRulesSettings|CWM:DataType|
   CWM:Enumeration|CWM:TypeAlias|CWMRDB:SQLDistinctType|CWMRDB:SQLSimpleType|
   CWM:Subsystem|CWM:SoftwareSystem|CWMTFM:TransformationActivity|
   CWM:Interface|CWM:Union|CWM:Component|CWMTFM:TransformationTask|
   CWMRDB:SQLDataType|CWMREC:Group|CWMIV:RenderedObject|CWM:Package|CWM:Model|
   CWM:Extent|CWMRDB:RowSet|CWMREC:RecordSet|CWMMDB:MemberSet|CWMXML:Document|
   CWM:DeployedComponent|CWM:DataManager|CWM:DataProvider|
   CWM:DeployedSoftwareSystem|CWM:TypeSystem|CWMRDB:Catalog|CWMRDB:Schema|
   CWMREC:RecordFile|CWMMDB:Schema|CWMXML:Schema|CWMOLAP:DeploymentGroup|
   CWMOLAP:Schema|CWMIV:RenderedObjectSet|CWMBUS:Nomenclature|CWMBUS:Taxonomy|
   CWMBUS:Glossary|CWMBUS:BusinessDomain|CWMWHP:CustomCalendar|
   CWMWHP:ProcessPackage|CWM:ResponsibleParty|CWM:Description|CWM:Document|
   CWM:Machine|CWMTFM:Transformation|CWMTFM:TransformationMap|
   CWMOLAP:ContentMap|CWMOLAP:StructureMap|CWMTFM:TransformationTree|
   CWMTFM:ClassifierMap|CWM:Feature|CWM:StructuralFeature|CWM:Attribute|
   CWM:UnionMember|CWMRDB:Column|CWMREC:Field|CWMREC:FixedOffsetField|
   CWMMDB:DimensionedObject|CWMXML:Attribute|CWMXML:ElementTypeReference|
   CWMXML:Text|CWMOLAP:Measure|CWMMIN:MiningAttribute|CWMMIN:NumericAttribute|
   CWMMIN:CategoricalAttribute|CWMMIN:OrdinalAttribute|
   CWMMIN:ApplicationAttribute|CWM:AssociationEnd|CWM:BehavioralFeature|
   CWM:Method|CWMRDB:Procedure|CWM:Operation|CWMIV:Rendering|
   CWMIV:XSLRendering|CWM:Constraint|CWMRDB:CheckConstraint|
   CWMTFM:PrecedenceConstraint|CWM:Dependency|CWM:PackageUsage|
   CWMTFM:TransformationUse|CWMTFM:StepPrecedence|CWM:Stereotype|CWM:Argument|
   CWM:CallAction|CWM:Event|CWMWHP:WarehouseEvent|CWMWHP:ScheduleEvent|
   CWMWHP:PointInTimeEvent|CWMWHP:CustomCalendarEvent|
   CWMWHP:RecurringPointInTimeEvent|CWMWHP:IntervalEvent|CWMWHP:ExternalEvent|
   CWMWHP:InternalEvent|CWMWHP:CascadeEvent|CWMWHP:RetryEvent|CWM:Parameter|
   CWMRDB:SQLParameter|CWM:Generalization|CWM:Instance|CWM:DataValue|
   CWMRDB:ColumnValue|CWMREC:FieldValue|CWMMDB:MemberValue|CWM:Object|
   CWMRDB:Row|CWMREC:Record|CWMMDB:Member|CWMXML:Element|CWM:Slot|
   CWM:Telephone|CWM:Email|CWM:Location|CWM:Site|CWM:Contact|
   CWM:ResourceLocator|CWM:EnumerationLiteral|CWM:UniqueKey|
   CWMRDB:UniqueConstraint|CWMRDB:PrimaryKey|CWM:Index|CWMRDB:SQLIndex|
   CWM:KeyRelationship|CWMRDB:ForeignKey|CWM:IndexedFeature|
   CWMRDB:SQLIndexColumn|CWM:ProviderConnection|CWM:TypeMapping|
   CWMRDB:Trigger|CWMXML:Content|CWMXML:ElementContent|CWMXML:MixedContent|
   CWMTFM:DataObjectSet|CWMTFM:TransformationStep|CWMTFM:FeatureMap|
   CWMTFM:ClassifierFeatureMap|CWMMIN:AttributeUsageRelation|CWMMIN:Category|
   CWMBUS:VocabularyElement|CWMBUS:Concept|CWMBUS:Term|CWMWHP:CalendarDate|
   CWMWHP:WarehouseProcess|CWMWHP:WarehouseStep|CWMWHP:WarehouseActivity|
   CWMWHO:Measurement|CWMWHO:ChangeRequest|CWMWHO:TransformationExecution|
   CWMWHO:ActivityExecution|CWMWHO:StepExecution)*>
<!ENTITY % CWMTFM:TransformationMapFeatures '%CWMTFM:TransformationFeatures; |
   CWMTFM:TransformationMap.classifierMap'>
<!ENTITY % CWMTFM:TransformationMapAtts '%CWMTFM:TransformationAtts;'>
<!ELEMENT CWMTFM:TransformationMap (%CWMTFM:TransformationMapFeatures;)*>
<!ATTLIST CWMTFM:TransformationMap %CWMTFM:TransformationMapAtts;>

<!-- ========= CWMTFM:TransformationTree ========= -->
<!ELEMENT CWMTFM:TransformationTree.type EMPTY>
<!ATTLIST CWMTFM:TransformationTree.type xmi.value %CWMTFM:TreeType; #REQUIRED>
<!ELEMENT CWMTFM:TransformationTree.body (CWM:ExpressionNode|CWM:ConstantNode|
   CWM:ElementNode|CWM:FeatureNode)*>
<!ENTITY % CWMTFM:TransformationTreeFeatures '%CWMTFM:TransformationFeatures; |
   CWMTFM:TransformationTree.type |
   CWMTFM:TransformationTree.body'>
<!ENTITY % CWMTFM:TransformationTreeAtts '%CWMTFM:TransformationAtts;
   type %CWMTFM:TreeType; #IMPLIED'>
<!ELEMENT CWMTFM:TransformationTree (%CWMTFM:TransformationTreeFeatures;)*>
<!ATTLIST CWMTFM:TransformationTree %CWMTFM:TransformationTreeAtts;>

<!-- ========= CWMTFM:ClassifierMap ========= -->
<!ELEMENT CWMTFM:ClassifierMap.function (CWM:ProcedureExpression|
   CWM:QueryExpression)*>
<!ELEMENT CWMTFM:ClassifierMap.functionDescription (#PCDATA|XMI.reference)*>
<!ELEMENT CWMTFM:ClassifierMap.source (CWM:Classifier)*>
<!ELEMENT CWMTFM:ClassifierMap.target (CWM:Classifier)*>
<!ELEMENT CWMTFM:ClassifierMap.transformationMap (CWM:Namespace)*>
<!ELEMENT CWMTFM:ClassifierMap.featureMap (CWMTFM:FeatureMap)*>
<!ELEMENT CWMTFM:ClassifierMap.cfMap (CWMTFM:ClassifierFeatureMap)*>
<!ENTITY % CWMTFM:ClassifierMapFeatures '%CWM:NamespaceFeatures; |
   CWMTFM:ClassifierMap.function |
   CWMTFM:ClassifierMap.functionDescription |
   CWMTFM:ClassifierMap.source |
   CWMTFM:ClassifierMap.target |
   CWMTFM:ClassifierMap.transformationMap |
   CWMTFM:ClassifierMap.featureMap |
   CWMTFM:ClassifierMap.cfMap'>
<!ENTITY % CWMTFM:ClassifierMapAtts '%CWM:NamespaceAtts;
   functionDescription CDATA #IMPLIED
   source IDREFS #IMPLIED
   target IDREFS #IMPLIED
   transformationMap IDREFS #IMPLIED'>
<!ELEMENT CWMTFM:ClassifierMap (%CWMTFM:ClassifierMapFeatures;)*>
<!ATTLIST CWMTFM:ClassifierMap %CWMTFM:ClassifierMapAtts;>

<!-- ========= CWMTFM:FeatureMap ========= -->
<!ELEMENT CWMTFM:FeatureMap.function (CWM:ProcedureExpression|
   CWM:QueryExpression)*>
<!ELEMENT CWMTFM:FeatureMap.functionDescription (#PCDATA|XMI.reference)*>
<!ELEMENT CWMTFM:FeatureMap.source (CWM:Feature)*>
<!ELEMENT CWMTFM:FeatureMap.target (CWM:Feature)*>
<!ELEMENT CWMTFM:FeatureMap.classifierMap (CWMTFM:ClassifierMap)*>
<!ENTITY % CWMTFM:FeatureMapFeatures '%CWM:ModelElementFeatures; |
   CWMTFM:FeatureMap.function |
   CWMTFM:FeatureMap.functionDescription |
   CWMTFM:FeatureMap.source |
   CWMTFM:FeatureMap.target |
   CWMTFM:FeatureMap.classifierMap'>
<!ENTITY % CWMTFM:FeatureMapAtts '%CWM:ModelElementAtts;
   functionDescription CDATA #IMPLIED
   source IDREFS #IMPLIED
   target IDREFS #IMPLIED
   classifierMap IDREFS #IMPLIED'>
<!ELEMENT CWMTFM:FeatureMap (%CWMTFM:FeatureMapFeatures;)*>
<!ATTLIST CWMTFM:FeatureMap %CWMTFM:FeatureMapAtts;>

<!-- ========= CWMTFM:StepPrecedence ========= -->
<!ELEMENT CWMTFM:StepPrecedence.precedingStep (CWM:ModelElement)*>
<!ELEMENT CWMTFM:StepPrecedence.succeedingStep (CWM:ModelElement)*>
<!ENTITY % CWMTFM:StepPrecedenceFeatures '%CWM:DependencyFeatures; |
   CWMTFM:StepPrecedence.precedingStep |
   CWMTFM:StepPrecedence.succeedingStep'>
<!ENTITY % CWMTFM:StepPrecedenceAtts '%CWM:DependencyAtts;
   precedingStep IDREFS #IMPLIED
   succeedingStep IDREFS #IMPLIED'>
<!ELEMENT CWMTFM:StepPrecedence (%CWMTFM:StepPrecedenceFeatures;)*>
<!ATTLIST CWMTFM:StepPrecedence %CWMTFM:StepPrecedenceAtts;>

<!-- ========= CWMTFM:ClassifierFeatureMap ========= -->
<!ELEMENT CWMTFM:ClassifierFeatureMap.function (CWM:ProcedureExpression|
   CWM:QueryExpression)*>
<!ELEMENT CWMTFM:ClassifierFeatureMap.functionDescription (#PCDATA|XMI.reference)*>
<!ELEMENT CWMTFM:ClassifierFeatureMap.classifierToFeature EMPTY>
<!ATTLIST CWMTFM:ClassifierFeatureMap.classifierToFeature xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMTFM:ClassifierFeatureMap.classifier (CWM:Classifier)*>
<!ELEMENT CWMTFM:ClassifierFeatureMap.feature (CWM:Feature)*>
<!ELEMENT CWMTFM:ClassifierFeatureMap.classifierMap (CWMTFM:ClassifierMap)*>
<!ENTITY % CWMTFM:ClassifierFeatureMapFeatures '%CWM:ModelElementFeatures; |
   CWMTFM:ClassifierFeatureMap.function |
   CWMTFM:ClassifierFeatureMap.functionDescription |
   CWMTFM:ClassifierFeatureMap.classifierToFeature |
   CWMTFM:ClassifierFeatureMap.classifier |
   CWMTFM:ClassifierFeatureMap.feature |
   CWMTFM:ClassifierFeatureMap.classifierMap'>
<!ENTITY % CWMTFM:ClassifierFeatureMapAtts '%CWM:ModelElementAtts;
   functionDescription CDATA #IMPLIED
   classifierToFeature (true|false) #IMPLIED
   classifier IDREFS #IMPLIED
   feature IDREFS #IMPLIED
   classifierMap IDREFS #IMPLIED'>
<!ELEMENT CWMTFM:ClassifierFeatureMap (%CWMTFM:ClassifierFeatureMapFeatures;)*>
<!ATTLIST CWMTFM:ClassifierFeatureMap %CWMTFM:ClassifierFeatureMapAtts;>

<!-- ========= CWMOLAP:Olap ========= -->

<!-- ========= CWMOLAP:ContentMap ========= -->
<!ELEMENT CWMOLAP:ContentMap.cubeDeployment (CWMOLAP:CubeDeployment)*>
<!ENTITY % CWMOLAP:ContentMapFeatures '%CWMTFM:TransformationMapFeatures; |
   CWMOLAP:ContentMap.cubeDeployment'>
<!ENTITY % CWMOLAP:ContentMapAtts '%CWMTFM:TransformationMapAtts;
   cubeDeployment IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:ContentMap (%CWMOLAP:ContentMapFeatures;)*>
<!ATTLIST CWMOLAP:ContentMap %CWMOLAP:ContentMapAtts;>

<!-- ========= CWMOLAP:Cube ========= -->
<!ELEMENT CWMOLAP:Cube.isVirtual EMPTY>
<!ATTLIST CWMOLAP:Cube.isVirtual xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMOLAP:Cube.cubeDimensionAssociation (CWMOLAP:CubeDimensionAssociation)*>
<!ELEMENT CWMOLAP:Cube.cubeRegion (CWMOLAP:CubeRegion)*>
<!ELEMENT CWMOLAP:Cube.schema (CWMOLAP:Schema)*>
<!ENTITY % CWMOLAP:CubeFeatures '%CWM:ClassFeatures; |
   CWMOLAP:Cube.isVirtual |
   CWMOLAP:Cube.cubeDimensionAssociation |
   CWMOLAP:Cube.cubeRegion |
   CWMOLAP:Cube.schema'>
<!ENTITY % CWMOLAP:CubeAtts '%CWM:ClassAtts;
   isVirtual (true|false) #IMPLIED
   schema IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:Cube (%CWMOLAP:CubeFeatures;)*>
<!ATTLIST CWMOLAP:Cube %CWMOLAP:CubeAtts;>

<!-- ========= CWMOLAP:CubeDeployment ========= -->
<!ELEMENT CWMOLAP:CubeDeployment.cubeRegion (CWMOLAP:CubeRegion)*>
<!ELEMENT CWMOLAP:CubeDeployment.deploymentGroup (CWMOLAP:DeploymentGroup)*>
<!ELEMENT CWMOLAP:CubeDeployment.contentMap (CWMOLAP:ContentMap)*>
<!ENTITY % CWMOLAP:CubeDeploymentFeatures '%CWM:ClassFeatures; |
   CWMOLAP:CubeDeployment.cubeRegion |
   CWMOLAP:CubeDeployment.deploymentGroup |
   CWMOLAP:CubeDeployment.contentMap'>
<!ENTITY % CWMOLAP:CubeDeploymentAtts '%CWM:ClassAtts;
   cubeRegion IDREFS #IMPLIED
   deploymentGroup IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:CubeDeployment (%CWMOLAP:CubeDeploymentFeatures;)*>
<!ATTLIST CWMOLAP:CubeDeployment %CWMOLAP:CubeDeploymentAtts;>

<!-- ========= CWMOLAP:CubeDimensionAssociation ========= -->
<!ELEMENT CWMOLAP:CubeDimensionAssociation.dimension (CWMOLAP:Dimension)*>
<!ELEMENT CWMOLAP:CubeDimensionAssociation.cube (CWMOLAP:Cube)*>
<!ELEMENT CWMOLAP:CubeDimensionAssociation.calcHierarchy (CWMOLAP:Hierarchy)*>
<!ENTITY % CWMOLAP:CubeDimensionAssociationFeatures '%CWM:ClassFeatures; |
   CWMOLAP:CubeDimensionAssociation.dimension |
   CWMOLAP:CubeDimensionAssociation.cube |
   CWMOLAP:CubeDimensionAssociation.calcHierarchy'>
<!ENTITY % CWMOLAP:CubeDimensionAssociationAtts '%CWM:ClassAtts;
   dimension IDREFS #IMPLIED
   cube IDREFS #IMPLIED
   calcHierarchy IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:CubeDimensionAssociation (%CWMOLAP:CubeDimensionAssociationFeatures;)*>
<!ATTLIST CWMOLAP:CubeDimensionAssociation %CWMOLAP:CubeDimensionAssociationAtts;>

<!-- ========= CWMOLAP:CubeRegion ========= -->
<!ELEMENT CWMOLAP:CubeRegion.isReadOnly EMPTY>
<!ATTLIST CWMOLAP:CubeRegion.isReadOnly xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMOLAP:CubeRegion.isFullyRealized EMPTY>
<!ATTLIST CWMOLAP:CubeRegion.isFullyRealized xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMOLAP:CubeRegion.memberSelectionGroup (CWMOLAP:MemberSelectionGroup)*>
<!ELEMENT CWMOLAP:CubeRegion.cube (CWMOLAP:Cube)*>
<!ELEMENT CWMOLAP:CubeRegion.cubeDeployment (CWMOLAP:CubeDeployment)*>
<!ENTITY % CWMOLAP:CubeRegionFeatures '%CWM:ClassFeatures; |
   CWMOLAP:CubeRegion.isReadOnly |
   CWMOLAP:CubeRegion.isFullyRealized |
   CWMOLAP:CubeRegion.memberSelectionGroup |
   CWMOLAP:CubeRegion.cube |
   CWMOLAP:CubeRegion.cubeDeployment'>
<!ENTITY % CWMOLAP:CubeRegionAtts '%CWM:ClassAtts;
   isReadOnly (true|false) #IMPLIED
   isFullyRealized (true|false) #IMPLIED
   cube IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:CubeRegion (%CWMOLAP:CubeRegionFeatures;)*>
<!ATTLIST CWMOLAP:CubeRegion %CWMOLAP:CubeRegionAtts;>

<!-- ========= CWMOLAP:DeploymentGroup ========= -->
<!ELEMENT CWMOLAP:DeploymentGroup.schema (CWMOLAP:Schema)*>
<!ELEMENT CWMOLAP:DeploymentGroup.cubeDeployment (CWMOLAP:CubeDeployment)*>
<!ELEMENT CWMOLAP:DeploymentGroup.dimensionDeployment (CWMOLAP:DimensionDeployment)*>
<!ENTITY % CWMOLAP:DeploymentGroupFeatures '%CWM:PackageFeatures; |
   CWMOLAP:DeploymentGroup.schema |
   CWMOLAP:DeploymentGroup.cubeDeployment |
   CWMOLAP:DeploymentGroup.dimensionDeployment'>
<!ENTITY % CWMOLAP:DeploymentGroupAtts '%CWM:PackageAtts;
   schema IDREFS #IMPLIED
   cubeDeployment IDREFS #IMPLIED
   dimensionDeployment IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:DeploymentGroup (%CWMOLAP:DeploymentGroupFeatures;)*>
<!ATTLIST CWMOLAP:DeploymentGroup %CWMOLAP:DeploymentGroupAtts;>

<!-- ========= CWMOLAP:Dimension ========= -->
<!ELEMENT CWMOLAP:Dimension.isTime EMPTY>
<!ATTLIST CWMOLAP:Dimension.isTime xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMOLAP:Dimension.isMeasure EMPTY>
<!ATTLIST CWMOLAP:Dimension.isMeasure xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMOLAP:Dimension.hierarchy (CWMOLAP:Hierarchy|
   CWMOLAP:LevelBasedHierarchy|CWMOLAP:ValueBasedHierarchy)*>
<!ELEMENT CWMOLAP:Dimension.memberSelection (CWMOLAP:MemberSelection|
   CWMOLAP:Level|CWMOLAP:CodedLevel)*>
<!ELEMENT CWMOLAP:Dimension.cubeDimensionAssociation (CWMOLAP:CubeDimensionAssociation)*>
<!ELEMENT CWMOLAP:Dimension.displayDefault (CWMOLAP:Hierarchy)*>
<!ELEMENT CWMOLAP:Dimension.schema (CWMOLAP:Schema)*>
<!ENTITY % CWMOLAP:DimensionFeatures '%CWM:ClassFeatures; |
   CWMOLAP:Dimension.isTime |
   CWMOLAP:Dimension.isMeasure |
   CWMOLAP:Dimension.hierarchy |
   CWMOLAP:Dimension.memberSelection |
   CWMOLAP:Dimension.cubeDimensionAssociation |
   CWMOLAP:Dimension.displayDefault |
   CWMOLAP:Dimension.schema'>
<!ENTITY % CWMOLAP:DimensionAtts '%CWM:ClassAtts;
   isTime (true|false) #IMPLIED
   isMeasure (true|false) #IMPLIED
   cubeDimensionAssociation IDREFS #IMPLIED
   displayDefault IDREFS #IMPLIED
   schema IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:Dimension (%CWMOLAP:DimensionFeatures;)*>
<!ATTLIST CWMOLAP:Dimension %CWMOLAP:DimensionAtts;>

<!-- ========= CWMOLAP:DimensionDeployment ========= -->
<!ELEMENT CWMOLAP:DimensionDeployment.hierarchyLevelAssociation (CWMOLAP:HierarchyLevelAssociation)*>
<!ELEMENT CWMOLAP:DimensionDeployment.valueBasedHierarchy (CWMOLAP:ValueBasedHierarchy)*>
<!ELEMENT CWMOLAP:DimensionDeployment.structureMap (CWMOLAP:StructureMap)*>
<!ELEMENT CWMOLAP:DimensionDeployment.listOfValues (CWMOLAP:StructureMap)*>
<!ELEMENT CWMOLAP:DimensionDeployment.immediateParent (CWMOLAP:StructureMap)*>
<!ELEMENT CWMOLAP:DimensionDeployment.deploymentGroup (CWMOLAP:DeploymentGroup)*>
<!ENTITY % CWMOLAP:DimensionDeploymentFeatures '%CWM:ClassFeatures; |
   CWMOLAP:DimensionDeployment.hierarchyLevelAssociation |
   CWMOLAP:DimensionDeployment.valueBasedHierarchy |
   CWMOLAP:DimensionDeployment.structureMap |
   CWMOLAP:DimensionDeployment.listOfValues |
   CWMOLAP:DimensionDeployment.immediateParent |
   CWMOLAP:DimensionDeployment.deploymentGroup'>
<!ENTITY % CWMOLAP:DimensionDeploymentAtts '%CWM:ClassAtts;
   hierarchyLevelAssociation IDREFS #IMPLIED
   valueBasedHierarchy IDREFS #IMPLIED
   listOfValues IDREFS #IMPLIED
   immediateParent IDREFS #IMPLIED
   deploymentGroup IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:DimensionDeployment (%CWMOLAP:DimensionDeploymentFeatures;)*>
<!ATTLIST CWMOLAP:DimensionDeployment %CWMOLAP:DimensionDeploymentAtts;>

<!-- ========= CWMOLAP:Hierarchy ========= -->
<!ELEMENT CWMOLAP:Hierarchy.dimension (CWMOLAP:Dimension)*>
<!ELEMENT CWMOLAP:Hierarchy.cubeDimensionAssociation (CWMOLAP:CubeDimensionAssociation)*>
<!ELEMENT CWMOLAP:Hierarchy.defaultedDimension (CWMOLAP:Dimension)*>
<!ENTITY % CWMOLAP:HierarchyFeatures '%CWM:ClassFeatures; |
   CWMOLAP:Hierarchy.dimension |
   CWMOLAP:Hierarchy.cubeDimensionAssociation |
   CWMOLAP:Hierarchy.defaultedDimension'>
<!ENTITY % CWMOLAP:HierarchyAtts '%CWM:ClassAtts;
   dimension IDREFS #IMPLIED
   cubeDimensionAssociation IDREFS #IMPLIED
   defaultedDimension IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:Hierarchy (%CWMOLAP:HierarchyFeatures;)*>
<!ATTLIST CWMOLAP:Hierarchy %CWMOLAP:HierarchyAtts;>

<!-- ========= CWMOLAP:HierarchyLevelAssociation ========= -->
<!ELEMENT CWMOLAP:HierarchyLevelAssociation.levelBasedHierarchy (CWMOLAP:LevelBasedHierarchy)*>
<!ELEMENT CWMOLAP:HierarchyLevelAssociation.currentLevel (CWMOLAP:Level)*>
<!ELEMENT CWMOLAP:HierarchyLevelAssociation.dimensionDeployment (CWMOLAP:DimensionDeployment)*>
<!ENTITY % CWMOLAP:HierarchyLevelAssociationFeatures '%CWM:ClassFeatures; |
   CWMOLAP:HierarchyLevelAssociation.levelBasedHierarchy |
   CWMOLAP:HierarchyLevelAssociation.currentLevel |
   CWMOLAP:HierarchyLevelAssociation.dimensionDeployment'>
<!ENTITY % CWMOLAP:HierarchyLevelAssociationAtts '%CWM:ClassAtts;
   levelBasedHierarchy IDREFS #IMPLIED
   currentLevel IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:HierarchyLevelAssociation (%CWMOLAP:HierarchyLevelAssociationFeatures;)*>
<!ATTLIST CWMOLAP:HierarchyLevelAssociation %CWMOLAP:HierarchyLevelAssociationAtts;>

<!-- ========= CWMOLAP:LevelBasedHierarchy ========= -->
<!ELEMENT CWMOLAP:LevelBasedHierarchy.hierarchyLevelAssociation (CWMOLAP:HierarchyLevelAssociation)*>
<!ENTITY % CWMOLAP:LevelBasedHierarchyFeatures '%CWMOLAP:HierarchyFeatures; |
   CWMOLAP:LevelBasedHierarchy.hierarchyLevelAssociation'>
<!ENTITY % CWMOLAP:LevelBasedHierarchyAtts '%CWMOLAP:HierarchyAtts;'>
<!ELEMENT CWMOLAP:LevelBasedHierarchy (%CWMOLAP:LevelBasedHierarchyFeatures;)*>
<!ATTLIST CWMOLAP:LevelBasedHierarchy %CWMOLAP:LevelBasedHierarchyAtts;>

<!-- ========= CWMOLAP:MemberSelectionGroup ========= -->
<!ELEMENT CWMOLAP:MemberSelectionGroup.memberSelection (CWMOLAP:MemberSelection)*>
<!ELEMENT CWMOLAP:MemberSelectionGroup.cubeRegion (CWMOLAP:CubeRegion)*>
<!ENTITY % CWMOLAP:MemberSelectionGroupFeatures '%CWM:ClassFeatures; |
   CWMOLAP:MemberSelectionGroup.memberSelection |
   CWMOLAP:MemberSelectionGroup.cubeRegion'>
<!ENTITY % CWMOLAP:MemberSelectionGroupAtts '%CWM:ClassAtts;
   memberSelection IDREFS #IMPLIED
   cubeRegion IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:MemberSelectionGroup (%CWMOLAP:MemberSelectionGroupFeatures;)*>
<!ATTLIST CWMOLAP:MemberSelectionGroup %CWMOLAP:MemberSelectionGroupAtts;>

<!-- ========= CWMOLAP:MemberSelection ========= -->
<!ELEMENT CWMOLAP:MemberSelection.dimension (CWMOLAP:Dimension)*>
<!ELEMENT CWMOLAP:MemberSelection.memberSelectionGroup (CWMOLAP:MemberSelectionGroup)*>
<!ENTITY % CWMOLAP:MemberSelectionFeatures '%CWM:ClassFeatures; |
   CWMOLAP:MemberSelection.dimension |
   CWMOLAP:MemberSelection.memberSelectionGroup'>
<!ENTITY % CWMOLAP:MemberSelectionAtts '%CWM:ClassAtts;
   dimension IDREFS #IMPLIED
   memberSelectionGroup IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:MemberSelection (%CWMOLAP:MemberSelectionFeatures;)*>
<!ATTLIST CWMOLAP:MemberSelection %CWMOLAP:MemberSelectionAtts;>

<!-- ========= CWMOLAP:Schema ========= -->
<!ELEMENT CWMOLAP:Schema.cube (CWMOLAP:Cube)*>
<!ELEMENT CWMOLAP:Schema.dimension (CWMOLAP:Dimension)*>
<!ELEMENT CWMOLAP:Schema.deploymentGroup (CWMOLAP:DeploymentGroup)*>
<!ENTITY % CWMOLAP:SchemaFeatures '%CWM:PackageFeatures; |
   CWMOLAP:Schema.cube |
   CWMOLAP:Schema.dimension |
   CWMOLAP:Schema.deploymentGroup'>
<!ENTITY % CWMOLAP:SchemaAtts '%CWM:PackageAtts;'>
<!ELEMENT CWMOLAP:Schema (%CWMOLAP:SchemaFeatures;)*>
<!ATTLIST CWMOLAP:Schema %CWMOLAP:SchemaAtts;>

<!-- ========= CWMOLAP:ValueBasedHierarchy ========= -->
<!ELEMENT CWMOLAP:ValueBasedHierarchy.dimensionDeployment (CWMOLAP:DimensionDeployment)*>
<!ENTITY % CWMOLAP:ValueBasedHierarchyFeatures '%CWMOLAP:HierarchyFeatures; |
   CWMOLAP:ValueBasedHierarchy.dimensionDeployment'>
<!ENTITY % CWMOLAP:ValueBasedHierarchyAtts '%CWMOLAP:HierarchyAtts;'>
<!ELEMENT CWMOLAP:ValueBasedHierarchy (%CWMOLAP:ValueBasedHierarchyFeatures;)*>
<!ATTLIST CWMOLAP:ValueBasedHierarchy %CWMOLAP:ValueBasedHierarchyAtts;>

<!-- ========= CWMOLAP:Level ========= -->
<!ELEMENT CWMOLAP:Level.hierarchyLevelAssociation (CWMOLAP:HierarchyLevelAssociation)*>
<!ENTITY % CWMOLAP:LevelFeatures '%CWMOLAP:MemberSelectionFeatures; |
   CWMOLAP:Level.hierarchyLevelAssociation'>
<!ENTITY % CWMOLAP:LevelAtts '%CWMOLAP:MemberSelectionAtts;
   hierarchyLevelAssociation IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:Level (%CWMOLAP:LevelFeatures;)*>
<!ATTLIST CWMOLAP:Level %CWMOLAP:LevelAtts;>

<!-- ========= CWMOLAP:CodedLevel ========= -->
<!ELEMENT CWMOLAP:CodedLevel.encoding (CWM:ExpressionNode|CWM:ConstantNode|
   CWM:ElementNode|CWM:FeatureNode)*>
<!ENTITY % CWMOLAP:CodedLevelFeatures '%CWMOLAP:LevelFeatures; |
   CWMOLAP:CodedLevel.encoding'>
<!ENTITY % CWMOLAP:CodedLevelAtts '%CWMOLAP:LevelAtts;'>
<!ELEMENT CWMOLAP:CodedLevel (%CWMOLAP:CodedLevelFeatures;)*>
<!ATTLIST CWMOLAP:CodedLevel %CWMOLAP:CodedLevelAtts;>

<!-- ========= CWMOLAP:Measure ========= -->
<!ENTITY % CWMOLAP:MeasureFeatures '%CWM:AttributeFeatures;'>
<!ENTITY % CWMOLAP:MeasureAtts '%CWM:AttributeAtts;'>
<!ELEMENT CWMOLAP:Measure (%CWMOLAP:MeasureFeatures;)*>
<!ATTLIST CWMOLAP:Measure %CWMOLAP:MeasureAtts;>

<!-- ========= CWMOLAP:StructureMap ========= -->
<!ELEMENT CWMOLAP:StructureMap.dimensionDeployment (CWMOLAP:DimensionDeployment)*>
<!ELEMENT CWMOLAP:StructureMap.dimensionDeploymentLV (CWMOLAP:DimensionDeployment)*>
<!ELEMENT CWMOLAP:StructureMap.dimensionDeploymentIP (CWMOLAP:DimensionDeployment)*>
<!ENTITY % CWMOLAP:StructureMapFeatures '%CWMTFM:TransformationMapFeatures; |
   CWMOLAP:StructureMap.dimensionDeployment |
   CWMOLAP:StructureMap.dimensionDeploymentLV |
   CWMOLAP:StructureMap.dimensionDeploymentIP'>
<!ENTITY % CWMOLAP:StructureMapAtts '%CWMTFM:TransformationMapAtts;
   dimensionDeployment IDREFS #IMPLIED
   dimensionDeploymentLV IDREFS #IMPLIED
   dimensionDeploymentIP IDREFS #IMPLIED'>
<!ELEMENT CWMOLAP:StructureMap (%CWMOLAP:StructureMapFeatures;)*>
<!ATTLIST CWMOLAP:StructureMap %CWMOLAP:StructureMapAtts;>

<!-- ========= CWMMIN:DataMining ========= -->
<!ENTITY % CWMMIN:AttributeType '(categorical|numerical)'>
<!ENTITY % CWMMIN:AttributeUsage '(active|inactive|supplementary)'>
<!ENTITY % CWMMIN:CategoryProperty '(missing|invalid|valid|positive|negative)'>
<!ENTITY % CWMMIN:OrderType '(alphabetic|date|numeric|inSequence)'>

<!-- ========= CWMMIN:ApplicationInputSpecification ========= -->
<!ELEMENT CWMMIN:ApplicationInputSpecification.miningModel (CWMMIN:MiningModel)*>
<!ELEMENT CWMMIN:ApplicationInputSpecification.inputAttribute (CWMMIN:ApplicationAttribute)*>
<!ENTITY % CWMMIN:ApplicationInputSpecificationFeatures '%CWM:ClassFeatures; |
   CWMMIN:ApplicationInputSpecification.miningModel |
   CWMMIN:ApplicationInputSpecification.inputAttribute'>
<!ENTITY % CWMMIN:ApplicationInputSpecificationAtts '%CWM:ClassAtts;
   miningModel IDREFS #IMPLIED'>
<!ELEMENT CWMMIN:ApplicationInputSpecification (%CWMMIN:ApplicationInputSpecificationFeatures;)*>
<!ATTLIST CWMMIN:ApplicationInputSpecification %CWMMIN:ApplicationInputSpecificationAtts;>

<!-- ========= CWMMIN:AttributeUsageRelation ========= -->
<!ELEMENT CWMMIN:AttributeUsageRelation.usageType EMPTY>
<!ATTLIST CWMMIN:AttributeUsageRelation.usageType xmi.value %CWMMIN:AttributeUsage; #REQUIRED>
<!ELEMENT CWMMIN:AttributeUsageRelation.includeInApplyResult EMPTY>
<!ATTLIST CWMMIN:AttributeUsageRelation.includeInApplyResult xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMMIN:AttributeUsageRelation.weight (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:AttributeUsageRelation.suppressNormalization EMPTY>
<!ATTLIST CWMMIN:AttributeUsageRelation.suppressNormalization xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMMIN:AttributeUsageRelation.attribute (CWMMIN:MiningAttribute)*>
<!ENTITY % CWMMIN:AttributeUsageRelationFeatures '%CWM:ModelElementFeatures; |
   CWMMIN:AttributeUsageRelation.usageType |
   CWMMIN:AttributeUsageRelation.includeInApplyResult |
   CWMMIN:AttributeUsageRelation.weight |
   CWMMIN:AttributeUsageRelation.suppressNormalization |
   CWMMIN:AttributeUsageRelation.attribute'>
<!ENTITY % CWMMIN:AttributeUsageRelationAtts '%CWM:ModelElementAtts;
   usageType %CWMMIN:AttributeUsage; #IMPLIED
   includeInApplyResult (true|false) #IMPLIED
   weight CDATA #IMPLIED
   suppressNormalization (true|false) #IMPLIED
   attribute IDREFS #IMPLIED'>
<!ELEMENT CWMMIN:AttributeUsageRelation (%CWMMIN:AttributeUsageRelationFeatures;)*>
<!ATTLIST CWMMIN:AttributeUsageRelation %CWMMIN:AttributeUsageRelationAtts;>

<!-- ========= CWMMIN:Category ========= -->
<!ELEMENT CWMMIN:Category.displayValue (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:Category.property EMPTY>
<!ATTLIST CWMMIN:Category.property xmi.value %CWMMIN:CategoryProperty; #REQUIRED>
<!ELEMENT CWMMIN:Category.value (XMI.any)>
<!ENTITY % CWMMIN:CategoryFeatures '%CWM:ModelElementFeatures; |
   CWMMIN:Category.displayValue |
   CWMMIN:Category.property |
   CWMMIN:Category.value'>
<!ENTITY % CWMMIN:CategoryAtts '%CWM:ModelElementAtts;
   displayValue CDATA #IMPLIED
   property %CWMMIN:CategoryProperty; #IMPLIED'>
<!ELEMENT CWMMIN:Category (%CWMMIN:CategoryFeatures;)*>
<!ATTLIST CWMMIN:Category %CWMMIN:CategoryAtts;>

<!-- ========= CWMMIN:CategoryHierarchy ========= -->
<!ENTITY % CWMMIN:CategoryHierarchyFeatures '%CWM:ClassFeatures;'>
<!ENTITY % CWMMIN:CategoryHierarchyAtts '%CWM:ClassAtts;'>
<!ELEMENT CWMMIN:CategoryHierarchy (%CWMMIN:CategoryHierarchyFeatures;)*>
<!ATTLIST CWMMIN:CategoryHierarchy %CWMMIN:CategoryHierarchyAtts;>

<!-- ========= CWMMIN:CostMatrix ========= -->
<!ENTITY % CWMMIN:CostMatrixFeatures '%CWM:ClassFeatures;'>
<!ENTITY % CWMMIN:CostMatrixAtts '%CWM:ClassAtts;'>
<!ELEMENT CWMMIN:CostMatrix (%CWMMIN:CostMatrixFeatures;)*>
<!ATTLIST CWMMIN:CostMatrix %CWMMIN:CostMatrixAtts;>

<!-- ========= CWMMIN:MiningAttribute ========= -->
<!ENTITY % CWMMIN:MiningAttributeFeatures '%CWM:AttributeFeatures;'>
<!ENTITY % CWMMIN:MiningAttributeAtts '%CWM:AttributeAtts;'>
<!ELEMENT CWMMIN:MiningAttribute (%CWMMIN:MiningAttributeFeatures;)*>
<!ATTLIST CWMMIN:MiningAttribute %CWMMIN:MiningAttributeAtts;>

<!-- ========= CWMMIN:MiningDataSpecification ========= -->
<!ELEMENT CWMMIN:MiningDataSpecification.attribute (CWMMIN:MiningAttribute|
   CWMMIN:NumericAttribute|CWMMIN:CategoricalAttribute|
   CWMMIN:OrdinalAttribute)*>
<!ENTITY % CWMMIN:MiningDataSpecificationFeatures '%CWM:ClassFeatures; |
   CWMMIN:MiningDataSpecification.attribute'>
<!ENTITY % CWMMIN:MiningDataSpecificationAtts '%CWM:ClassAtts;'>
<!ELEMENT CWMMIN:MiningDataSpecification (%CWMMIN:MiningDataSpecificationFeatures;)*>
<!ATTLIST CWMMIN:MiningDataSpecification %CWMMIN:MiningDataSpecificationAtts;>

<!-- ========= CWMMIN:MiningModel ========= -->
<!ELEMENT CWMMIN:MiningModel.function (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:MiningModel.algorithm (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:MiningModel.settings (CWMMIN:MiningSettings)*>
<!ELEMENT CWMMIN:MiningModel.inputSpec (CWMMIN:ApplicationInputSpecification)*>
<!ENTITY % CWMMIN:MiningModelFeatures '%CWM:ClassFeatures; |
   CWMMIN:MiningModel.function |
   CWMMIN:MiningModel.algorithm |
   CWMMIN:MiningModel.settings |
   CWMMIN:MiningModel.inputSpec'>
<!ENTITY % CWMMIN:MiningModelAtts '%CWM:ClassAtts;
   function CDATA #IMPLIED
   algorithm CDATA #IMPLIED
   settings IDREFS #IMPLIED'>
<!ELEMENT CWMMIN:MiningModel (%CWMMIN:MiningModelFeatures;)*>
<!ATTLIST CWMMIN:MiningModel %CWMMIN:MiningModelAtts;>

<!-- ========= CWMMIN:MiningModelResult ========= -->
<!ELEMENT CWMMIN:MiningModelResult.type (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:MiningModelResult.model (CWMMIN:MiningModel)*>
<!ENTITY % CWMMIN:MiningModelResultFeatures '%CWM:ClassFeatures; |
   CWMMIN:MiningModelResult.type |
   CWMMIN:MiningModelResult.model'>
<!ENTITY % CWMMIN:MiningModelResultAtts '%CWM:ClassAtts;
   type CDATA #IMPLIED
   model IDREFS #IMPLIED'>
<!ELEMENT CWMMIN:MiningModelResult (%CWMMIN:MiningModelResultFeatures;)*>
<!ATTLIST CWMMIN:MiningModelResult %CWMMIN:MiningModelResultAtts;>

<!-- ========= CWMMIN:NumericAttribute ========= -->
<!ELEMENT CWMMIN:NumericAttribute.lowerBound (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:NumericAttribute.upperBound (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:NumericAttribute.isCyclic EMPTY>
<!ATTLIST CWMMIN:NumericAttribute.isCyclic xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMMIN:NumericAttribute.isDiscrete EMPTY>
<!ATTLIST CWMMIN:NumericAttribute.isDiscrete xmi.value (true|false) #REQUIRED>
<!ENTITY % CWMMIN:NumericAttributeFeatures '%CWMMIN:MiningAttributeFeatures; |
   CWMMIN:NumericAttribute.lowerBound |
   CWMMIN:NumericAttribute.upperBound |
   CWMMIN:NumericAttribute.isCyclic |
   CWMMIN:NumericAttribute.isDiscrete'>
<!ENTITY % CWMMIN:NumericAttributeAtts '%CWMMIN:MiningAttributeAtts;
   lowerBound CDATA #IMPLIED
   upperBound CDATA #IMPLIED
   isCyclic (true|false) #IMPLIED
   isDiscrete (true|false) #IMPLIED'>
<!ELEMENT CWMMIN:NumericAttribute (%CWMMIN:NumericAttributeFeatures;)*>
<!ATTLIST CWMMIN:NumericAttribute %CWMMIN:NumericAttributeAtts;>

<!-- ========= CWMMIN:SupervisedMiningModel ========= -->
<!ELEMENT CWMMIN:SupervisedMiningModel.target (CWMMIN:ApplicationAttribute)*>
<!ENTITY % CWMMIN:SupervisedMiningModelFeatures '%CWMMIN:MiningModelFeatures; |
   CWMMIN:SupervisedMiningModel.target'>
<!ENTITY % CWMMIN:SupervisedMiningModelAtts '%CWMMIN:MiningModelAtts;
   target IDREFS #IMPLIED'>
<!ELEMENT CWMMIN:SupervisedMiningModel (%CWMMIN:SupervisedMiningModelFeatures;)*>
<!ATTLIST CWMMIN:SupervisedMiningModel %CWMMIN:SupervisedMiningModelAtts;>

<!-- ========= CWMMIN:CategoricalAttribute ========= -->
<!ELEMENT CWMMIN:CategoricalAttribute.taxonomy (CWMMIN:CategoryHierarchy)*>
<!ELEMENT CWMMIN:CategoricalAttribute.category (CWMMIN:Category)*>
<!ENTITY % CWMMIN:CategoricalAttributeFeatures '%CWMMIN:MiningAttributeFeatures; |
   CWMMIN:CategoricalAttribute.taxonomy |
   CWMMIN:CategoricalAttribute.category'>
<!ENTITY % CWMMIN:CategoricalAttributeAtts '%CWMMIN:MiningAttributeAtts;
   taxonomy IDREFS #IMPLIED'>
<!ELEMENT CWMMIN:CategoricalAttribute (%CWMMIN:CategoricalAttributeFeatures;)*>
<!ATTLIST CWMMIN:CategoricalAttribute %CWMMIN:CategoricalAttributeAtts;>

<!-- ========= CWMMIN:OrdinalAttribute ========= -->
<!ELEMENT CWMMIN:OrdinalAttribute.isCyclic EMPTY>
<!ATTLIST CWMMIN:OrdinalAttribute.isCyclic xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMMIN:OrdinalAttribute.orderingType EMPTY>
<!ATTLIST CWMMIN:OrdinalAttribute.orderingType xmi.value %CWMMIN:OrderType; #REQUIRED>
<!ENTITY % CWMMIN:OrdinalAttributeFeatures '%CWMMIN:CategoricalAttributeFeatures; |
   CWMMIN:OrdinalAttribute.isCyclic |
   CWMMIN:OrdinalAttribute.orderingType'>
<!ENTITY % CWMMIN:OrdinalAttributeAtts '%CWMMIN:CategoricalAttributeAtts;
   isCyclic (true|false) #IMPLIED
   orderingType %CWMMIN:OrderType; #IMPLIED'>
<!ELEMENT CWMMIN:OrdinalAttribute (%CWMMIN:OrdinalAttributeFeatures;)*>
<!ATTLIST CWMMIN:OrdinalAttribute %CWMMIN:OrdinalAttributeAtts;>

<!-- ========= CWMMIN:MiningSettings ========= -->
<!ELEMENT CWMMIN:MiningSettings.function (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:MiningSettings.algorithm (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:MiningSettings.attributeUsage (CWMMIN:AttributeUsageRelation)*>
<!ELEMENT CWMMIN:MiningSettings.dataSpecification (CWMMIN:MiningDataSpecification)*>
<!ENTITY % CWMMIN:MiningSettingsFeatures '%CWM:ClassFeatures; |
   CWMMIN:MiningSettings.function |
   CWMMIN:MiningSettings.algorithm |
   CWMMIN:MiningSettings.attributeUsage |
   CWMMIN:MiningSettings.dataSpecification'>
<!ENTITY % CWMMIN:MiningSettingsAtts '%CWM:ClassAtts;
   function CDATA #IMPLIED
   algorithm CDATA #IMPLIED
   dataSpecification IDREFS #IMPLIED'>
<!ELEMENT CWMMIN:MiningSettings (%CWMMIN:MiningSettingsFeatures;)*>
<!ATTLIST CWMMIN:MiningSettings %CWMMIN:MiningSettingsAtts;>

<!-- ========= CWMMIN:ClusteringSettings ========= -->
<!ELEMENT CWMMIN:ClusteringSettings.maxNumberOfClusters (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:ClusteringSettings.clusterIdAttributeName (#PCDATA|XMI.reference)*>
<!ENTITY % CWMMIN:ClusteringSettingsFeatures '%CWMMIN:MiningSettingsFeatures; |
   CWMMIN:ClusteringSettings.maxNumberOfClusters |
   CWMMIN:ClusteringSettings.clusterIdAttributeName'>
<!ENTITY % CWMMIN:ClusteringSettingsAtts '%CWMMIN:MiningSettingsAtts;
   maxNumberOfClusters CDATA #IMPLIED
   clusterIdAttributeName CDATA #IMPLIED'>
<!ELEMENT CWMMIN:ClusteringSettings (%CWMMIN:ClusteringSettingsFeatures;)*>
<!ATTLIST CWMMIN:ClusteringSettings %CWMMIN:ClusteringSettingsAtts;>

<!-- ========= CWMMIN:StatisticsSettings ========= -->
<!ENTITY % CWMMIN:StatisticsSettingsFeatures '%CWMMIN:MiningSettingsFeatures;'>
<!ENTITY % CWMMIN:StatisticsSettingsAtts '%CWMMIN:MiningSettingsAtts;'>
<!ELEMENT CWMMIN:StatisticsSettings (%CWMMIN:StatisticsSettingsFeatures;)*>
<!ATTLIST CWMMIN:StatisticsSettings %CWMMIN:StatisticsSettingsAtts;>

<!-- ========= CWMMIN:SupervisedMiningSettings ========= -->
<!ELEMENT CWMMIN:SupervisedMiningSettings.confidenceAttributeName (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:SupervisedMiningSettings.predictedAttributeName (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:SupervisedMiningSettings.costFunction (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:SupervisedMiningSettings.target (CWMMIN:MiningAttribute)*>
<!ENTITY % CWMMIN:SupervisedMiningSettingsFeatures '%CWMMIN:MiningSettingsFeatures; |
   CWMMIN:SupervisedMiningSettings.confidenceAttributeName |
   CWMMIN:SupervisedMiningSettings.predictedAttributeName |
   CWMMIN:SupervisedMiningSettings.costFunction |
   CWMMIN:SupervisedMiningSettings.target'>
<!ENTITY % CWMMIN:SupervisedMiningSettingsAtts '%CWMMIN:MiningSettingsAtts;
   confidenceAttributeName CDATA #IMPLIED
   predictedAttributeName CDATA #IMPLIED
   costFunction CDATA #IMPLIED
   target IDREFS #IMPLIED'>
<!ELEMENT CWMMIN:SupervisedMiningSettings (%CWMMIN:SupervisedMiningSettingsFeatures;)*>
<!ATTLIST CWMMIN:SupervisedMiningSettings %CWMMIN:SupervisedMiningSettingsAtts;>

<!-- ========= CWMMIN:ClassificationSettings ========= -->
<!ELEMENT CWMMIN:ClassificationSettings.costMatrix (CWMMIN:CostMatrix)*>
<!ENTITY % CWMMIN:ClassificationSettingsFeatures '%CWMMIN:SupervisedMiningSettingsFeatures; |
   CWMMIN:ClassificationSettings.costMatrix'>
<!ENTITY % CWMMIN:ClassificationSettingsAtts '%CWMMIN:SupervisedMiningSettingsAtts;
   costMatrix IDREFS #IMPLIED'>
<!ELEMENT CWMMIN:ClassificationSettings (%CWMMIN:ClassificationSettingsFeatures;)*>
<!ATTLIST CWMMIN:ClassificationSettings %CWMMIN:ClassificationSettingsAtts;>

<!-- ========= CWMMIN:RegressionSettings ========= -->
<!ENTITY % CWMMIN:RegressionSettingsFeatures '%CWMMIN:SupervisedMiningSettingsFeatures;'>
<!ENTITY % CWMMIN:RegressionSettingsAtts '%CWMMIN:SupervisedMiningSettingsAtts;'>
<!ELEMENT CWMMIN:RegressionSettings (%CWMMIN:RegressionSettingsFeatures;)*>
<!ATTLIST CWMMIN:RegressionSettings %CWMMIN:RegressionSettingsAtts;>

<!-- ========= CWMMIN:AssociationRulesSettings ========= -->
<!ELEMENT CWMMIN:AssociationRulesSettings.minimumSupport (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:AssociationRulesSettings.minimumConfidence (#PCDATA|XMI.reference)*>
<!ELEMENT CWMMIN:AssociationRulesSettings.itemId (CWMMIN:MiningAttribute)*>
<!ELEMENT CWMMIN:AssociationRulesSettings.transactionId (CWMMIN:MiningAttribute)*>
<!ENTITY % CWMMIN:AssociationRulesSettingsFeatures '%CWMMIN:MiningSettingsFeatures; |
   CWMMIN:AssociationRulesSettings.minimumSupport |
   CWMMIN:AssociationRulesSettings.minimumConfidence |
   CWMMIN:AssociationRulesSettings.itemId |
   CWMMIN:AssociationRulesSettings.transactionId'>
<!ENTITY % CWMMIN:AssociationRulesSettingsAtts '%CWMMIN:MiningSettingsAtts;
   minimumSupport CDATA #IMPLIED
   minimumConfidence CDATA #IMPLIED
   itemId IDREFS #IMPLIED
   transactionId IDREFS #IMPLIED'>
<!ELEMENT CWMMIN:AssociationRulesSettings (%CWMMIN:AssociationRulesSettingsFeatures;)*>
<!ATTLIST CWMMIN:AssociationRulesSettings %CWMMIN:AssociationRulesSettingsAtts;>

<!-- ========= CWMMIN:ApplicationAttribute ========= -->
<!ELEMENT CWMMIN:ApplicationAttribute.usageType EMPTY>
<!ATTLIST CWMMIN:ApplicationAttribute.usageType xmi.value %CWMMIN:AttributeUsage; #REQUIRED>
<!ELEMENT CWMMIN:ApplicationAttribute.attributeType EMPTY>
<!ATTLIST CWMMIN:ApplicationAttribute.attributeType xmi.value %CWMMIN:AttributeType; #REQUIRED>
<!ENTITY % CWMMIN:ApplicationAttributeFeatures '%CWM:AttributeFeatures; |
   CWMMIN:ApplicationAttribute.usageType |
   CWMMIN:ApplicationAttribute.attributeType'>
<!ENTITY % CWMMIN:ApplicationAttributeAtts '%CWM:AttributeAtts;
   usageType %CWMMIN:AttributeUsage; #IMPLIED
   attributeType %CWMMIN:AttributeType; #IMPLIED'>
<!ELEMENT CWMMIN:ApplicationAttribute (%CWMMIN:ApplicationAttributeFeatures;)*>
<!ATTLIST CWMMIN:ApplicationAttribute %CWMMIN:ApplicationAttributeAtts;>

<!-- ========= CWMMIN:OrdersCategory ========= -->
<!ELEMENT CWMMIN:OrdersCategory.ordinalAttribute (CWMMIN:OrdinalAttribute)?>
<!ELEMENT CWMMIN:OrdersCategory.category (CWMMIN:Category)?>
<!ELEMENT CWMMIN:OrdersCategory (
   CWMMIN:OrdersCategory.ordinalAttribute |
   CWMMIN:OrdersCategory.category)*>
<!ATTLIST CWMMIN:OrdersCategory %XMI.element.att; %XMI.link.att;
   ordinalAttribute IDREFS #IMPLIED
   category IDREFS #IMPLIED>

<!-- ========= CWMIV:InformationVisualization ========= -->

<!-- ========= CWMIV:RenderedObject ========= -->
<!ELEMENT CWMIV:RenderedObject.formula (CWM:ExpressionNode|CWM:ConstantNode|
   CWM:ElementNode|CWM:FeatureNode)*>
<!ELEMENT CWMIV:RenderedObject.action (#PCDATA|XMI.reference)*>
<!ELEMENT CWMIV:RenderedObject.fileName (#PCDATA|XMI.reference)*>
<!ELEMENT CWMIV:RenderedObject.type (#PCDATA|XMI.reference)*>
<!ELEMENT CWMIV:RenderedObject.url (#PCDATA|XMI.reference)*>
<!ELEMENT CWMIV:RenderedObject.rendering (CWMIV:Rendering)*>
<!ELEMENT CWMIV:RenderedObject.defaultRendering (CWMIV:Rendering)*>
<!ELEMENT CWMIV:RenderedObject.component (CWMIV:RenderedObject)*>
<!ELEMENT CWMIV:RenderedObject.composite (CWMIV:RenderedObject)*>
<!ELEMENT CWMIV:RenderedObject.neighbor (CWMIV:RenderedObject)*>
<!ELEMENT CWMIV:RenderedObject.referencingNeighbor (CWMIV:RenderedObject)*>
<!ELEMENT CWMIV:RenderedObject.modelElement (CWM:ModelElement)*>
<!ELEMENT CWMIV:RenderedObject.renderedObjectSet (CWMIV:RenderedObjectSet)*>
<!ENTITY % CWMIV:RenderedObjectFeatures '%CWM:ClassifierFeatures; |
   CWMIV:RenderedObject.formula |
   CWMIV:RenderedObject.action |
   CWMIV:RenderedObject.fileName |
   CWMIV:RenderedObject.type |
   CWMIV:RenderedObject.url |
   CWMIV:RenderedObject.rendering |
   CWMIV:RenderedObject.defaultRendering |
   CWMIV:RenderedObject.component |
   CWMIV:RenderedObject.composite |
   CWMIV:RenderedObject.neighbor |
   CWMIV:RenderedObject.referencingNeighbor |
   CWMIV:RenderedObject.modelElement |
   CWMIV:RenderedObject.renderedObjectSet'>
<!ENTITY % CWMIV:RenderedObjectAtts '%CWM:ClassifierAtts;
   action CDATA #IMPLIED
   fileName CDATA #IMPLIED
   type CDATA #IMPLIED
   url CDATA #IMPLIED
   rendering IDREFS #IMPLIED
   defaultRendering IDREFS #IMPLIED
   component IDREFS #IMPLIED
   composite IDREFS #IMPLIED
   neighbor IDREFS #IMPLIED
   referencingNeighbor IDREFS #IMPLIED
   modelElement IDREFS #IMPLIED
   renderedObjectSet IDREFS #IMPLIED'>
<!ELEMENT CWMIV:RenderedObject (%CWMIV:RenderedObjectFeatures;)*>
<!ATTLIST CWMIV:RenderedObject %CWMIV:RenderedObjectAtts;>

<!-- ========= CWMIV:RenderedObjectSet ========= -->
<!ELEMENT CWMIV:RenderedObjectSet.renderedObject (CWMIV:RenderedObject)*>
<!ELEMENT CWMIV:RenderedObjectSet.rendering (CWMIV:Rendering|
   CWMIV:XSLRendering)*>
<!ENTITY % CWMIV:RenderedObjectSetFeatures '%CWM:PackageFeatures; |
   CWMIV:RenderedObjectSet.renderedObject |
   CWMIV:RenderedObjectSet.rendering'>
<!ENTITY % CWMIV:RenderedObjectSetAtts '%CWM:PackageAtts;'>
<!ELEMENT CWMIV:RenderedObjectSet (%CWMIV:RenderedObjectSetFeatures;)*>
<!ATTLIST CWMIV:RenderedObjectSet %CWMIV:RenderedObjectSetAtts;>

<!-- ========= CWMIV:Rendering ========= -->
<!ELEMENT CWMIV:Rendering.formula (CWM:ExpressionNode|CWM:ConstantNode|
   CWM:ElementNode|CWM:FeatureNode)*>
<!ELEMENT CWMIV:Rendering.action (#PCDATA|XMI.reference)*>
<!ELEMENT CWMIV:Rendering.fileName (#PCDATA|XMI.reference)*>
<!ELEMENT CWMIV:Rendering.type (#PCDATA|XMI.reference)*>
<!ELEMENT CWMIV:Rendering.url (#PCDATA|XMI.reference)*>
<!ELEMENT CWMIV:Rendering.renderedObject (CWMIV:RenderedObject)*>
<!ELEMENT CWMIV:Rendering.defaultedRenderedObject (CWMIV:RenderedObject)*>
<!ELEMENT CWMIV:Rendering.renderedObjectSet (CWMIV:RenderedObjectSet)*>
<!ENTITY % CWMIV:RenderingFeatures '%CWM:FeatureFeatures; |
   CWMIV:Rendering.formula |
   CWMIV:Rendering.action |
   CWMIV:Rendering.fileName |
   CWMIV:Rendering.type |
   CWMIV:Rendering.url |
   CWMIV:Rendering.renderedObject |
   CWMIV:Rendering.defaultedRenderedObject |
   CWMIV:Rendering.renderedObjectSet'>
<!ENTITY % CWMIV:RenderingAtts '%CWM:FeatureAtts;
   action CDATA #IMPLIED
   fileName CDATA #IMPLIED
   type CDATA #IMPLIED
   url CDATA #IMPLIED
   renderedObject IDREFS #IMPLIED
   defaultedRenderedObject IDREFS #IMPLIED
   renderedObjectSet IDREFS #IMPLIED'>
<!ELEMENT CWMIV:Rendering (%CWMIV:RenderingFeatures;)*>
<!ATTLIST CWMIV:Rendering %CWMIV:RenderingAtts;>

<!-- ========= CWMIV:XSLRendering ========= -->
<!ENTITY % CWMIV:XSLRenderingFeatures '%CWMIV:RenderingFeatures;'>
<!ENTITY % CWMIV:XSLRenderingAtts '%CWMIV:RenderingAtts;'>
<!ELEMENT CWMIV:XSLRendering (%CWMIV:XSLRenderingFeatures;)*>
<!ATTLIST CWMIV:XSLRendering %CWMIV:XSLRenderingAtts;>

<!-- ========= CWMBUS:BusinessNomenclature ========= -->

<!-- ========= CWMBUS:VocabularyElement ========= -->
<!ELEMENT CWMBUS:VocabularyElement.definition (#PCDATA|XMI.reference)*>
<!ELEMENT CWMBUS:VocabularyElement.example (#PCDATA|XMI.reference)*>
<!ELEMENT CWMBUS:VocabularyElement.usage (#PCDATA|XMI.reference)*>
<!ELEMENT CWMBUS:VocabularyElement.modelElement (CWM:ModelElement)*>
<!ENTITY % CWMBUS:VocabularyElementFeatures '%CWM:ModelElementFeatures; |
   CWMBUS:VocabularyElement.definition |
   CWMBUS:VocabularyElement.example |
   CWMBUS:VocabularyElement.usage |
   CWMBUS:VocabularyElement.modelElement'>
<!ENTITY % CWMBUS:VocabularyElementAtts '%CWM:ModelElementAtts;
   definition CDATA #IMPLIED
   example CDATA #IMPLIED
   usage CDATA #IMPLIED
   modelElement IDREFS #IMPLIED'>
<!ELEMENT CWMBUS:VocabularyElement (%CWMBUS:VocabularyElementFeatures;)*>
<!ATTLIST CWMBUS:VocabularyElement %CWMBUS:VocabularyElementAtts;>

<!-- ========= CWMBUS:Nomenclature ========= -->
<!ENTITY % CWMBUS:NomenclatureFeatures '%CWM:PackageFeatures;'>
<!ENTITY % CWMBUS:NomenclatureAtts '%CWM:PackageAtts;'>
<!ELEMENT CWMBUS:Nomenclature (%CWMBUS:NomenclatureFeatures;)*>
<!ATTLIST CWMBUS:Nomenclature %CWMBUS:NomenclatureAtts;>

<!-- ========= CWMBUS:Taxonomy ========= -->
<!ELEMENT CWMBUS:Taxonomy.domain (CWM:Namespace)*>
<!ELEMENT CWMBUS:Taxonomy.concept (CWM:ModelElement|CWM:Namespace|
   CWM:Classifier|CWM:Class|CWM:Association|CWMRDB:ColumnSet|
   CWMRDB:NamedColumnSet|CWMRDB:Table|CWMRDB:View|CWMRDB:QueryColumnSet|
   CWMRDB:SQLStructuredType|CWMREC:RecordDef|CWMMDB:Dimension|
   CWMXML:ElementType|CWMOLAP:Cube|CWMOLAP:CubeDeployment|
   CWMOLAP:CubeDimensionAssociation|CWMOLAP:CubeRegion|CWMOLAP:Dimension|
   CWMOLAP:DimensionDeployment|CWMOLAP:Hierarchy|CWMOLAP:LevelBasedHierarchy|
   CWMOLAP:ValueBasedHierarchy|CWMOLAP:HierarchyLevelAssociation|
   CWMOLAP:MemberSelectionGroup|CWMOLAP:MemberSelection|CWMOLAP:Level|
   CWMOLAP:CodedLevel|CWMMIN:ApplicationInputSpecification|
   CWMMIN:CategoryHierarchy|CWMMIN:CostMatrix|CWMMIN:MiningDataSpecification|
   CWMMIN:MiningModel|CWMMIN:SupervisedMiningModel|CWMMIN:MiningModelResult|
   CWMMIN:MiningSettings|CWMMIN:ClusteringSettings|CWMMIN:StatisticsSettings|
   CWMMIN:SupervisedMiningSettings|CWMMIN:ClassificationSettings|
   CWMMIN:RegressionSettings|CWMMIN:AssociationRulesSettings|CWM:DataType|
   CWM:Enumeration|CWM:TypeAlias|CWMRDB:SQLDistinctType|CWMRDB:SQLSimpleType|
   CWM:Subsystem|CWM:SoftwareSystem|CWMTFM:TransformationActivity|
   CWM:Interface|CWM:Union|CWM:Component|CWMTFM:TransformationTask|
   CWMRDB:SQLDataType|CWMREC:Group|CWMIV:RenderedObject|CWM:Package|CWM:Model|
   CWM:Extent|CWMRDB:RowSet|CWMREC:RecordSet|CWMMDB:MemberSet|CWMXML:Document|
   CWM:DeployedComponent|CWM:DataManager|CWM:DataProvider|
   CWM:DeployedSoftwareSystem|CWM:TypeSystem|CWMRDB:Catalog|CWMRDB:Schema|
   CWMREC:RecordFile|CWMMDB:Schema|CWMXML:Schema|CWMOLAP:DeploymentGroup|
   CWMOLAP:Schema|CWMIV:RenderedObjectSet|CWMBUS:Nomenclature|CWMBUS:Taxonomy|
   CWMBUS:Glossary|CWMBUS:BusinessDomain|CWMWHP:CustomCalendar|
   CWMWHP:ProcessPackage|CWM:ResponsibleParty|CWM:Description|CWM:Document|
   CWM:Machine|CWMTFM:Transformation|CWMTFM:TransformationMap|
   CWMOLAP:ContentMap|CWMOLAP:StructureMap|CWMTFM:TransformationTree|
   CWMTFM:ClassifierMap|CWM:Feature|CWM:StructuralFeature|CWM:Attribute|
   CWM:UnionMember|CWMRDB:Column|CWMREC:Field|CWMREC:FixedOffsetField|
   CWMMDB:DimensionedObject|CWMXML:Attribute|CWMXML:ElementTypeReference|
   CWMXML:Text|CWMOLAP:Measure|CWMMIN:MiningAttribute|CWMMIN:NumericAttribute|
   CWMMIN:CategoricalAttribute|CWMMIN:OrdinalAttribute|
   CWMMIN:ApplicationAttribute|CWM:AssociationEnd|CWM:BehavioralFeature|
   CWM:Method|CWMRDB:Procedure|CWM:Operation|CWMIV:Rendering|
   CWMIV:XSLRendering|CWM:Constraint|CWMRDB:CheckConstraint|
   CWMTFM:PrecedenceConstraint|CWM:Dependency|CWM:PackageUsage|
   CWMTFM:TransformationUse|CWMTFM:StepPrecedence|CWM:Stereotype|CWM:Argument|
   CWM:CallAction|CWM:Event|CWMWHP:WarehouseEvent|CWMWHP:ScheduleEvent|
   CWMWHP:PointInTimeEvent|CWMWHP:CustomCalendarEvent|
   CWMWHP:RecurringPointInTimeEvent|CWMWHP:IntervalEvent|CWMWHP:ExternalEvent|
   CWMWHP:InternalEvent|CWMWHP:CascadeEvent|CWMWHP:RetryEvent|CWM:Parameter|
   CWMRDB:SQLParameter|CWM:Generalization|CWM:Instance|CWM:DataValue|
   CWMRDB:ColumnValue|CWMREC:FieldValue|CWMMDB:MemberValue|CWM:Object|
   CWMRDB:Row|CWMREC:Record|CWMMDB:Member|CWMXML:Element|CWM:Slot|
   CWM:Telephone|CWM:Email|CWM:Location|CWM:Site|CWM:Contact|
   CWM:ResourceLocator|CWM:EnumerationLiteral|CWM:UniqueKey|
   CWMRDB:UniqueConstraint|CWMRDB:PrimaryKey|CWM:Index|CWMRDB:SQLIndex|
   CWM:KeyRelationship|CWMRDB:ForeignKey|CWM:IndexedFeature|
   CWMRDB:SQLIndexColumn|CWM:ProviderConnection|CWM:TypeMapping|
   CWMRDB:Trigger|CWMXML:Content|CWMXML:ElementContent|CWMXML:MixedContent|
   CWMTFM:DataObjectSet|CWMTFM:TransformationStep|CWMTFM:FeatureMap|
   CWMTFM:ClassifierFeatureMap|CWMMIN:AttributeUsageRelation|CWMMIN:Category|
   CWMBUS:VocabularyElement|CWMBUS:Concept|CWMBUS:Term|CWMWHP:CalendarDate|
   CWMWHP:WarehouseProcess|CWMWHP:WarehouseStep|CWMWHP:WarehouseActivity|
   CWMWHO:Measurement|CWMWHO:ChangeRequest|CWMWHO:TransformationExecution|
   CWMWHO:ActivityExecution|CWMWHO:StepExecution)*>
<!ELEMENT CWMBUS:Taxonomy.subtaxonomy (CWMBUS:Nomenclature|CWMBUS:Taxonomy|
   CWMBUS:Glossary)*>
<!ENTITY % CWMBUS:TaxonomyFeatures '%CWMBUS:NomenclatureFeatures; |
   CWMBUS:Taxonomy.domain |
   CWMBUS:Taxonomy.concept |
   CWMBUS:Taxonomy.subtaxonomy'>
<!ENTITY % CWMBUS:TaxonomyAtts '%CWMBUS:NomenclatureAtts;
   domain IDREFS #IMPLIED'>
<!ELEMENT CWMBUS:Taxonomy (%CWMBUS:TaxonomyFeatures;)*>
<!ATTLIST CWMBUS:Taxonomy %CWMBUS:TaxonomyAtts;>

<!-- ========= CWMBUS:Glossary ========= -->
<!ELEMENT CWMBUS:Glossary.language (#PCDATA|XMI.reference)*>
<!ELEMENT CWMBUS:Glossary.taxonomy (CWMBUS:Taxonomy)*>
<!ELEMENT CWMBUS:Glossary.term (CWM:ModelElement|CWM:Namespace|CWM:Classifier|
   CWM:Class|CWM:Association|CWMRDB:ColumnSet|CWMRDB:NamedColumnSet|
   CWMRDB:Table|CWMRDB:View|CWMRDB:QueryColumnSet|CWMRDB:SQLStructuredType|
   CWMREC:RecordDef|CWMMDB:Dimension|CWMXML:ElementType|CWMOLAP:Cube|
   CWMOLAP:CubeDeployment|CWMOLAP:CubeDimensionAssociation|CWMOLAP:CubeRegion|
   CWMOLAP:Dimension|CWMOLAP:DimensionDeployment|CWMOLAP:Hierarchy|
   CWMOLAP:LevelBasedHierarchy|CWMOLAP:ValueBasedHierarchy|
   CWMOLAP:HierarchyLevelAssociation|CWMOLAP:MemberSelectionGroup|
   CWMOLAP:MemberSelection|CWMOLAP:Level|CWMOLAP:CodedLevel|
   CWMMIN:ApplicationInputSpecification|CWMMIN:CategoryHierarchy|
   CWMMIN:CostMatrix|CWMMIN:MiningDataSpecification|CWMMIN:MiningModel|
   CWMMIN:SupervisedMiningModel|CWMMIN:MiningModelResult|
   CWMMIN:MiningSettings|CWMMIN:ClusteringSettings|CWMMIN:StatisticsSettings|
   CWMMIN:SupervisedMiningSettings|CWMMIN:ClassificationSettings|
   CWMMIN:RegressionSettings|CWMMIN:AssociationRulesSettings|CWM:DataType|
   CWM:Enumeration|CWM:TypeAlias|CWMRDB:SQLDistinctType|CWMRDB:SQLSimpleType|
   CWM:Subsystem|CWM:SoftwareSystem|CWMTFM:TransformationActivity|
   CWM:Interface|CWM:Union|CWM:Component|CWMTFM:TransformationTask|
   CWMRDB:SQLDataType|CWMREC:Group|CWMIV:RenderedObject|CWM:Package|CWM:Model|
   CWM:Extent|CWMRDB:RowSet|CWMREC:RecordSet|CWMMDB:MemberSet|CWMXML:Document|
   CWM:DeployedComponent|CWM:DataManager|CWM:DataProvider|
   CWM:DeployedSoftwareSystem|CWM:TypeSystem|CWMRDB:Catalog|CWMRDB:Schema|
   CWMREC:RecordFile|CWMMDB:Schema|CWMXML:Schema|CWMOLAP:DeploymentGroup|
   CWMOLAP:Schema|CWMIV:RenderedObjectSet|CWMBUS:Nomenclature|CWMBUS:Taxonomy|
   CWMBUS:Glossary|CWMBUS:BusinessDomain|CWMWHP:CustomCalendar|
   CWMWHP:ProcessPackage|CWM:ResponsibleParty|CWM:Description|CWM:Document|
   CWM:Machine|CWMTFM:Transformation|CWMTFM:TransformationMap|
   CWMOLAP:ContentMap|CWMOLAP:StructureMap|CWMTFM:TransformationTree|
   CWMTFM:ClassifierMap|CWM:Feature|CWM:StructuralFeature|CWM:Attribute|
   CWM:UnionMember|CWMRDB:Column|CWMREC:Field|CWMREC:FixedOffsetField|
   CWMMDB:DimensionedObject|CWMXML:Attribute|CWMXML:ElementTypeReference|
   CWMXML:Text|CWMOLAP:Measure|CWMMIN:MiningAttribute|CWMMIN:NumericAttribute|
   CWMMIN:CategoricalAttribute|CWMMIN:OrdinalAttribute|
   CWMMIN:ApplicationAttribute|CWM:AssociationEnd|CWM:BehavioralFeature|
   CWM:Method|CWMRDB:Procedure|CWM:Operation|CWMIV:Rendering|
   CWMIV:XSLRendering|CWM:Constraint|CWMRDB:CheckConstraint|
   CWMTFM:PrecedenceConstraint|CWM:Dependency|CWM:PackageUsage|
   CWMTFM:TransformationUse|CWMTFM:StepPrecedence|CWM:Stereotype|CWM:Argument|
   CWM:CallAction|CWM:Event|CWMWHP:WarehouseEvent|CWMWHP:ScheduleEvent|
   CWMWHP:PointInTimeEvent|CWMWHP:CustomCalendarEvent|
   CWMWHP:RecurringPointInTimeEvent|CWMWHP:IntervalEvent|CWMWHP:ExternalEvent|
   CWMWHP:InternalEvent|CWMWHP:CascadeEvent|CWMWHP:RetryEvent|CWM:Parameter|
   CWMRDB:SQLParameter|CWM:Generalization|CWM:Instance|CWM:DataValue|
   CWMRDB:ColumnValue|CWMREC:FieldValue|CWMMDB:MemberValue|CWM:Object|
   CWMRDB:Row|CWMREC:Record|CWMMDB:Member|CWMXML:Element|CWM:Slot|
   CWM:Telephone|CWM:Email|CWM:Location|CWM:Site|CWM:Contact|
   CWM:ResourceLocator|CWM:EnumerationLiteral|CWM:UniqueKey|
   CWMRDB:UniqueConstraint|CWMRDB:PrimaryKey|CWM:Index|CWMRDB:SQLIndex|
   CWM:KeyRelationship|CWMRDB:ForeignKey|CWM:IndexedFeature|
   CWMRDB:SQLIndexColumn|CWM:ProviderConnection|CWM:TypeMapping|
   CWMRDB:Trigger|CWMXML:Content|CWMXML:ElementContent|CWMXML:MixedContent|
   CWMTFM:DataObjectSet|CWMTFM:TransformationStep|CWMTFM:FeatureMap|
   CWMTFM:ClassifierFeatureMap|CWMMIN:AttributeUsageRelation|CWMMIN:Category|
   CWMBUS:VocabularyElement|CWMBUS:Concept|CWMBUS:Term|CWMWHP:CalendarDate|
   CWMWHP:WarehouseProcess|CWMWHP:WarehouseStep|CWMWHP:WarehouseActivity|
   CWMWHO:Measurement|CWMWHO:ChangeRequest|CWMWHO:TransformationExecution|
   CWMWHO:ActivityExecution|CWMWHO:StepExecution)*>
<!ELEMENT CWMBUS:Glossary.subglossary (CWMBUS:Nomenclature|CWMBUS:Taxonomy|
   CWMBUS:Glossary)*>
<!ENTITY % CWMBUS:GlossaryFeatures '%CWMBUS:NomenclatureFeatures; |
   CWMBUS:Glossary.language |
   CWMBUS:Glossary.taxonomy |
   CWMBUS:Glossary.term |
   CWMBUS:Glossary.subglossary'>
<!ENTITY % CWMBUS:GlossaryAtts '%CWMBUS:NomenclatureAtts;
   language CDATA #IMPLIED
   taxonomy IDREFS #IMPLIED'>
<!ELEMENT CWMBUS:Glossary (%CWMBUS:GlossaryFeatures;)*>
<!ATTLIST CWMBUS:Glossary %CWMBUS:GlossaryAtts;>

<!-- ========= CWMBUS:BusinessDomain ========= -->
<!ELEMENT CWMBUS:BusinessDomain.taxonomy (CWM:ModelElement|CWM:Namespace|
   CWM:Classifier|CWM:Class|CWM:Association|CWMRDB:ColumnSet|
   CWMRDB:NamedColumnSet|CWMRDB:Table|CWMRDB:View|CWMRDB:QueryColumnSet|
   CWMRDB:SQLStructuredType|CWMREC:RecordDef|CWMMDB:Dimension|
   CWMXML:ElementType|CWMOLAP:Cube|CWMOLAP:CubeDeployment|
   CWMOLAP:CubeDimensionAssociation|CWMOLAP:CubeRegion|CWMOLAP:Dimension|
   CWMOLAP:DimensionDeployment|CWMOLAP:Hierarchy|CWMOLAP:LevelBasedHierarchy|
   CWMOLAP:ValueBasedHierarchy|CWMOLAP:HierarchyLevelAssociation|
   CWMOLAP:MemberSelectionGroup|CWMOLAP:MemberSelection|CWMOLAP:Level|
   CWMOLAP:CodedLevel|CWMMIN:ApplicationInputSpecification|
   CWMMIN:CategoryHierarchy|CWMMIN:CostMatrix|CWMMIN:MiningDataSpecification|
   CWMMIN:MiningModel|CWMMIN:SupervisedMiningModel|CWMMIN:MiningModelResult|
   CWMMIN:MiningSettings|CWMMIN:ClusteringSettings|CWMMIN:StatisticsSettings|
   CWMMIN:SupervisedMiningSettings|CWMMIN:ClassificationSettings|
   CWMMIN:RegressionSettings|CWMMIN:AssociationRulesSettings|CWM:DataType|
   CWM:Enumeration|CWM:TypeAlias|CWMRDB:SQLDistinctType|CWMRDB:SQLSimpleType|
   CWM:Subsystem|CWM:SoftwareSystem|CWMTFM:TransformationActivity|
   CWM:Interface|CWM:Union|CWM:Component|CWMTFM:TransformationTask|
   CWMRDB:SQLDataType|CWMREC:Group|CWMIV:RenderedObject|CWM:Package|CWM:Model|
   CWM:Extent|CWMRDB:RowSet|CWMREC:RecordSet|CWMMDB:MemberSet|CWMXML:Document|
   CWM:DeployedComponent|CWM:DataManager|CWM:DataProvider|
   CWM:DeployedSoftwareSystem|CWM:TypeSystem|CWMRDB:Catalog|CWMRDB:Schema|
   CWMREC:RecordFile|CWMMDB:Schema|CWMXML:Schema|CWMOLAP:DeploymentGroup|
   CWMOLAP:Schema|CWMIV:RenderedObjectSet|CWMBUS:Nomenclature|CWMBUS:Taxonomy|
   CWMBUS:Glossary|CWMBUS:BusinessDomain|CWMWHP:CustomCalendar|
   CWMWHP:ProcessPackage|CWM:ResponsibleParty|CWM:Description|CWM:Document|
   CWM:Machine|CWMTFM:Transformation|CWMTFM:TransformationMap|
   CWMOLAP:ContentMap|CWMOLAP:StructureMap|CWMTFM:TransformationTree|
   CWMTFM:ClassifierMap|CWM:Feature|CWM:StructuralFeature|CWM:Attribute|
   CWM:UnionMember|CWMRDB:Column|CWMREC:Field|CWMREC:FixedOffsetField|
   CWMMDB:DimensionedObject|CWMXML:Attribute|CWMXML:ElementTypeReference|
   CWMXML:Text|CWMOLAP:Measure|CWMMIN:MiningAttribute|CWMMIN:NumericAttribute|
   CWMMIN:CategoricalAttribute|CWMMIN:OrdinalAttribute|
   CWMMIN:ApplicationAttribute|CWM:AssociationEnd|CWM:BehavioralFeature|
   CWM:Method|CWMRDB:Procedure|CWM:Operation|CWMIV:Rendering|
   CWMIV:XSLRendering|CWM:Constraint|CWMRDB:CheckConstraint|
   CWMTFM:PrecedenceConstraint|CWM:Dependency|CWM:PackageUsage|
   CWMTFM:TransformationUse|CWMTFM:StepPrecedence|CWM:Stereotype|CWM:Argument|
   CWM:CallAction|CWM:Event|CWMWHP:WarehouseEvent|CWMWHP:ScheduleEvent|
   CWMWHP:PointInTimeEvent|CWMWHP:CustomCalendarEvent|
   CWMWHP:RecurringPointInTimeEvent|CWMWHP:IntervalEvent|CWMWHP:ExternalEvent|
   CWMWHP:InternalEvent|CWMWHP:CascadeEvent|CWMWHP:RetryEvent|CWM:Parameter|
   CWMRDB:SQLParameter|CWM:Generalization|CWM:Instance|CWM:DataValue|
   CWMRDB:ColumnValue|CWMREC:FieldValue|CWMMDB:MemberValue|CWM:Object|
   CWMRDB:Row|CWMREC:Record|CWMMDB:Member|CWMXML:Element|CWM:Slot|
   CWM:Telephone|CWM:Email|CWM:Location|CWM:Site|CWM:Contact|
   CWM:ResourceLocator|CWM:EnumerationLiteral|CWM:UniqueKey|
   CWMRDB:UniqueConstraint|CWMRDB:PrimaryKey|CWM:Index|CWMRDB:SQLIndex|
   CWM:KeyRelationship|CWMRDB:ForeignKey|CWM:IndexedFeature|
   CWMRDB:SQLIndexColumn|CWM:ProviderConnection|CWM:TypeMapping|
   CWMRDB:Trigger|CWMXML:Content|CWMXML:ElementContent|CWMXML:MixedContent|
   CWMTFM:DataObjectSet|CWMTFM:TransformationStep|CWMTFM:FeatureMap|
   CWMTFM:ClassifierFeatureMap|CWMMIN:AttributeUsageRelation|CWMMIN:Category|
   CWMBUS:VocabularyElement|CWMBUS:Concept|CWMBUS:Term|CWMWHP:CalendarDate|
   CWMWHP:WarehouseProcess|CWMWHP:WarehouseStep|CWMWHP:WarehouseActivity|
   CWMWHO:Measurement|CWMWHO:ChangeRequest|CWMWHO:TransformationExecution|
   CWMWHO:ActivityExecution|CWMWHO:StepExecution)*>
<!ENTITY % CWMBUS:BusinessDomainFeatures '%CWM:PackageFeatures; |
   CWMBUS:BusinessDomain.taxonomy'>
<!ENTITY % CWMBUS:BusinessDomainAtts '%CWM:PackageAtts;'>
<!ELEMENT CWMBUS:BusinessDomain (%CWMBUS:BusinessDomainFeatures;)*>
<!ATTLIST CWMBUS:BusinessDomain %CWMBUS:BusinessDomainAtts;>

<!-- ========= CWMBUS:Concept ========= -->
<!ELEMENT CWMBUS:Concept.taxonomy (CWM:Namespace)*>
<!ELEMENT CWMBUS:Concept.relatedConcept (CWMBUS:Concept)*>
<!ENTITY % CWMBUS:ConceptFeatures '%CWMBUS:VocabularyElementFeatures; |
   CWMBUS:Concept.taxonomy |
   CWMBUS:Concept.relatedConcept'>
<!ENTITY % CWMBUS:ConceptAtts '%CWMBUS:VocabularyElementAtts;
   taxonomy IDREFS #IMPLIED
   relatedConcept IDREFS #IMPLIED'>
<!ELEMENT CWMBUS:Concept (%CWMBUS:ConceptFeatures;)*>
<!ATTLIST CWMBUS:Concept %CWMBUS:ConceptAtts;>

<!-- ========= CWMBUS:Term ========= -->
<!ELEMENT CWMBUS:Term.glossary (CWM:Namespace)*>
<!ELEMENT CWMBUS:Term.concept (CWMBUS:Concept)*>
<!ELEMENT CWMBUS:Term.relatedTerm (CWMBUS:Term)*>
<!ELEMENT CWMBUS:Term.preferredTerm (CWMBUS:Term)*>
<!ELEMENT CWMBUS:Term.narrowerTerm (CWMBUS:Term)*>
<!ENTITY % CWMBUS:TermFeatures '%CWMBUS:VocabularyElementFeatures; |
   CWMBUS:Term.glossary |
   CWMBUS:Term.concept |
   CWMBUS:Term.relatedTerm |
   CWMBUS:Term.preferredTerm |
   CWMBUS:Term.narrowerTerm'>
<!ENTITY % CWMBUS:TermAtts '%CWMBUS:VocabularyElementAtts;
   glossary IDREFS #IMPLIED
   concept IDREFS #IMPLIED
   relatedTerm IDREFS #IMPLIED
   preferredTerm IDREFS #IMPLIED
   narrowerTerm IDREFS #IMPLIED'>
<!ELEMENT CWMBUS:Term (%CWMBUS:TermFeatures;)*>
<!ATTLIST CWMBUS:Term %CWMBUS:TermAtts;>

<!-- ========= CWMBUS:RelatedVocabularyElements ========= -->
<!ELEMENT CWMBUS:RelatedVocabularyElements.relatedElement (CWMBUS:VocabularyElement)?>
<!ELEMENT CWMBUS:RelatedVocabularyElements.element (CWMBUS:VocabularyElement)?>
<!ELEMENT CWMBUS:RelatedVocabularyElements (
   CWMBUS:RelatedVocabularyElements.relatedElement |
   CWMBUS:RelatedVocabularyElements.element)*>
<!ATTLIST CWMBUS:RelatedVocabularyElements %XMI.element.att; %XMI.link.att;
   relatedElement IDREFS #IMPLIED
   element IDREFS #IMPLIED>

<!-- ========= CWMBUS:NomenclatureHierarchy ========= -->
<!ELEMENT CWMBUS:NomenclatureHierarchy.parent (CWMBUS:Nomenclature)?>
<!ELEMENT CWMBUS:NomenclatureHierarchy.child (CWMBUS:Nomenclature|
   CWMBUS:Taxonomy|CWMBUS:Glossary)?>
<!ELEMENT CWMBUS:NomenclatureHierarchy (
   CWMBUS:NomenclatureHierarchy.parent |
   CWMBUS:NomenclatureHierarchy.child)*>
<!ATTLIST CWMBUS:NomenclatureHierarchy %XMI.element.att; %XMI.link.att;
   parent IDREFS #IMPLIED
   child IDREFS #IMPLIED>

<!-- ========= CWMWHP:WarehouseProcess ========= -->
<!ENTITY % CWMWHP:RecurringType '(everyYear|everyMonth|everyWeek|everyDay|
   everyHour|everyMinute)'>
<!ENTITY % CWMWHP:DayOfWeek '(monday|tuesday|wednesday|thursday|friday|
   saturday|sunday|workingDay|nonworkingDay)'>
<!ENTITY % CWMWHP:WaitRuleType '(waitForAll|waitForAny)'>

<!-- ========= CWMWHP:DataType ========= -->

<!-- ========= CWMWHP:Events ========= -->

<!-- ========= CWMWHP:WarehouseEvent ========= -->
<!ELEMENT CWMWHP:WarehouseEvent.warehouseProcess (CWMWHP:WarehouseProcess)*>
<!ENTITY % CWMWHP:WarehouseEventFeatures '%CWM:EventFeatures; |
   CWMWHP:WarehouseEvent.warehouseProcess'>
<!ENTITY % CWMWHP:WarehouseEventAtts '%CWM:EventAtts;
   warehouseProcess IDREFS #IMPLIED'>
<!ELEMENT CWMWHP:WarehouseEvent (%CWMWHP:WarehouseEventFeatures;)*>
<!ATTLIST CWMWHP:WarehouseEvent %CWMWHP:WarehouseEventAtts;>

<!-- ========= CWMWHP:ScheduleEvent ========= -->
<!ENTITY % CWMWHP:ScheduleEventFeatures '%CWMWHP:WarehouseEventFeatures;'>
<!ENTITY % CWMWHP:ScheduleEventAtts '%CWMWHP:WarehouseEventAtts;'>
<!ELEMENT CWMWHP:ScheduleEvent (%CWMWHP:ScheduleEventFeatures;)*>
<!ATTLIST CWMWHP:ScheduleEvent %CWMWHP:ScheduleEventAtts;>

<!-- ========= CWMWHP:PointInTimeEvent ========= -->
<!ENTITY % CWMWHP:PointInTimeEventFeatures '%CWMWHP:ScheduleEventFeatures;'>
<!ENTITY % CWMWHP:PointInTimeEventAtts '%CWMWHP:ScheduleEventAtts;'>
<!ELEMENT CWMWHP:PointInTimeEvent (%CWMWHP:PointInTimeEventFeatures;)*>
<!ATTLIST CWMWHP:PointInTimeEvent %CWMWHP:PointInTimeEventAtts;>

<!-- ========= CWMWHP:CustomCalendarEvent ========= -->
<!ELEMENT CWMWHP:CustomCalendarEvent.customCalendar (CWMWHP:CustomCalendar)*>
<!ENTITY % CWMWHP:CustomCalendarEventFeatures '%CWMWHP:PointInTimeEventFeatures; |
   CWMWHP:CustomCalendarEvent.customCalendar'>
<!ENTITY % CWMWHP:CustomCalendarEventAtts '%CWMWHP:PointInTimeEventAtts;
   customCalendar IDREFS #IMPLIED'>
<!ELEMENT CWMWHP:CustomCalendarEvent (%CWMWHP:CustomCalendarEventFeatures;)*>
<!ATTLIST CWMWHP:CustomCalendarEvent %CWMWHP:CustomCalendarEventAtts;>

<!-- ========= CWMWHP:CustomCalendar ========= -->
<!ELEMENT CWMWHP:CustomCalendar.customCalendarEvent (CWMWHP:CustomCalendarEvent)*>
<!ENTITY % CWMWHP:CustomCalendarFeatures '%CWM:PackageFeatures; |
   CWMWHP:CustomCalendar.customCalendarEvent'>
<!ENTITY % CWMWHP:CustomCalendarAtts '%CWM:PackageAtts;
   customCalendarEvent IDREFS #IMPLIED'>
<!ELEMENT CWMWHP:CustomCalendar (%CWMWHP:CustomCalendarFeatures;)*>
<!ATTLIST CWMWHP:CustomCalendar %CWMWHP:CustomCalendarAtts;>

<!-- ========= CWMWHP:CalendarDate ========= -->
<!ELEMENT CWMWHP:CalendarDate.specificDate (#PCDATA|XMI.reference)*>
<!ENTITY % CWMWHP:CalendarDateFeatures '%CWM:ModelElementFeatures; |
   CWMWHP:CalendarDate.specificDate'>
<!ENTITY % CWMWHP:CalendarDateAtts '%CWM:ModelElementAtts;
   specificDate CDATA #IMPLIED'>
<!ELEMENT CWMWHP:CalendarDate (%CWMWHP:CalendarDateFeatures;)*>
<!ATTLIST CWMWHP:CalendarDate %CWMWHP:CalendarDateAtts;>

<!-- ========= CWMWHP:IntervalEvent ========= -->
<!ELEMENT CWMWHP:IntervalEvent.duration (#PCDATA|XMI.reference)*>
<!ENTITY % CWMWHP:IntervalEventFeatures '%CWMWHP:ScheduleEventFeatures; |
   CWMWHP:IntervalEvent.duration'>
<!ENTITY % CWMWHP:IntervalEventAtts '%CWMWHP:ScheduleEventAtts;
   duration CDATA #IMPLIED'>
<!ELEMENT CWMWHP:IntervalEvent (%CWMWHP:IntervalEventFeatures;)*>
<!ATTLIST CWMWHP:IntervalEvent %CWMWHP:IntervalEventAtts;>

<!-- ========= CWMWHP:ExternalEvent ========= -->
<!ELEMENT CWMWHP:ExternalEvent.description (#PCDATA|XMI.reference)*>
<!ENTITY % CWMWHP:ExternalEventFeatures '%CWMWHP:WarehouseEventFeatures; |
   CWMWHP:ExternalEvent.description'>
<!ENTITY % CWMWHP:ExternalEventAtts '%CWMWHP:WarehouseEventAtts;
   description CDATA #IMPLIED'>
<!ELEMENT CWMWHP:ExternalEvent (%CWMWHP:ExternalEventFeatures;)*>
<!ATTLIST CWMWHP:ExternalEvent %CWMWHP:ExternalEventAtts;>

<!-- ========= CWMWHP:InternalEvent ========= -->
<!ELEMENT CWMWHP:InternalEvent.condition (CWM:BooleanExpression)*>
<!ELEMENT CWMWHP:InternalEvent.triggeringWP (CWMWHP:WarehouseProcess)*>
<!ENTITY % CWMWHP:InternalEventFeatures '%CWMWHP:WarehouseEventFeatures; |
   CWMWHP:InternalEvent.condition |
   CWMWHP:InternalEvent.triggeringWP'>
<!ENTITY % CWMWHP:InternalEventAtts '%CWMWHP:WarehouseEventAtts;
   triggeringWP IDREFS #IMPLIED'>
<!ELEMENT CWMWHP:InternalEvent (%CWMWHP:InternalEventFeatures;)*>
<!ATTLIST CWMWHP:InternalEvent %CWMWHP:InternalEventAtts;>

<!-- ========= CWMWHP:CascadeEvent ========= -->
<!ELEMENT CWMWHP:CascadeEvent.waitRule EMPTY>
<!ATTLIST CWMWHP:CascadeEvent.waitRule xmi.value %CWMWHP:WaitRuleType; #REQUIRED>
<!ENTITY % CWMWHP:CascadeEventFeatures '%CWMWHP:InternalEventFeatures; |
   CWMWHP:CascadeEvent.waitRule'>
<!ENTITY % CWMWHP:CascadeEventAtts '%CWMWHP:InternalEventAtts;
   waitRule %CWMWHP:WaitRuleType; #IMPLIED'>
<!ELEMENT CWMWHP:CascadeEvent (%CWMWHP:CascadeEventFeatures;)*>
<!ATTLIST CWMWHP:CascadeEvent %CWMWHP:CascadeEventAtts;>

<!-- ========= CWMWHP:RetryEvent ========= -->
<!ELEMENT CWMWHP:RetryEvent.waitDuration (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHP:RetryEvent.maxCount (#PCDATA|XMI.reference)*>
<!ENTITY % CWMWHP:RetryEventFeatures '%CWMWHP:InternalEventFeatures; |
   CWMWHP:RetryEvent.waitDuration |
   CWMWHP:RetryEvent.maxCount'>
<!ENTITY % CWMWHP:RetryEventAtts '%CWMWHP:InternalEventAtts;
   waitDuration CDATA #IMPLIED
   maxCount CDATA #IMPLIED'>
<!ELEMENT CWMWHP:RetryEvent (%CWMWHP:RetryEventFeatures;)*>
<!ATTLIST CWMWHP:RetryEvent %CWMWHP:RetryEventAtts;>

<!-- ========= CWMWHP:RecurringPointInTimeEvent ========= -->
<!ELEMENT CWMWHP:RecurringPointInTimeEvent.recurringType EMPTY>
<!ATTLIST CWMWHP:RecurringPointInTimeEvent.recurringType xmi.value %CWMWHP:RecurringType; #REQUIRED>
<!ELEMENT CWMWHP:RecurringPointInTimeEvent.frequencyFactor (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHP:RecurringPointInTimeEvent.month (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHP:RecurringPointInTimeEvent.dayOfMonth (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHP:RecurringPointInTimeEvent.dayOfWeek EMPTY>
<!ATTLIST CWMWHP:RecurringPointInTimeEvent.dayOfWeek xmi.value %CWMWHP:DayOfWeek; #REQUIRED>
<!ELEMENT CWMWHP:RecurringPointInTimeEvent.hour (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHP:RecurringPointInTimeEvent.minute (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHP:RecurringPointInTimeEvent.second (#PCDATA|XMI.reference)*>
<!ENTITY % CWMWHP:RecurringPointInTimeEventFeatures '%CWMWHP:PointInTimeEventFeatures; |
   CWMWHP:RecurringPointInTimeEvent.recurringType |
   CWMWHP:RecurringPointInTimeEvent.frequencyFactor |
   CWMWHP:RecurringPointInTimeEvent.month |
   CWMWHP:RecurringPointInTimeEvent.dayOfMonth |
   CWMWHP:RecurringPointInTimeEvent.dayOfWeek |
   CWMWHP:RecurringPointInTimeEvent.hour |
   CWMWHP:RecurringPointInTimeEvent.minute |
   CWMWHP:RecurringPointInTimeEvent.second'>
<!ENTITY % CWMWHP:RecurringPointInTimeEventAtts '%CWMWHP:PointInTimeEventAtts;
   recurringType %CWMWHP:RecurringType; #IMPLIED
   frequencyFactor CDATA #IMPLIED
   month CDATA #IMPLIED
   dayOfMonth CDATA #IMPLIED
   dayOfWeek %CWMWHP:DayOfWeek; #IMPLIED
   hour CDATA #IMPLIED
   minute CDATA #IMPLIED
   second CDATA #IMPLIED'>
<!ELEMENT CWMWHP:RecurringPointInTimeEvent (%CWMWHP:RecurringPointInTimeEventFeatures;)*>
<!ATTLIST CWMWHP:RecurringPointInTimeEvent %CWMWHP:RecurringPointInTimeEventAtts;>

<!-- ========= CWMWHP:WarehouseProcess ========= -->
<!ELEMENT CWMWHP:WarehouseProcess.staticDefinition EMPTY>
<!ATTLIST CWMWHP:WarehouseProcess.staticDefinition xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMWHP:WarehouseProcess.isSequential EMPTY>
<!ATTLIST CWMWHP:WarehouseProcess.isSequential xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMWHP:WarehouseProcess.warehouseEvent (CWMWHP:WarehouseEvent|
   CWMWHP:ScheduleEvent|CWMWHP:PointInTimeEvent|CWMWHP:CustomCalendarEvent|
   CWMWHP:RecurringPointInTimeEvent|CWMWHP:IntervalEvent|CWMWHP:ExternalEvent|
   CWMWHP:InternalEvent|CWMWHP:CascadeEvent|CWMWHP:RetryEvent)*>
<!ELEMENT CWMWHP:WarehouseProcess.internalEvent (CWMWHP:InternalEvent)*>
<!ENTITY % CWMWHP:WarehouseProcessFeatures '%CWM:ModelElementFeatures; |
   CWMWHP:WarehouseProcess.staticDefinition |
   CWMWHP:WarehouseProcess.isSequential |
   CWMWHP:WarehouseProcess.warehouseEvent |
   CWMWHP:WarehouseProcess.internalEvent'>
<!ENTITY % CWMWHP:WarehouseProcessAtts '%CWM:ModelElementAtts;
   staticDefinition (true|false) #IMPLIED
   isSequential (true|false) #IMPLIED
   internalEvent IDREFS #IMPLIED'>
<!ELEMENT CWMWHP:WarehouseProcess (%CWMWHP:WarehouseProcessFeatures;)*>
<!ATTLIST CWMWHP:WarehouseProcess %CWMWHP:WarehouseProcessAtts;>

<!-- ========= CWMWHP:WarehouseStep ========= -->
<!ELEMENT CWMWHP:WarehouseStep.transformationStep (CWMTFM:TransformationStep)*>
<!ELEMENT CWMWHP:WarehouseStep.warehouseActivity (CWMWHP:WarehouseActivity)*>
<!ENTITY % CWMWHP:WarehouseStepFeatures '%CWMWHP:WarehouseProcessFeatures; |
   CWMWHP:WarehouseStep.transformationStep |
   CWMWHP:WarehouseStep.warehouseActivity'>
<!ENTITY % CWMWHP:WarehouseStepAtts '%CWMWHP:WarehouseProcessAtts;
   transformationStep IDREFS #IMPLIED
   warehouseActivity IDREFS #IMPLIED'>
<!ELEMENT CWMWHP:WarehouseStep (%CWMWHP:WarehouseStepFeatures;)*>
<!ATTLIST CWMWHP:WarehouseStep %CWMWHP:WarehouseStepAtts;>

<!-- ========= CWMWHP:ProcessPackage ========= -->
<!ENTITY % CWMWHP:ProcessPackageFeatures '%CWM:PackageFeatures;'>
<!ENTITY % CWMWHP:ProcessPackageAtts '%CWM:PackageAtts;'>
<!ELEMENT CWMWHP:ProcessPackage (%CWMWHP:ProcessPackageFeatures;)*>
<!ATTLIST CWMWHP:ProcessPackage %CWMWHP:ProcessPackageAtts;>

<!-- ========= CWMWHP:WarehouseActivity ========= -->
<!ELEMENT CWMWHP:WarehouseActivity.transformationActivity (CWMTFM:TransformationActivity)*>
<!ELEMENT CWMWHP:WarehouseActivity.warehouseStep (CWMWHP:WarehouseStep)*>
<!ENTITY % CWMWHP:WarehouseActivityFeatures '%CWMWHP:WarehouseProcessFeatures; |
   CWMWHP:WarehouseActivity.transformationActivity |
   CWMWHP:WarehouseActivity.warehouseStep'>
<!ENTITY % CWMWHP:WarehouseActivityAtts '%CWMWHP:WarehouseProcessAtts;
   transformationActivity IDREFS #IMPLIED'>
<!ELEMENT CWMWHP:WarehouseActivity (%CWMWHP:WarehouseActivityFeatures;)*>
<!ATTLIST CWMWHP:WarehouseActivity %CWMWHP:WarehouseActivityAtts;>

<!-- ========= CWMWHO:WarehouseOperation ========= -->

<!-- ========= CWMWHO:Measurement ========= -->
<!ELEMENT CWMWHO:Measurement.value (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:Measurement.unit (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:Measurement.type (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:Measurement.creationDate (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:Measurement.effectiveDate (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:Measurement.modelElement (CWM:ModelElement)*>
<!ENTITY % CWMWHO:MeasurementFeatures '%CWM:ModelElementFeatures; |
   CWMWHO:Measurement.value |
   CWMWHO:Measurement.unit |
   CWMWHO:Measurement.type |
   CWMWHO:Measurement.creationDate |
   CWMWHO:Measurement.effectiveDate |
   CWMWHO:Measurement.modelElement'>
<!ENTITY % CWMWHO:MeasurementAtts '%CWM:ModelElementAtts;
   value CDATA #IMPLIED
   unit CDATA #IMPLIED
   type CDATA #IMPLIED
   creationDate CDATA #IMPLIED
   effectiveDate CDATA #IMPLIED
   modelElement IDREFS #IMPLIED'>
<!ELEMENT CWMWHO:Measurement (%CWMWHO:MeasurementFeatures;)*>
<!ATTLIST CWMWHO:Measurement %CWMWHO:MeasurementAtts;>

<!-- ========= CWMWHO:ChangeRequest ========= -->
<!ELEMENT CWMWHO:ChangeRequest.changeDescription (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:ChangeRequest.changeReason (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:ChangeRequest.status (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:ChangeRequest.completed EMPTY>
<!ATTLIST CWMWHO:ChangeRequest.completed xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMWHO:ChangeRequest.requestDate (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:ChangeRequest.completionDate (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:ChangeRequest.modelElement (CWM:ModelElement)*>
<!ENTITY % CWMWHO:ChangeRequestFeatures '%CWM:ModelElementFeatures; |
   CWMWHO:ChangeRequest.changeDescription |
   CWMWHO:ChangeRequest.changeReason |
   CWMWHO:ChangeRequest.status |
   CWMWHO:ChangeRequest.completed |
   CWMWHO:ChangeRequest.requestDate |
   CWMWHO:ChangeRequest.completionDate |
   CWMWHO:ChangeRequest.modelElement'>
<!ENTITY % CWMWHO:ChangeRequestAtts '%CWM:ModelElementAtts;
   changeDescription CDATA #IMPLIED
   changeReason CDATA #IMPLIED
   status CDATA #IMPLIED
   completed (true|false) #IMPLIED
   requestDate CDATA #IMPLIED
   completionDate CDATA #IMPLIED
   modelElement IDREFS #IMPLIED'>
<!ELEMENT CWMWHO:ChangeRequest (%CWMWHO:ChangeRequestFeatures;)*>
<!ATTLIST CWMWHO:ChangeRequest %CWMWHO:ChangeRequestAtts;>

<!-- ========= CWMWHO:TransformationExecution ========= -->
<!ELEMENT CWMWHO:TransformationExecution.startDate (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:TransformationExecution.endDate (#PCDATA|XMI.reference)*>
<!ELEMENT CWMWHO:TransformationExecution.inProgress EMPTY>
<!ATTLIST CWMWHO:TransformationExecution.inProgress xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMWHO:TransformationExecution.successful EMPTY>
<!ATTLIST CWMWHO:TransformationExecution.successful xmi.value (true|false) #REQUIRED>
<!ELEMENT CWMWHO:TransformationExecution.status (CWM:Expression|
   CWM:BooleanExpression|CWM:ProcedureExpression|CWM:QueryExpression)*>
<!ENTITY % CWMWHO:TransformationExecutionFeatures '%CWM:ModelElementFeatures; |
   CWMWHO:TransformationExecution.startDate |
   CWMWHO:TransformationExecution.endDate |
   CWMWHO:TransformationExecution.inProgress |
   CWMWHO:TransformationExecution.successful |
   CWMWHO:TransformationExecution.status'>
<!ENTITY % CWMWHO:TransformationExecutionAtts '%CWM:ModelElementAtts;
   startDate CDATA #IMPLIED
   endDate CDATA #IMPLIED
   inProgress (true|false) #IMPLIED
   successful (true|false) #IMPLIED'>
<!ELEMENT CWMWHO:TransformationExecution (%CWMWHO:TransformationExecutionFeatures;)*>
<!ATTLIST CWMWHO:TransformationExecution %CWMWHO:TransformationExecutionAtts;>

<!-- ========= CWMWHO:ActivityExecution ========= -->
<!ELEMENT CWMWHO:ActivityExecution.transformationActivity (CWMTFM:TransformationActivity)*>
<!ELEMENT CWMWHO:ActivityExecution.stepExecution (CWMWHO:StepExecution)*>
<!ENTITY % CWMWHO:ActivityExecutionFeatures '%CWMWHO:TransformationExecutionFeatures; |
   CWMWHO:ActivityExecution.transformationActivity |
   CWMWHO:ActivityExecution.stepExecution'>
<!ENTITY % CWMWHO:ActivityExecutionAtts '%CWMWHO:TransformationExecutionAtts;
   transformationActivity IDREFS #IMPLIED'>
<!ELEMENT CWMWHO:ActivityExecution (%CWMWHO:ActivityExecutionFeatures;)*>
<!ATTLIST CWMWHO:ActivityExecution %CWMWHO:ActivityExecutionAtts;>

<!-- ========= CWMWHO:StepExecution ========= -->
<!ELEMENT CWMWHO:StepExecution.transformationStep (CWMTFM:TransformationStep)*>
<!ELEMENT CWMWHO:StepExecution.activityExecution (CWMWHO:ActivityExecution)*>
<!ELEMENT CWMWHO:StepExecution.callAction (CWM:CallAction)*>
<!ENTITY % CWMWHO:StepExecutionFeatures '%CWMWHO:TransformationExecutionFeatures; |
   CWMWHO:StepExecution.transformationStep |
   CWMWHO:StepExecution.activityExecution |
   CWMWHO:StepExecution.callAction'>
<!ENTITY % CWMWHO:StepExecutionAtts '%CWMWHO:TransformationExecutionAtts;
   transformationStep IDREFS #IMPLIED
   activityExecution IDREFS #IMPLIED
   callAction IDREFS #IMPLIED'>
<!ELEMENT CWMWHO:StepExecution (%CWMWHO:StepExecutionFeatures;)*>
<!ATTLIST CWMWHO:StepExecution %CWMWHO:StepExecutionAtts;>
