summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2009-02-05 19:10:18 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2009-02-05 19:10:18 +0000
commit91d56e2d741d9af19addc9fd29a5aa698361b123 (patch)
tree77d18529ec0f01f8301e5e58130bd8da03d832d2
parent9bd4954b1e3fef8c1f4d210f5fd5402889282de3 (diff)
downloadATCD-91d56e2d741d9af19addc9fd29a5aa698361b123.tar.gz
ChangeLogTag: Thu Feb 5 19:07:02 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
-rw-r--r--flat/CIAO/ChangeLog18
-rw-r--r--flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd6401
-rwxr-xr-xflat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl56
-rw-r--r--flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl3
-rw-r--r--flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl15
-rw-r--r--flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl20
-rw-r--r--flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd6401
-rwxr-xr-xflat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl35
-rw-r--r--flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd6401
-rwxr-xr-xflat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl56
-rw-r--r--flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl5
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/CIAO_IDL3_TO_XMI_Export.h58
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc71
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp2324
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h299
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.cpp932
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.h119
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/Literals.cpp154
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/Literals.h168
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/be_extern.h86
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/be_global.cpp226
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/be_global.h103
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/be_helper.cpp438
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/be_helper.h176
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/be_init.cpp31
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/be_produce.cpp139
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/be_sunsoft.cpp191
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/be_sunsoft.h39
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/identifier_helper.cpp115
-rw-r--r--flat/CIAO/tools/IDL3_to_XMI/identifier_helper.h64
30 files changed, 25140 insertions, 4 deletions
diff --git a/flat/CIAO/ChangeLog b/flat/CIAO/ChangeLog
index 46810944435..f84e03907ef 100644
--- a/flat/CIAO/ChangeLog
+++ b/flat/CIAO/ChangeLog
@@ -1,9 +1,19 @@
-Thu Feb 5 18:37:55 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+Thu Feb 5 19:07:02 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
- * bin/ciao_tests.lst:
+ * tests/IDL3_to_XMI:
+ * tools/IDL3_to_XMI:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+ * tools/IDL3_to_XMI/IR_Simulator_visitor.h:
- Ported this file in from trunk.
+ Ported this tool, and associated tests in from head.
+Thu Feb 5 18:37:55 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * bin/ciao_tests.lst:
+
+ Ported this file in from trunk.
+
* DAnCE/tests/NodeApplicationTest:
* DAnCE/tests/NodeApplicationTest/NodeAppTest.mpc:
* DAnCE/tests/NodeApplicationTest/NodeAppTest_RoundTrip.cidl:
@@ -22,7 +32,7 @@ Thu Feb 5 18:37:55 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
* DAnCE/tests/NodeApplicationTest/run_test_ex.pl:
* DAnCE/tests/NodeApplicationTest/run_test_simple.pl:
- Removed obsolete test.
+ Removed obsolete test.
Thu Feb 5 18:30:34 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
diff --git a/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd
new file mode 100644
index 00000000000..3b0ef4154c4
--- /dev/null
+++ b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd
@@ -0,0 +1,6401 @@
+<!-- ===================================================================== -->
+<!--
+ * This file is part of CARDAMOM (R) which is jointly developed by THALES
+ * and SELEX Sistemi Integrati. It is derivative work based on PERCO
+ * Copyright (C) THALES 2000-2003. All rights reserved.
+ * Copyright (C) THALES 2004-2005. All rights reserved.
+ * Copyright (C) SELEX SISTEMI INTEGRATI and THALES 2006-2007.
+ * All rights reserved.
+ *
+ * CARDAMOM is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Library General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CARDAMOM is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with CARDAMOM; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<!-- ===================================================================== -->
+<!-- Generated by: XMI Framework 1.0 -->
+<!-- Date: Fri Oct 22 14:31:09 PDT 1999 -->
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- This section of the DTD contains XML declarations required by -->
+<!-- XMI. -->
+<!-- _______________________________________________________________ -->
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- 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.metametamodel identifies other files associated with the -->
+<!-- transferred data -->
+<!-- _______________________________________________________________ -->
+
+<!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;
+>
+
+<!ATTLIST XMI
+ xmlns:UML CDATA #IMPLIED
+>
+
+
+<!ELEMENT UML:Binding.argument (UML:ModelElement | UML:Comment |
+ UML:Namespace | UML:GeneralizableElement |
+ UML:Feature | UML:Parameter |
+ UML:Constraint | UML:Dependency |
+ UML:Generalization | UML:AssociationEnd |
+ UML:Request | UML:ActionSequence |
+ UML:Action | UML:Link | UML:LinkEnd |
+ UML:Instance | UML:AttributeLink |
+ UML:MessageInstance | UML:Interaction |
+ UML:Message | UML:StateMachine |
+ UML:Guard | UML:StateVertex |
+ UML:Transition | UML:Event |
+ UML:Partition | UML:Collaboration |
+ UML:Classifier | UML:Association |
+ UML:Stereotype | UML:Package |
+ UML:Signal | UML:Node | UML:Component |
+ UML:Interface | UML:Class | UML:DataType |
+ UML:Subsystem | UML:ClassifierRole |
+ UML:Actor | UML:UseCase |
+ UML:ClassifierInState |
+ UML:AssociationClass | UML:Enumeration |
+ UML:Primitive | UML:Structure |
+ UML:AssociationRole | UML:Model |
+ UML:Exception | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Attribute |
+ UML:Operation | UML:Method |
+ UML:Reception | UML:Refinement |
+ UML:Usage | UML:Trace | UML:Binding |
+ UML:AssociationEndRole |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation | UML:ReturnAction |
+ UML:SendAction | UML:UninterpretedAction |
+ UML:TerminateAction | UML:DestroyAction |
+ UML:LinkObject | UML:Object |
+ UML:DataValue | UML:UseCaseInstance |
+ UML:ActivityModel | UML:PseudoState |
+ UML:State | UML:CompositeState |
+ UML:SimpleState | UML:SubmachineState |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ActivityState | UML:SignalEvent |
+ UML:CallEvent | UML:TimeEvent |
+ UML:ChangeEvent)* >
+
+
+<!ELEMENT UML:ModelElement.taggedValue (UML:TaggedValue)* >
+
+
+<!ELEMENT UML:Namespace.ownedElement (UML:ModelElement | UML:Comment |
+ UML:Namespace |
+ UML:GeneralizableElement |
+ UML:Feature | UML:Parameter |
+ UML:Constraint | UML:Dependency |
+ UML:Generalization |
+ UML:AssociationEnd | UML:Request |
+ UML:ActionSequence | UML:Action |
+ UML:Link | UML:LinkEnd |
+ UML:Instance | UML:AttributeLink |
+ UML:MessageInstance |
+ UML:Interaction | UML:Message |
+ UML:StateMachine | UML:Guard |
+ UML:StateVertex | UML:Transition |
+ UML:Event | UML:Partition |
+ UML:Collaboration | UML:Classifier |
+ UML:Association | UML:Stereotype |
+ UML:Package | UML:Signal |
+ UML:Node | UML:Component |
+ UML:Interface | UML:Class |
+ UML:DataType | UML:Subsystem |
+ UML:ClassifierRole | UML:Actor |
+ UML:UseCase |
+ UML:ClassifierInState |
+ UML:AssociationClass |
+ UML:Enumeration | UML:Primitive |
+ UML:Structure |
+ UML:AssociationRole | UML:Model |
+ UML:Exception |
+ UML:StructuralFeature |
+ UML:BehavioralFeature |
+ UML:Attribute | UML:Operation |
+ UML:Method | UML:Reception |
+ UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding |
+ UML:AssociationEndRole |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation |
+ UML:ReturnAction | UML:SendAction |
+ UML:UninterpretedAction |
+ UML:TerminateAction |
+ UML:DestroyAction | UML:LinkObject |
+ UML:Object | UML:DataValue |
+ UML:UseCaseInstance |
+ UML:ActivityModel |
+ UML:PseudoState | UML:State |
+ UML:CompositeState |
+ UML:SimpleState |
+ UML:SubmachineState |
+ UML:ActionState |
+ UML:ObjectFlowState |
+ UML:ActivityState |
+ UML:SignalEvent | UML:CallEvent |
+ UML:TimeEvent | UML:ChangeEvent)* >
+
+
+<!ELEMENT UML:Classifier.feature (UML:Feature | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Attribute |
+ UML:Operation | UML:Method |
+ UML:Reception)* >
+
+
+<!ELEMENT UML:BehavioralFeature.parameter (UML:Parameter)* >
+
+
+<!ELEMENT UML:Dependency.subDependencies (UML:Dependency |
+ UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding)* >
+
+
+<!ELEMENT UML:AssociationEnd.qualifier (UML:Attribute)* >
+
+
+<!ELEMENT UML:Association.connection (UML:AssociationEnd |
+ UML:AssociationEndRole)* >
+
+
+<!ELEMENT UML:Stereotype.requiredTag (UML:TaggedValue)* >
+
+
+<!ELEMENT UML:Enumeration.literal (UML:EnumerationLiteral)* >
+
+
+<!ELEMENT UML:Signal.parameter (UML:Parameter)* >
+
+
+<!ELEMENT UML:ActionSequence.action (UML:Action | UML:CreateAction |
+ UML:CallAction |
+ UML:LocalInvocation |
+ UML:ReturnAction | UML:SendAction |
+ UML:UninterpretedAction |
+ UML:TerminateAction |
+ UML:DestroyAction)* >
+
+
+<!ELEMENT UML:Action.actualArgument (UML:Argument)* >
+
+
+<!ELEMENT UML:Link.linkRole (UML:LinkEnd)* >
+
+
+<!ELEMENT UML:Instance.slot (UML:AttributeLink)* >
+
+
+<!ELEMENT UML:Collaboration.interaction (UML:Interaction)* >
+
+
+<!ELEMENT UML:Interaction.message (UML:Message)* >
+
+
+<!ELEMENT UML:StateMachine.top (UML:State | UML:CompositeState |
+ UML:SimpleState | UML:SubmachineState |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ActivityState)* >
+
+<!ELEMENT UML:StateMachine.transitions (UML:Transition)* >
+
+
+<!ELEMENT UML:Transition.guard (UML:Guard)* >
+
+<!ELEMENT UML:Transition.effect (UML:ActionSequence)* >
+
+
+<!ELEMENT UML:State.internalTransition (UML:Transition)* >
+
+<!ELEMENT UML:State.entry (UML:ActionSequence)* >
+
+<!ELEMENT UML:State.exit (UML:ActionSequence)* >
+
+
+<!ELEMENT UML:CompositeState.substate (UML:StateVertex |
+ UML:PseudoState | UML:State |
+ UML:CompositeState |
+ UML:SimpleState |
+ UML:SubmachineState |
+ UML:ActionState |
+ UML:ObjectFlowState |
+ UML:ActivityState)* >
+
+
+<!ELEMENT UML:ActivityModel.partition (UML:Partition)* >
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Refinement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Refinement.mapping (UML:Mapping) >
+
+<!ELEMENT UML:Refinement (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description |
+ UML:Refinement.mapping | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client |
+ UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Refinement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Usage -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Usage (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Usage
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Trace -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Trace (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Trace
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Binding -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Binding (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies |
+ UML:Binding.argument)* >
+<!ATTLIST UML:Binding
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Node -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Node.component (UML:Component)* >
+
+<!ELEMENT UML:Node (UML:ModelElement.name | UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding | UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Node.component | UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Node
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ component IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Component -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Component.deployment (UML:Node)* >
+
+<!ELEMENT UML:Component.implements (UML:ModelElement)* >
+
+<!ELEMENT UML:Component (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Component.deployment |
+ UML:Component.implements |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Component
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ deployment IDREFS #IMPLIED
+ implements IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Comment -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Comment (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Comment
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.ViewElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ViewElement.model (UML:ModelElement)* >
+
+<!ELEMENT UML:ViewElement.presentation (UML:Presentation)* >
+
+<!ELEMENT UML:ViewElement (XMI.extension | UML:ViewElement.model |
+ UML:ViewElement.presentation)* >
+<!ATTLIST UML:ViewElement
+ model IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Presentation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Presentation.geometry (UML:Geometry) >
+
+<!ELEMENT UML:Presentation.style (UML:GraphicMarker) >
+
+<!ELEMENT UML:Presentation.model (UML:ModelElement)* >
+
+<!ELEMENT UML:Presentation.viewElement (UML:ViewElement)* >
+
+<!ELEMENT UML:Presentation (UML:Presentation.geometry |
+ UML:Presentation.style | XMI.extension |
+ UML:Presentation.model |
+ UML:Presentation.viewElement)* >
+<!ATTLIST UML:Presentation
+ model IDREFS #IMPLIED
+ viewElement IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Element -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Element (XMI.extension)* >
+<!ATTLIST UML:Element
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.ModelElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ModelElement.name (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ModelElement.visibility EMPTY >
+<!ATTLIST UML:ModelElement.visibility
+ xmi.value (public | protected | private) #REQUIRED
+>
+
+<!ELEMENT UML:ModelElement.binding (UML:Binding)* >
+
+<!ELEMENT UML:ModelElement.template (UML:ModelElement)* >
+
+<!ELEMENT UML:ModelElement.templateParameter (UML:ModelElement)* >
+
+<!ELEMENT UML:ModelElement.implementation (UML:Component)* >
+
+<!ELEMENT UML:ModelElement.view (UML:ViewElement)* >
+
+<!ELEMENT UML:ModelElement.presentation (UML:Presentation)* >
+
+<!ELEMENT UML:ModelElement.namespace (UML:Namespace)* >
+
+<!ELEMENT UML:ModelElement.constraint (UML:Constraint)* >
+
+<!ELEMENT UML:ModelElement.requirement (UML:Dependency)* >
+
+<!ELEMENT UML:ModelElement.provision (UML:Dependency)* >
+
+<!ELEMENT UML:ModelElement.stereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:ModelElement.elementReference (UML:ElementReference)* >
+
+<!ELEMENT UML:ModelElement.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:ModelElement.behavior (UML:StateMachine)* >
+
+<!ELEMENT UML:ModelElement.partition (UML:Partition)* >
+
+<!ELEMENT UML:ModelElement (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:ModelElement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Namespace -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Namespace (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Namespace
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.GeneralizableElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:GeneralizableElement.isRoot EMPTY >
+<!ATTLIST UML:GeneralizableElement.isRoot
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.isLeaf EMPTY >
+<!ATTLIST UML:GeneralizableElement.isLeaf
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.isAbstract EMPTY >
+<!ATTLIST UML:GeneralizableElement.isAbstract
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.generalization
+ (UML:Generalization)* >
+
+<!ELEMENT UML:GeneralizableElement.specialization
+ (UML:Generalization)* >
+
+<!ELEMENT UML:GeneralizableElement (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:GeneralizableElement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Classifier -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Classifier.parameter (UML:Parameter)* >
+
+<!ELEMENT UML:Classifier.structuralFeature (UML:StructuralFeature)* >
+
+<!ELEMENT UML:Classifier.specification (UML:Classifier)* >
+
+<!ELEMENT UML:Classifier.realization (UML:Classifier)* >
+
+<!ELEMENT UML:Classifier.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Classifier.participant (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Classifier.createAction (UML:CreateAction)* >
+
+<!ELEMENT UML:Classifier.instance (UML:Instance)* >
+
+<!ELEMENT UML:Classifier.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:Classifier.classifierRole (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Classifier.classifierInState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:Classifier (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Classifier
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Interface -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Interface (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Interface
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Class -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Class.isActive EMPTY >
+<!ATTLIST UML:Class.isActive
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Class (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Class.isActive | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Class
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isActive (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.DataType -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DataType (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:DataType
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Feature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Feature.ownerScope EMPTY >
+<!ATTLIST UML:Feature.ownerScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:Feature.owner (UML:Classifier)* >
+
+<!ELEMENT UML:Feature.classifierRole (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Feature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Feature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.StructuralFeature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StructuralFeature.multiplicity (#PCDATA |
+ XMI.reference)* >
+
+<!ELEMENT UML:StructuralFeature.changeable EMPTY >
+<!ATTLIST UML:StructuralFeature.changeable
+ xmi.value (none | frozen | addOnly) #REQUIRED
+>
+
+<!ELEMENT UML:StructuralFeature.targetScope EMPTY >
+<!ATTLIST UML:StructuralFeature.targetScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:StructuralFeature.type (UML:Classifier)* >
+
+<!ELEMENT UML:StructuralFeature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:StructuralFeature.multiplicity |
+ UML:StructuralFeature.changeable |
+ UML:StructuralFeature.targetScope |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:StructuralFeature.type |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:StructuralFeature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.BehavioralFeature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:BehavioralFeature.isQuery EMPTY >
+<!ATTLIST UML:BehavioralFeature.isQuery
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:BehavioralFeature.raisedException (UML:Exception)* >
+
+<!ELEMENT UML:BehavioralFeature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:BehavioralFeature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Operation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Operation.specification (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Operation.isPolymorphic EMPTY >
+<!ATTLIST UML:Operation.isPolymorphic
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Operation.concurrency EMPTY >
+<!ATTLIST UML:Operation.concurrency
+ xmi.value (sequential | guarded | concurrent) #REQUIRED
+>
+
+<!ELEMENT UML:Operation.method (UML:Method)* >
+
+<!ELEMENT UML:Operation.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:Operation.occurrence (UML:CallEvent)* >
+
+<!ELEMENT UML:Operation (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ UML:Operation.specification |
+ UML:Operation.isPolymorphic |
+ UML:Operation.concurrency | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Request.action |
+ UML:Request.messageInstance |
+ UML:Operation.method |
+ UML:Operation.collaboration |
+ UML:Operation.occurrence |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Operation
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ specification CDATA #IMPLIED
+ isPolymorphic (false | true) #IMPLIED
+ concurrency (sequential | guarded | concurrent) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ method IDREFS #IMPLIED
+ Operation.collaboration IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Method -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Method.body (UML:ProcedureExpression) >
+
+<!ELEMENT UML:Method.specification (UML:Operation)* >
+
+<!ELEMENT UML:Method (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery | UML:Method.body |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Method.specification |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Method
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Parameter -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Parameter.defaultValue (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Parameter.kind EMPTY >
+<!ATTLIST UML:Parameter.kind
+ xmi.value (in | inout | out | return) #REQUIRED
+>
+
+<!ELEMENT UML:Parameter.behavioralFeature (UML:BehavioralFeature)* >
+
+<!ELEMENT UML:Parameter.type (UML:Classifier)* >
+
+<!ELEMENT UML:Parameter.signal (UML:Signal)* >
+
+<!ELEMENT UML:Parameter (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Parameter.defaultValue | UML:Parameter.kind |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Parameter.behavioralFeature |
+ UML:Parameter.type | UML:Parameter.signal |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Parameter
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ kind (in | inout | out | return) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ behavioralFeature IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Constraint -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Constraint.body (UML:BooleanExpression) >
+
+<!ELEMENT UML:Constraint.constrainedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Constraint.constrainedStereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:Constraint (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Constraint.body | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Constraint.constrainedElement |
+ UML:Constraint.constrainedStereotype |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Constraint
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ constrainedElement IDREFS #IMPLIED
+ constrainedStereotype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Dependency -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Dependency.description (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Dependency.owningDependency (UML:Dependency)* >
+
+<!ELEMENT UML:Dependency.client (UML:ModelElement)* >
+
+<!ELEMENT UML:Dependency.supplier (UML:ModelElement)* >
+
+<!ELEMENT UML:Dependency (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client |
+ UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Dependency
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Generalization -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Generalization.discriminator (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Generalization.subtype (UML:GeneralizableElement)* >
+
+<!ELEMENT UML:Generalization.supertype (UML:GeneralizableElement)* >
+
+<!ELEMENT UML:Generalization (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Generalization.discriminator |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Generalization.subtype |
+ UML:Generalization.supertype |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Generalization
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ discriminator CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ subtype IDREFS #IMPLIED
+ supertype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.AssociationEnd -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationEnd.isNavigable EMPTY >
+<!ATTLIST UML:AssociationEnd.isNavigable
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.isOrdered EMPTY >
+<!ATTLIST UML:AssociationEnd.isOrdered
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.aggregation EMPTY >
+<!ATTLIST UML:AssociationEnd.aggregation
+ xmi.value (none | shared | composite) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:AssociationEnd.changeable EMPTY >
+<!ATTLIST UML:AssociationEnd.changeable
+ xmi.value (none | frozen | addOnly) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.targetScope EMPTY >
+<!ATTLIST UML:AssociationEnd.targetScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.type (UML:Classifier)* >
+
+<!ELEMENT UML:AssociationEnd.specification (UML:Classifier)* >
+
+<!ELEMENT UML:AssociationEnd.association (UML:Association)* >
+
+<!ELEMENT UML:AssociationEnd.linkEnd (UML:LinkEnd)* >
+
+<!ELEMENT UML:AssociationEnd.associationEndRole
+ (UML:AssociationEndRole)* >
+
+<!ELEMENT UML:AssociationEnd (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:AssociationEnd.isNavigable |
+ UML:AssociationEnd.isOrdered |
+ UML:AssociationEnd.aggregation |
+ UML:AssociationEnd.multiplicity |
+ UML:AssociationEnd.changeable |
+ UML:AssociationEnd.targetScope |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AssociationEnd.type |
+ UML:AssociationEnd.specification |
+ UML:AssociationEnd.association |
+ UML:AssociationEnd.linkEnd |
+ UML:AssociationEnd.associationEndRole |
+ UML:ModelElement.taggedValue |
+ UML:AssociationEnd.qualifier)* >
+<!ATTLIST UML:AssociationEnd
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isNavigable (false | true) #IMPLIED
+ isOrdered (false | true) #IMPLIED
+ aggregation (none | shared | composite) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Association -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Association.link (UML:Link)* >
+
+<!ELEMENT UML:Association.associationEnd (UML:AssociationRole)* >
+
+<!ELEMENT UML:Association (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Association.connection)* >
+<!ATTLIST UML:Association
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.AssociationClass -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationClass (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Class.isActive | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature |
+ UML:Association.connection)* >
+<!ATTLIST UML:AssociationClass
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isActive (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ Classifier.associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ Association.associationEnd IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Attribute -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Attribute.initialValue (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Attribute.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Attribute.attributeLink (UML:AttributeLink)* >
+
+<!ELEMENT UML:Attribute (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:StructuralFeature.multiplicity |
+ UML:StructuralFeature.changeable |
+ UML:StructuralFeature.targetScope |
+ UML:Attribute.initialValue | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:StructuralFeature.type |
+ UML:Attribute.associationEnd |
+ UML:Attribute.attributeLink |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Attribute
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Extension_Mechanisms.TaggedValue -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TaggedValue.tag (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:TaggedValue.value (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:TaggedValue.modelElement (UML:ModelElement)* >
+
+<!ELEMENT UML:TaggedValue.stereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:TaggedValue (UML:TaggedValue.tag | UML:TaggedValue.value |
+ XMI.extension | UML:TaggedValue.modelElement |
+ UML:TaggedValue.stereotype)* >
+<!ATTLIST UML:TaggedValue
+ tag CDATA #IMPLIED
+ value CDATA #IMPLIED
+ modelElement IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Extension_Mechanisms.Stereotype -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Stereotype.icon (UML:Geometry) >
+
+<!ELEMENT UML:Stereotype.baseClass (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Stereotype.extendedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Stereotype.stereotypeConstraint (UML:Constraint)* >
+
+<!ELEMENT UML:Stereotype (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Stereotype.icon | UML:Stereotype.baseClass |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Stereotype.extendedElement |
+ UML:Stereotype.stereotypeConstraint |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Stereotype.requiredTag)* >
+<!ATTLIST UML:Stereotype
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ baseClass CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ extendedElement IDREFS #IMPLIED
+ stereotypeConstraint IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Enumeration -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Enumeration (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature |
+ UML:Enumeration.literal)* >
+<!ATTLIST UML:Enumeration
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.EnumerationLiteral -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:EnumerationLiteral.name (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:EnumerationLiteral.enumeration (UML:Enumeration)* >
+
+<!ELEMENT UML:EnumerationLiteral (UML:EnumerationLiteral.name |
+ XMI.extension |
+ UML:EnumerationLiteral.enumeration)* >
+<!ATTLIST UML:EnumerationLiteral
+ name CDATA #IMPLIED
+ enumeration IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Primitive -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Primitive (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Primitive
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Structure -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Structure (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Structure
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.MultiplicityRange -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:MultiplicityRange.lower (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:MultiplicityRange.upper (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:MultiplicityRange (UML:MultiplicityRange.lower |
+ UML:MultiplicityRange.upper |
+ XMI.extension)* >
+<!ATTLIST UML:MultiplicityRange
+ lower CDATA #IMPLIED
+ upper CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Geometry -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Geometry.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Geometry (UML:Geometry.body | XMI.extension)* >
+<!ATTLIST UML:Geometry
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.GraphicMarker -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:GraphicMarker.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:GraphicMarker (UML:GraphicMarker.body | XMI.extension)* >
+<!ATTLIST UML:GraphicMarker
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Mapping -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Mapping.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Mapping (UML:Mapping.body | XMI.extension)* >
+<!ATTLIST UML:Mapping
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Expression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Expression.language (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Expression.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Expression (UML:Expression.language | UML:Expression.body |
+ XMI.extension)* >
+<!ATTLIST UML:Expression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.ProcedureExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ProcedureExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:ProcedureExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.ObjectSetExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ObjectSetExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:ObjectSetExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.TimeExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TimeExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:TimeExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.BooleanExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:BooleanExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:BooleanExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Package -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Package.elementReference (UML:ElementReference)* >
+
+<!ELEMENT UML:Package (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Package
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Subsystem -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Subsystem.isInstantiable EMPTY >
+<!ATTLIST UML:Subsystem.isInstantiable
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Subsystem (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Subsystem.isInstantiable | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Subsystem
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isInstantiable (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Model (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Model
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.ElementReference -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ElementReference.visibility EMPTY >
+<!ATTLIST UML:ElementReference.visibility
+ xmi.value (public | protected | private) #REQUIRED
+>
+
+<!ELEMENT UML:ElementReference.alias (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ElementReference.referencedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:ElementReference.package (UML:Package)* >
+
+<!ELEMENT UML:ElementReference (UML:ElementReference.visibility |
+ UML:ElementReference.alias |
+ XMI.extension |
+ UML:ElementReference.referencedElement |
+ UML:ElementReference.package)* >
+<!ATTLIST UML:ElementReference
+ visibility (public | protected | private) #IMPLIED
+ alias CDATA #IMPLIED
+ referencedElement IDREFS #IMPLIED
+ package IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Request -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Request.action (UML:Action)* >
+
+<!ELEMENT UML:Request.messageInstance (UML:MessageInstance)* >
+
+<!ELEMENT UML:Request (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Request.action |
+ UML:Request.messageInstance |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Request
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Signal -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Signal.reception (UML:Reception)* >
+
+<!ELEMENT UML:Signal.occurrence (UML:SignalEvent)* >
+
+<!ELEMENT UML:Signal (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Request.action | UML:Request.messageInstance |
+ UML:Signal.reception | UML:Signal.occurrence |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Signal.parameter)* >
+<!ATTLIST UML:Signal
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ reception IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Exception -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Exception.context (UML:BehavioralFeature)* >
+
+<!ELEMENT UML:Exception (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Request.action |
+ UML:Request.messageInstance |
+ UML:Signal.reception | UML:Signal.occurrence |
+ UML:Exception.context |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Signal.parameter)* >
+<!ATTLIST UML:Exception
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ reception IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Reception -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Reception.isPolymorphic EMPTY >
+<!ATTLIST UML:Reception.isPolymorphic
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Reception.specification (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Reception.signal (UML:Signal)* >
+
+<!ELEMENT UML:Reception (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ UML:Reception.isPolymorphic |
+ UML:Reception.specification | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Reception.signal |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Reception
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ isPolymorphic (false | true) #IMPLIED
+ specification CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Argument -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Argument.value (UML:Expression | UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Argument.action (UML:Action)* >
+
+<!ELEMENT UML:Argument (UML:Argument.value | XMI.extension |
+ UML:Argument.action)* >
+<!ATTLIST UML:Argument
+ action IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.ActionSequence -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActionSequence.transition (UML:Transition)* >
+
+<!ELEMENT UML:ActionSequence.state (UML:State)* >
+
+<!ELEMENT UML:ActionSequence.state2 (UML:State)* >
+
+<!ELEMENT UML:ActionSequence (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ActionSequence.transition |
+ UML:ActionSequence.state |
+ UML:ActionSequence.state2 |
+ UML:ModelElement.taggedValue |
+ UML:ActionSequence.action)* >
+<!ATTLIST UML:ActionSequence
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ state2 IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Action -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Action.recurrence (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Action.target (UML:ObjectSetExpression) >
+
+<!ELEMENT UML:Action.isAsynchronous EMPTY >
+<!ATTLIST UML:Action.isAsynchronous
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Action.script (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Action.request (UML:Request)* >
+
+<!ELEMENT UML:Action.message (UML:Message)* >
+
+<!ELEMENT UML:Action.actionSequence (UML:ActionSequence)* >
+
+<!ELEMENT UML:Action (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Action.request |
+ UML:Action.message | UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:Action
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.CreateAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CreateAction.instantiation (UML:Classifier)* >
+
+<!ELEMENT UML:CreateAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:CreateAction.instantiation |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:CreateAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ instantiation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.CallAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CallAction.mode EMPTY >
+<!ATTLIST UML:CallAction.mode
+ xmi.value (synchronous | asynchronous) #REQUIRED
+>
+
+<!ELEMENT UML:CallAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ UML:CallAction.mode | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:CallAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ mode (synchronous | asynchronous) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LocalInvocation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LocalInvocation (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:LocalInvocation
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.ReturnAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ReturnAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:ReturnAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.SendAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SendAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:SendAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.UninterpretedAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UninterpretedAction.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:UninterpretedAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence |
+ UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script |
+ UML:UninterpretedAction.body |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request |
+ UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:UninterpretedAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ body CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.TerminateAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TerminateAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:TerminateAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.DestroyAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DestroyAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:DestroyAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Link -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Link.association (UML:Association)* >
+
+<!ELEMENT UML:Link (UML:ModelElement.name | UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Link.association |
+ UML:ModelElement.taggedValue | UML:Link.linkRole)* >
+<!ATTLIST UML:Link
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkEnd -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LinkEnd.link (UML:Link)* >
+
+<!ELEMENT UML:LinkEnd.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:LinkEnd.instance (UML:Instance)* >
+
+<!ELEMENT UML:LinkEnd (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:LinkEnd.link |
+ UML:LinkEnd.associationEnd | UML:LinkEnd.instance |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:LinkEnd
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Instance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Instance.linkEnd (UML:LinkEnd)* >
+
+<!ELEMENT UML:Instance.messageInstance3 (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.messageInstance2 (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.messageInstance (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.attributeLink (UML:AttributeLink)* >
+
+<!ELEMENT UML:Instance.classifier (UML:Classifier)* >
+
+<!ELEMENT UML:Instance (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:Instance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.AttributeLink -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AttributeLink.instance (UML:Instance)* >
+
+<!ELEMENT UML:AttributeLink.attribute (UML:Attribute)* >
+
+<!ELEMENT UML:AttributeLink.value (UML:Instance)* >
+
+<!ELEMENT UML:AttributeLink (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AttributeLink.instance |
+ UML:AttributeLink.attribute |
+ UML:AttributeLink.value |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:AttributeLink
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ attribute IDREFS #IMPLIED
+ value IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Object -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Object (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue | UML:Instance.slot)* >
+<!ATTLIST UML:Object
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.DataValue -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DataValue (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:DataValue
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkObject -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LinkObject (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier | UML:Link.association |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot | UML:Link.linkRole)* >
+<!ATTLIST UML:LinkObject
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.MessageInstance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:MessageInstance.specification (UML:Request)* >
+
+<!ELEMENT UML:MessageInstance.sender (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance.receiver (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance.argument (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:MessageInstance.specification |
+ UML:MessageInstance.sender |
+ UML:MessageInstance.receiver |
+ UML:MessageInstance.argument |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:MessageInstance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ sender IDREFS #IMPLIED
+ receiver IDREFS #IMPLIED
+ argument IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Collaboration -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Collaboration.representedClassifier (UML:Classifier)* >
+
+<!ELEMENT UML:Collaboration.representedOperation (UML:Operation)* >
+
+<!ELEMENT UML:Collaboration.constrainingElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Collaboration (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Collaboration.representedClassifier |
+ UML:Collaboration.representedOperation |
+ UML:Collaboration.constrainingElement |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Collaboration.interaction)* >
+<!ATTLIST UML:Collaboration
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ representedClassifier IDREFS #IMPLIED
+ representedOperation IDREFS #IMPLIED
+ constrainingElement IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Interaction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Interaction.context (UML:Collaboration)* >
+
+<!ELEMENT UML:Interaction (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Interaction.context |
+ UML:ModelElement.taggedValue |
+ UML:Interaction.message)* >
+<!ATTLIST UML:Interaction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.AssociationRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationRole.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:AssociationRole.base (UML:Association)* >
+
+<!ELEMENT UML:AssociationRole.namespace (UML:Collaboration)* >
+
+<!ELEMENT UML:AssociationRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:AssociationRole.multiplicity |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:AssociationRole.base |
+ UML:AssociationRole.namespace |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Association.connection)* >
+<!ATTLIST UML:AssociationRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ ModelElement.namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ AssociationRole.namespace IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.AssociationEndRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationEndRole.associationRole
+ (UML:AssociationRole)* >
+
+<!ELEMENT UML:AssociationEndRole.base (UML:AssociationEnd)* >
+
+<!ELEMENT UML:AssociationEndRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:AssociationEnd.isNavigable |
+ UML:AssociationEnd.isOrdered |
+ UML:AssociationEnd.aggregation |
+ UML:AssociationEnd.multiplicity |
+ UML:AssociationEnd.changeable |
+ UML:AssociationEnd.targetScope |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AssociationEnd.type |
+ UML:AssociationEnd.specification |
+ UML:AssociationEnd.association |
+ UML:AssociationEnd.linkEnd |
+ UML:AssociationEnd.associationEndRole |
+ UML:AssociationEndRole.associationRole |
+ UML:AssociationEndRole.base |
+ UML:ModelElement.taggedValue |
+ UML:AssociationEnd.qualifier)* >
+<!ATTLIST UML:AssociationEndRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isNavigable (false | true) #IMPLIED
+ isOrdered (false | true) #IMPLIED
+ aggregation (none | shared | composite) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ associationRole IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Message -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Message.interaction (UML:Interaction)* >
+
+<!ELEMENT UML:Message.predecessor (UML:Message)* >
+
+<!ELEMENT UML:Message.message2 (UML:Message)* >
+
+<!ELEMENT UML:Message.message (UML:Message)* >
+
+<!ELEMENT UML:Message.activator (UML:Message)* >
+
+<!ELEMENT UML:Message.action (UML:Action)* >
+
+<!ELEMENT UML:Message.receiver (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Message.sender (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Message (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Message.interaction | UML:Message.predecessor |
+ UML:Message.message2 | UML:Message.message |
+ UML:Message.activator | UML:Message.action |
+ UML:Message.receiver | UML:Message.sender |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Message
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ interaction IDREFS #IMPLIED
+ predecessor IDREFS #IMPLIED
+ message2 IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ activator IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ receiver IDREFS #IMPLIED
+ sender IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.ClassifierRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ClassifierRole.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ClassifierRole.associationEndRole
+ (UML:AssociationEndRole)* >
+
+<!ELEMENT UML:ClassifierRole.namespace (UML:Collaboration)* >
+
+<!ELEMENT UML:ClassifierRole.message2 (UML:Message)* >
+
+<!ELEMENT UML:ClassifierRole.message (UML:Message)* >
+
+<!ELEMENT UML:ClassifierRole.base (UML:Classifier)* >
+
+<!ELEMENT UML:ClassifierRole.availableFeature (UML:Feature)* >
+
+<!ELEMENT UML:ClassifierRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:ClassifierRole.multiplicity |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ClassifierRole.associationEndRole |
+ UML:ClassifierRole.namespace |
+ UML:ClassifierRole.message2 |
+ UML:ClassifierRole.message |
+ UML:ClassifierRole.base |
+ UML:ClassifierRole.availableFeature |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:ClassifierRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ ModelElement.namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ ClassifierRole.namespace IDREFS #IMPLIED
+ message2 IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ availableFeature IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.Actor -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Actor (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Actor
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.UseCase -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UseCase.extensionPoint (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:UseCase (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:UseCase.extensionPoint | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:UseCase
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ extensionPoint CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.UseCaseInstance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UseCaseInstance (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:UseCaseInstance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.StateMachine -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StateMachine.context (UML:ModelElement)* >
+
+<!ELEMENT UML:StateMachine.submachineState (UML:SubmachineState)* >
+
+<!ELEMENT UML:StateMachine (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateMachine.context |
+ UML:StateMachine.submachineState |
+ UML:ModelElement.taggedValue |
+ UML:StateMachine.top |
+ UML:StateMachine.transitions)* >
+<!ATTLIST UML:StateMachine
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ submachineState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Guard -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Guard.expression (UML:BooleanExpression) >
+
+<!ELEMENT UML:Guard.transition (UML:Transition)* >
+
+<!ELEMENT UML:Guard (UML:ModelElement.name |
+ UML:ModelElement.visibility | UML:Guard.expression |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Guard.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Guard
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.StateVertex -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StateVertex.outgoing (UML:Transition)* >
+
+<!ELEMENT UML:StateVertex.incoming (UML:Transition)* >
+
+<!ELEMENT UML:StateVertex.parent (UML:CompositeState)* >
+
+<!ELEMENT UML:StateVertex (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:StateVertex
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Transition -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Transition.source (UML:StateVertex)* >
+
+<!ELEMENT UML:Transition.target (UML:StateVertex)* >
+
+<!ELEMENT UML:Transition.statemachine (UML:StateMachine)* >
+
+<!ELEMENT UML:Transition.state (UML:State)* >
+
+<!ELEMENT UML:Transition.trigger (UML:Event)* >
+
+<!ELEMENT UML:Transition (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Transition.source | UML:Transition.target |
+ UML:Transition.statemachine |
+ UML:Transition.state | UML:Transition.trigger |
+ UML:ModelElement.taggedValue |
+ UML:Transition.guard | UML:Transition.effect)* >
+<!ATTLIST UML:Transition
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ source IDREFS #IMPLIED
+ target IDREFS #IMPLIED
+ statemachine IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ trigger IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.PseudoState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:PseudoState.kind EMPTY >
+<!ATTLIST UML:PseudoState.kind
+ xmi.value (initial | deepHistory | shallowHistory | join | fork | branch | final) #REQUIRED
+>
+
+<!ELEMENT UML:PseudoState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:PseudoState.kind | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:PseudoState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ kind (initial | deepHistory | shallowHistory | join | fork | branch | final) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.State -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:State.stateMachine (UML:StateMachine)* >
+
+<!ELEMENT UML:State.deferredEvent (UML:Event)* >
+
+<!ELEMENT UML:State.classifierInState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:State (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing | UML:StateVertex.incoming |
+ UML:StateVertex.parent | UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition | UML:State.entry |
+ UML:State.exit)* >
+<!ATTLIST UML:State
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.CompositeState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CompositeState.isConcurrent EMPTY >
+<!ATTLIST UML:CompositeState.isConcurrent
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:CompositeState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:CompositeState.isConcurrent |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit |
+ UML:CompositeState.substate)* >
+<!ATTLIST UML:CompositeState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isConcurrent (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SimpleState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SimpleState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:SimpleState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SubmachineState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SubmachineState.stateMachine (UML:StateMachine)* >
+
+<!ELEMENT UML:SubmachineState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:SubmachineState.stateMachine |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:SubmachineState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ State.stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ SubmachineState.stateMachine IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Event -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Event.state (UML:State)* >
+
+<!ELEMENT UML:Event.transition (UML:Transition)* >
+
+<!ELEMENT UML:Event (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Event
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SignalEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SignalEvent.signal (UML:Signal)* >
+
+<!ELEMENT UML:SignalEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition | UML:SignalEvent.signal |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:SignalEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.CallEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CallEvent.operation (UML:Operation)* >
+
+<!ELEMENT UML:CallEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition | UML:CallEvent.operation |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:CallEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ operation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.TimeEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TimeEvent.duration (UML:TimeExpression) >
+
+<!ELEMENT UML:TimeEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:TimeEvent.duration | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:TimeEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ChangeEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ChangeEvent.changeExpression (UML:BooleanExpression) >
+
+<!ELEMENT UML:ChangeEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:ChangeEvent.changeExpression |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:ChangeEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActivityModel -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActivityModel (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateMachine.context |
+ UML:StateMachine.submachineState |
+ UML:ModelElement.taggedValue |
+ UML:StateMachine.top |
+ UML:StateMachine.transitions |
+ UML:ActivityModel.partition)* >
+<!ATTLIST UML:ActivityModel
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ submachineState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Partition -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Partition.contents (UML:ModelElement)* >
+
+<!ELEMENT UML:Partition.activityModel (UML:ActivityModel)* >
+
+<!ELEMENT UML:Partition (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Partition.contents |
+ UML:Partition.activityModel |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Partition
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ contents IDREFS #IMPLIED
+ activityModel IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActionState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActionState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ActionState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ObjectFlowState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ObjectFlowState.typeState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:ObjectFlowState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ObjectFlowState.typeState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ObjectFlowState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ typeState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ClassifierInState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ClassifierInState.objectFlowState (UML:ObjectFlowState)* >
+
+<!ELEMENT UML:ClassifierInState.inState (UML:State)* >
+
+<!ELEMENT UML:ClassifierInState.type (UML:Classifier)* >
+
+<!ELEMENT UML:ClassifierInState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ClassifierInState.objectFlowState |
+ UML:ClassifierInState.inState |
+ UML:ClassifierInState.type |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:ClassifierInState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ objectFlowState IDREFS #IMPLIED
+ inState IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActivityState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActivityState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:SubmachineState.stateMachine |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ActivityState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ State.stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ SubmachineState.stateMachine IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Foundation (UML:Auxiliary_Elements | UML:Core |
+ UML:Extension_Mechanisms | UML:Data_Types)* >
+<!ATTLIST UML:Foundation
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Auxiliary_Elements (UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding | UML:Node |
+ UML:Component | UML:Comment |
+ UML:ViewElement | UML:Presentation)* >
+<!ATTLIST UML:Auxiliary_Elements
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Core (UML:Element | UML:ModelElement | UML:Namespace |
+ UML:GeneralizableElement | UML:Classifier |
+ UML:Interface | UML:Class | UML:DataType |
+ UML:Feature | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Operation | UML:Method |
+ UML:Parameter | UML:Constraint | UML:Dependency |
+ UML:Generalization | UML:AssociationEnd |
+ UML:Association | UML:AssociationClass |
+ UML:Attribute)* >
+<!ATTLIST UML:Core
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Extension_Mechanisms (UML:TaggedValue | UML:Stereotype)* >
+<!ATTLIST UML:Extension_Mechanisms
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Data_Types (UML:Enumeration | UML:EnumerationLiteral |
+ UML:Primitive | UML:Structure |
+ UML:MultiplicityRange | UML:Geometry |
+ UML:GraphicMarker | UML:Mapping |
+ UML:Expression | UML:ProcedureExpression |
+ UML:ObjectSetExpression | UML:TimeExpression |
+ UML:BooleanExpression)* >
+<!ATTLIST UML:Data_Types
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Model_Management (UML:Package | UML:Subsystem | UML:Model |
+ UML:ElementReference)* >
+<!ATTLIST UML:Model_Management
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Behavioral_Elements (UML:Common_Behavior |
+ UML:Collaborations | UML:Use_Cases |
+ UML:State_Machines)* >
+<!ATTLIST UML:Behavioral_Elements
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Common_Behavior (UML:Request | UML:Signal | UML:Exception |
+ UML:Reception | UML:Argument |
+ UML:ActionSequence | UML:Action |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation | UML:ReturnAction |
+ UML:SendAction | UML:UninterpretedAction |
+ UML:TerminateAction | UML:DestroyAction |
+ UML:Link | UML:LinkEnd | UML:Instance |
+ UML:AttributeLink | UML:Object |
+ UML:DataValue | UML:LinkObject |
+ UML:MessageInstance)* >
+<!ATTLIST UML:Common_Behavior
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Collaborations (UML:Collaboration | UML:Interaction |
+ UML:AssociationRole |
+ UML:AssociationEndRole | UML:Message |
+ UML:ClassifierRole)* >
+<!ATTLIST UML:Collaborations
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Use_Cases (UML:Actor | UML:UseCase |
+ UML:UseCaseInstance)* >
+<!ATTLIST UML:Use_Cases
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:State_Machines (UML:StateMachine | UML:Guard |
+ UML:StateVertex | UML:Transition |
+ UML:PseudoState | UML:State |
+ UML:CompositeState | UML:SimpleState |
+ UML:SubmachineState | UML:Event |
+ UML:SignalEvent | UML:CallEvent |
+ UML:TimeEvent | UML:ChangeEvent |
+ UML:ActivityModel | UML:Partition |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ClassifierInState |
+ UML:ActivityState)* >
+<!ATTLIST UML:State_Machines
+ %XMI.element.att;
+ %XMI.link.att;
+>
diff --git a/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
new file mode 100755
index 00000000000..fcc8d993b22
--- /dev/null
+++ b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
@@ -0,0 +1,56 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'ACE_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 2) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl
new file mode 100644
index 00000000000..122ca407e5a
--- /dev/null
+++ b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl
@@ -0,0 +1,3 @@
+// $Id$
+
+typedef char Ffffffftttt [4][5];
diff --git a/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl
new file mode 100644
index 00000000000..4c3659f4f48
--- /dev/null
+++ b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl
@@ -0,0 +1,15 @@
+// $Id$
+
+#ifndef File_1_
+#define File_1_
+
+module File1 {
+
+ typedef sequence <short> Seq1;
+
+ typedef string type2;
+ typedef sequence <type2> Seq2;
+
+};
+
+#endif
diff --git a/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl
new file mode 100644
index 00000000000..f8c3106e352
--- /dev/null
+++ b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl
@@ -0,0 +1,20 @@
+// $Id$
+
+#ifndef FILE_2_
+#define FILE_2_
+
+#include <File1.idl>
+
+module File2 {
+
+ interface Test {
+
+ void op1(in File1::Seq1 s1);
+
+ void op2(in File1::Seq2 s2);
+
+ };
+
+};
+
+#endif // FILE_2_
diff --git a/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd
new file mode 100644
index 00000000000..3b0ef4154c4
--- /dev/null
+++ b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd
@@ -0,0 +1,6401 @@
+<!-- ===================================================================== -->
+<!--
+ * This file is part of CARDAMOM (R) which is jointly developed by THALES
+ * and SELEX Sistemi Integrati. It is derivative work based on PERCO
+ * Copyright (C) THALES 2000-2003. All rights reserved.
+ * Copyright (C) THALES 2004-2005. All rights reserved.
+ * Copyright (C) SELEX SISTEMI INTEGRATI and THALES 2006-2007.
+ * All rights reserved.
+ *
+ * CARDAMOM is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Library General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CARDAMOM is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with CARDAMOM; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<!-- ===================================================================== -->
+<!-- Generated by: XMI Framework 1.0 -->
+<!-- Date: Fri Oct 22 14:31:09 PDT 1999 -->
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- This section of the DTD contains XML declarations required by -->
+<!-- XMI. -->
+<!-- _______________________________________________________________ -->
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- 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.metametamodel identifies other files associated with the -->
+<!-- transferred data -->
+<!-- _______________________________________________________________ -->
+
+<!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;
+>
+
+<!ATTLIST XMI
+ xmlns:UML CDATA #IMPLIED
+>
+
+
+<!ELEMENT UML:Binding.argument (UML:ModelElement | UML:Comment |
+ UML:Namespace | UML:GeneralizableElement |
+ UML:Feature | UML:Parameter |
+ UML:Constraint | UML:Dependency |
+ UML:Generalization | UML:AssociationEnd |
+ UML:Request | UML:ActionSequence |
+ UML:Action | UML:Link | UML:LinkEnd |
+ UML:Instance | UML:AttributeLink |
+ UML:MessageInstance | UML:Interaction |
+ UML:Message | UML:StateMachine |
+ UML:Guard | UML:StateVertex |
+ UML:Transition | UML:Event |
+ UML:Partition | UML:Collaboration |
+ UML:Classifier | UML:Association |
+ UML:Stereotype | UML:Package |
+ UML:Signal | UML:Node | UML:Component |
+ UML:Interface | UML:Class | UML:DataType |
+ UML:Subsystem | UML:ClassifierRole |
+ UML:Actor | UML:UseCase |
+ UML:ClassifierInState |
+ UML:AssociationClass | UML:Enumeration |
+ UML:Primitive | UML:Structure |
+ UML:AssociationRole | UML:Model |
+ UML:Exception | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Attribute |
+ UML:Operation | UML:Method |
+ UML:Reception | UML:Refinement |
+ UML:Usage | UML:Trace | UML:Binding |
+ UML:AssociationEndRole |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation | UML:ReturnAction |
+ UML:SendAction | UML:UninterpretedAction |
+ UML:TerminateAction | UML:DestroyAction |
+ UML:LinkObject | UML:Object |
+ UML:DataValue | UML:UseCaseInstance |
+ UML:ActivityModel | UML:PseudoState |
+ UML:State | UML:CompositeState |
+ UML:SimpleState | UML:SubmachineState |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ActivityState | UML:SignalEvent |
+ UML:CallEvent | UML:TimeEvent |
+ UML:ChangeEvent)* >
+
+
+<!ELEMENT UML:ModelElement.taggedValue (UML:TaggedValue)* >
+
+
+<!ELEMENT UML:Namespace.ownedElement (UML:ModelElement | UML:Comment |
+ UML:Namespace |
+ UML:GeneralizableElement |
+ UML:Feature | UML:Parameter |
+ UML:Constraint | UML:Dependency |
+ UML:Generalization |
+ UML:AssociationEnd | UML:Request |
+ UML:ActionSequence | UML:Action |
+ UML:Link | UML:LinkEnd |
+ UML:Instance | UML:AttributeLink |
+ UML:MessageInstance |
+ UML:Interaction | UML:Message |
+ UML:StateMachine | UML:Guard |
+ UML:StateVertex | UML:Transition |
+ UML:Event | UML:Partition |
+ UML:Collaboration | UML:Classifier |
+ UML:Association | UML:Stereotype |
+ UML:Package | UML:Signal |
+ UML:Node | UML:Component |
+ UML:Interface | UML:Class |
+ UML:DataType | UML:Subsystem |
+ UML:ClassifierRole | UML:Actor |
+ UML:UseCase |
+ UML:ClassifierInState |
+ UML:AssociationClass |
+ UML:Enumeration | UML:Primitive |
+ UML:Structure |
+ UML:AssociationRole | UML:Model |
+ UML:Exception |
+ UML:StructuralFeature |
+ UML:BehavioralFeature |
+ UML:Attribute | UML:Operation |
+ UML:Method | UML:Reception |
+ UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding |
+ UML:AssociationEndRole |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation |
+ UML:ReturnAction | UML:SendAction |
+ UML:UninterpretedAction |
+ UML:TerminateAction |
+ UML:DestroyAction | UML:LinkObject |
+ UML:Object | UML:DataValue |
+ UML:UseCaseInstance |
+ UML:ActivityModel |
+ UML:PseudoState | UML:State |
+ UML:CompositeState |
+ UML:SimpleState |
+ UML:SubmachineState |
+ UML:ActionState |
+ UML:ObjectFlowState |
+ UML:ActivityState |
+ UML:SignalEvent | UML:CallEvent |
+ UML:TimeEvent | UML:ChangeEvent)* >
+
+
+<!ELEMENT UML:Classifier.feature (UML:Feature | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Attribute |
+ UML:Operation | UML:Method |
+ UML:Reception)* >
+
+
+<!ELEMENT UML:BehavioralFeature.parameter (UML:Parameter)* >
+
+
+<!ELEMENT UML:Dependency.subDependencies (UML:Dependency |
+ UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding)* >
+
+
+<!ELEMENT UML:AssociationEnd.qualifier (UML:Attribute)* >
+
+
+<!ELEMENT UML:Association.connection (UML:AssociationEnd |
+ UML:AssociationEndRole)* >
+
+
+<!ELEMENT UML:Stereotype.requiredTag (UML:TaggedValue)* >
+
+
+<!ELEMENT UML:Enumeration.literal (UML:EnumerationLiteral)* >
+
+
+<!ELEMENT UML:Signal.parameter (UML:Parameter)* >
+
+
+<!ELEMENT UML:ActionSequence.action (UML:Action | UML:CreateAction |
+ UML:CallAction |
+ UML:LocalInvocation |
+ UML:ReturnAction | UML:SendAction |
+ UML:UninterpretedAction |
+ UML:TerminateAction |
+ UML:DestroyAction)* >
+
+
+<!ELEMENT UML:Action.actualArgument (UML:Argument)* >
+
+
+<!ELEMENT UML:Link.linkRole (UML:LinkEnd)* >
+
+
+<!ELEMENT UML:Instance.slot (UML:AttributeLink)* >
+
+
+<!ELEMENT UML:Collaboration.interaction (UML:Interaction)* >
+
+
+<!ELEMENT UML:Interaction.message (UML:Message)* >
+
+
+<!ELEMENT UML:StateMachine.top (UML:State | UML:CompositeState |
+ UML:SimpleState | UML:SubmachineState |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ActivityState)* >
+
+<!ELEMENT UML:StateMachine.transitions (UML:Transition)* >
+
+
+<!ELEMENT UML:Transition.guard (UML:Guard)* >
+
+<!ELEMENT UML:Transition.effect (UML:ActionSequence)* >
+
+
+<!ELEMENT UML:State.internalTransition (UML:Transition)* >
+
+<!ELEMENT UML:State.entry (UML:ActionSequence)* >
+
+<!ELEMENT UML:State.exit (UML:ActionSequence)* >
+
+
+<!ELEMENT UML:CompositeState.substate (UML:StateVertex |
+ UML:PseudoState | UML:State |
+ UML:CompositeState |
+ UML:SimpleState |
+ UML:SubmachineState |
+ UML:ActionState |
+ UML:ObjectFlowState |
+ UML:ActivityState)* >
+
+
+<!ELEMENT UML:ActivityModel.partition (UML:Partition)* >
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Refinement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Refinement.mapping (UML:Mapping) >
+
+<!ELEMENT UML:Refinement (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description |
+ UML:Refinement.mapping | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client |
+ UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Refinement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Usage -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Usage (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Usage
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Trace -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Trace (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Trace
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Binding -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Binding (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies |
+ UML:Binding.argument)* >
+<!ATTLIST UML:Binding
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Node -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Node.component (UML:Component)* >
+
+<!ELEMENT UML:Node (UML:ModelElement.name | UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding | UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Node.component | UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Node
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ component IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Component -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Component.deployment (UML:Node)* >
+
+<!ELEMENT UML:Component.implements (UML:ModelElement)* >
+
+<!ELEMENT UML:Component (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Component.deployment |
+ UML:Component.implements |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Component
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ deployment IDREFS #IMPLIED
+ implements IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Comment -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Comment (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Comment
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.ViewElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ViewElement.model (UML:ModelElement)* >
+
+<!ELEMENT UML:ViewElement.presentation (UML:Presentation)* >
+
+<!ELEMENT UML:ViewElement (XMI.extension | UML:ViewElement.model |
+ UML:ViewElement.presentation)* >
+<!ATTLIST UML:ViewElement
+ model IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Presentation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Presentation.geometry (UML:Geometry) >
+
+<!ELEMENT UML:Presentation.style (UML:GraphicMarker) >
+
+<!ELEMENT UML:Presentation.model (UML:ModelElement)* >
+
+<!ELEMENT UML:Presentation.viewElement (UML:ViewElement)* >
+
+<!ELEMENT UML:Presentation (UML:Presentation.geometry |
+ UML:Presentation.style | XMI.extension |
+ UML:Presentation.model |
+ UML:Presentation.viewElement)* >
+<!ATTLIST UML:Presentation
+ model IDREFS #IMPLIED
+ viewElement IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Element -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Element (XMI.extension)* >
+<!ATTLIST UML:Element
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.ModelElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ModelElement.name (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ModelElement.visibility EMPTY >
+<!ATTLIST UML:ModelElement.visibility
+ xmi.value (public | protected | private) #REQUIRED
+>
+
+<!ELEMENT UML:ModelElement.binding (UML:Binding)* >
+
+<!ELEMENT UML:ModelElement.template (UML:ModelElement)* >
+
+<!ELEMENT UML:ModelElement.templateParameter (UML:ModelElement)* >
+
+<!ELEMENT UML:ModelElement.implementation (UML:Component)* >
+
+<!ELEMENT UML:ModelElement.view (UML:ViewElement)* >
+
+<!ELEMENT UML:ModelElement.presentation (UML:Presentation)* >
+
+<!ELEMENT UML:ModelElement.namespace (UML:Namespace)* >
+
+<!ELEMENT UML:ModelElement.constraint (UML:Constraint)* >
+
+<!ELEMENT UML:ModelElement.requirement (UML:Dependency)* >
+
+<!ELEMENT UML:ModelElement.provision (UML:Dependency)* >
+
+<!ELEMENT UML:ModelElement.stereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:ModelElement.elementReference (UML:ElementReference)* >
+
+<!ELEMENT UML:ModelElement.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:ModelElement.behavior (UML:StateMachine)* >
+
+<!ELEMENT UML:ModelElement.partition (UML:Partition)* >
+
+<!ELEMENT UML:ModelElement (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:ModelElement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Namespace -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Namespace (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Namespace
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.GeneralizableElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:GeneralizableElement.isRoot EMPTY >
+<!ATTLIST UML:GeneralizableElement.isRoot
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.isLeaf EMPTY >
+<!ATTLIST UML:GeneralizableElement.isLeaf
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.isAbstract EMPTY >
+<!ATTLIST UML:GeneralizableElement.isAbstract
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.generalization
+ (UML:Generalization)* >
+
+<!ELEMENT UML:GeneralizableElement.specialization
+ (UML:Generalization)* >
+
+<!ELEMENT UML:GeneralizableElement (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:GeneralizableElement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Classifier -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Classifier.parameter (UML:Parameter)* >
+
+<!ELEMENT UML:Classifier.structuralFeature (UML:StructuralFeature)* >
+
+<!ELEMENT UML:Classifier.specification (UML:Classifier)* >
+
+<!ELEMENT UML:Classifier.realization (UML:Classifier)* >
+
+<!ELEMENT UML:Classifier.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Classifier.participant (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Classifier.createAction (UML:CreateAction)* >
+
+<!ELEMENT UML:Classifier.instance (UML:Instance)* >
+
+<!ELEMENT UML:Classifier.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:Classifier.classifierRole (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Classifier.classifierInState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:Classifier (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Classifier
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Interface -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Interface (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Interface
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Class -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Class.isActive EMPTY >
+<!ATTLIST UML:Class.isActive
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Class (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Class.isActive | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Class
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isActive (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.DataType -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DataType (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:DataType
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Feature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Feature.ownerScope EMPTY >
+<!ATTLIST UML:Feature.ownerScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:Feature.owner (UML:Classifier)* >
+
+<!ELEMENT UML:Feature.classifierRole (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Feature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Feature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.StructuralFeature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StructuralFeature.multiplicity (#PCDATA |
+ XMI.reference)* >
+
+<!ELEMENT UML:StructuralFeature.changeable EMPTY >
+<!ATTLIST UML:StructuralFeature.changeable
+ xmi.value (none | frozen | addOnly) #REQUIRED
+>
+
+<!ELEMENT UML:StructuralFeature.targetScope EMPTY >
+<!ATTLIST UML:StructuralFeature.targetScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:StructuralFeature.type (UML:Classifier)* >
+
+<!ELEMENT UML:StructuralFeature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:StructuralFeature.multiplicity |
+ UML:StructuralFeature.changeable |
+ UML:StructuralFeature.targetScope |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:StructuralFeature.type |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:StructuralFeature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.BehavioralFeature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:BehavioralFeature.isQuery EMPTY >
+<!ATTLIST UML:BehavioralFeature.isQuery
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:BehavioralFeature.raisedException (UML:Exception)* >
+
+<!ELEMENT UML:BehavioralFeature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:BehavioralFeature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Operation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Operation.specification (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Operation.isPolymorphic EMPTY >
+<!ATTLIST UML:Operation.isPolymorphic
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Operation.concurrency EMPTY >
+<!ATTLIST UML:Operation.concurrency
+ xmi.value (sequential | guarded | concurrent) #REQUIRED
+>
+
+<!ELEMENT UML:Operation.method (UML:Method)* >
+
+<!ELEMENT UML:Operation.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:Operation.occurrence (UML:CallEvent)* >
+
+<!ELEMENT UML:Operation (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ UML:Operation.specification |
+ UML:Operation.isPolymorphic |
+ UML:Operation.concurrency | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Request.action |
+ UML:Request.messageInstance |
+ UML:Operation.method |
+ UML:Operation.collaboration |
+ UML:Operation.occurrence |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Operation
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ specification CDATA #IMPLIED
+ isPolymorphic (false | true) #IMPLIED
+ concurrency (sequential | guarded | concurrent) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ method IDREFS #IMPLIED
+ Operation.collaboration IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Method -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Method.body (UML:ProcedureExpression) >
+
+<!ELEMENT UML:Method.specification (UML:Operation)* >
+
+<!ELEMENT UML:Method (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery | UML:Method.body |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Method.specification |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Method
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Parameter -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Parameter.defaultValue (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Parameter.kind EMPTY >
+<!ATTLIST UML:Parameter.kind
+ xmi.value (in | inout | out | return) #REQUIRED
+>
+
+<!ELEMENT UML:Parameter.behavioralFeature (UML:BehavioralFeature)* >
+
+<!ELEMENT UML:Parameter.type (UML:Classifier)* >
+
+<!ELEMENT UML:Parameter.signal (UML:Signal)* >
+
+<!ELEMENT UML:Parameter (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Parameter.defaultValue | UML:Parameter.kind |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Parameter.behavioralFeature |
+ UML:Parameter.type | UML:Parameter.signal |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Parameter
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ kind (in | inout | out | return) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ behavioralFeature IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Constraint -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Constraint.body (UML:BooleanExpression) >
+
+<!ELEMENT UML:Constraint.constrainedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Constraint.constrainedStereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:Constraint (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Constraint.body | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Constraint.constrainedElement |
+ UML:Constraint.constrainedStereotype |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Constraint
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ constrainedElement IDREFS #IMPLIED
+ constrainedStereotype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Dependency -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Dependency.description (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Dependency.owningDependency (UML:Dependency)* >
+
+<!ELEMENT UML:Dependency.client (UML:ModelElement)* >
+
+<!ELEMENT UML:Dependency.supplier (UML:ModelElement)* >
+
+<!ELEMENT UML:Dependency (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client |
+ UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Dependency
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Generalization -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Generalization.discriminator (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Generalization.subtype (UML:GeneralizableElement)* >
+
+<!ELEMENT UML:Generalization.supertype (UML:GeneralizableElement)* >
+
+<!ELEMENT UML:Generalization (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Generalization.discriminator |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Generalization.subtype |
+ UML:Generalization.supertype |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Generalization
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ discriminator CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ subtype IDREFS #IMPLIED
+ supertype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.AssociationEnd -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationEnd.isNavigable EMPTY >
+<!ATTLIST UML:AssociationEnd.isNavigable
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.isOrdered EMPTY >
+<!ATTLIST UML:AssociationEnd.isOrdered
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.aggregation EMPTY >
+<!ATTLIST UML:AssociationEnd.aggregation
+ xmi.value (none | shared | composite) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:AssociationEnd.changeable EMPTY >
+<!ATTLIST UML:AssociationEnd.changeable
+ xmi.value (none | frozen | addOnly) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.targetScope EMPTY >
+<!ATTLIST UML:AssociationEnd.targetScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.type (UML:Classifier)* >
+
+<!ELEMENT UML:AssociationEnd.specification (UML:Classifier)* >
+
+<!ELEMENT UML:AssociationEnd.association (UML:Association)* >
+
+<!ELEMENT UML:AssociationEnd.linkEnd (UML:LinkEnd)* >
+
+<!ELEMENT UML:AssociationEnd.associationEndRole
+ (UML:AssociationEndRole)* >
+
+<!ELEMENT UML:AssociationEnd (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:AssociationEnd.isNavigable |
+ UML:AssociationEnd.isOrdered |
+ UML:AssociationEnd.aggregation |
+ UML:AssociationEnd.multiplicity |
+ UML:AssociationEnd.changeable |
+ UML:AssociationEnd.targetScope |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AssociationEnd.type |
+ UML:AssociationEnd.specification |
+ UML:AssociationEnd.association |
+ UML:AssociationEnd.linkEnd |
+ UML:AssociationEnd.associationEndRole |
+ UML:ModelElement.taggedValue |
+ UML:AssociationEnd.qualifier)* >
+<!ATTLIST UML:AssociationEnd
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isNavigable (false | true) #IMPLIED
+ isOrdered (false | true) #IMPLIED
+ aggregation (none | shared | composite) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Association -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Association.link (UML:Link)* >
+
+<!ELEMENT UML:Association.associationEnd (UML:AssociationRole)* >
+
+<!ELEMENT UML:Association (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Association.connection)* >
+<!ATTLIST UML:Association
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.AssociationClass -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationClass (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Class.isActive | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature |
+ UML:Association.connection)* >
+<!ATTLIST UML:AssociationClass
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isActive (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ Classifier.associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ Association.associationEnd IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Attribute -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Attribute.initialValue (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Attribute.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Attribute.attributeLink (UML:AttributeLink)* >
+
+<!ELEMENT UML:Attribute (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:StructuralFeature.multiplicity |
+ UML:StructuralFeature.changeable |
+ UML:StructuralFeature.targetScope |
+ UML:Attribute.initialValue | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:StructuralFeature.type |
+ UML:Attribute.associationEnd |
+ UML:Attribute.attributeLink |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Attribute
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Extension_Mechanisms.TaggedValue -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TaggedValue.tag (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:TaggedValue.value (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:TaggedValue.modelElement (UML:ModelElement)* >
+
+<!ELEMENT UML:TaggedValue.stereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:TaggedValue (UML:TaggedValue.tag | UML:TaggedValue.value |
+ XMI.extension | UML:TaggedValue.modelElement |
+ UML:TaggedValue.stereotype)* >
+<!ATTLIST UML:TaggedValue
+ tag CDATA #IMPLIED
+ value CDATA #IMPLIED
+ modelElement IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Extension_Mechanisms.Stereotype -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Stereotype.icon (UML:Geometry) >
+
+<!ELEMENT UML:Stereotype.baseClass (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Stereotype.extendedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Stereotype.stereotypeConstraint (UML:Constraint)* >
+
+<!ELEMENT UML:Stereotype (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Stereotype.icon | UML:Stereotype.baseClass |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Stereotype.extendedElement |
+ UML:Stereotype.stereotypeConstraint |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Stereotype.requiredTag)* >
+<!ATTLIST UML:Stereotype
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ baseClass CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ extendedElement IDREFS #IMPLIED
+ stereotypeConstraint IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Enumeration -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Enumeration (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature |
+ UML:Enumeration.literal)* >
+<!ATTLIST UML:Enumeration
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.EnumerationLiteral -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:EnumerationLiteral.name (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:EnumerationLiteral.enumeration (UML:Enumeration)* >
+
+<!ELEMENT UML:EnumerationLiteral (UML:EnumerationLiteral.name |
+ XMI.extension |
+ UML:EnumerationLiteral.enumeration)* >
+<!ATTLIST UML:EnumerationLiteral
+ name CDATA #IMPLIED
+ enumeration IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Primitive -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Primitive (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Primitive
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Structure -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Structure (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Structure
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.MultiplicityRange -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:MultiplicityRange.lower (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:MultiplicityRange.upper (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:MultiplicityRange (UML:MultiplicityRange.lower |
+ UML:MultiplicityRange.upper |
+ XMI.extension)* >
+<!ATTLIST UML:MultiplicityRange
+ lower CDATA #IMPLIED
+ upper CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Geometry -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Geometry.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Geometry (UML:Geometry.body | XMI.extension)* >
+<!ATTLIST UML:Geometry
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.GraphicMarker -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:GraphicMarker.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:GraphicMarker (UML:GraphicMarker.body | XMI.extension)* >
+<!ATTLIST UML:GraphicMarker
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Mapping -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Mapping.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Mapping (UML:Mapping.body | XMI.extension)* >
+<!ATTLIST UML:Mapping
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Expression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Expression.language (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Expression.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Expression (UML:Expression.language | UML:Expression.body |
+ XMI.extension)* >
+<!ATTLIST UML:Expression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.ProcedureExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ProcedureExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:ProcedureExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.ObjectSetExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ObjectSetExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:ObjectSetExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.TimeExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TimeExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:TimeExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.BooleanExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:BooleanExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:BooleanExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Package -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Package.elementReference (UML:ElementReference)* >
+
+<!ELEMENT UML:Package (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Package
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Subsystem -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Subsystem.isInstantiable EMPTY >
+<!ATTLIST UML:Subsystem.isInstantiable
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Subsystem (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Subsystem.isInstantiable | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Subsystem
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isInstantiable (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Model (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Model
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.ElementReference -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ElementReference.visibility EMPTY >
+<!ATTLIST UML:ElementReference.visibility
+ xmi.value (public | protected | private) #REQUIRED
+>
+
+<!ELEMENT UML:ElementReference.alias (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ElementReference.referencedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:ElementReference.package (UML:Package)* >
+
+<!ELEMENT UML:ElementReference (UML:ElementReference.visibility |
+ UML:ElementReference.alias |
+ XMI.extension |
+ UML:ElementReference.referencedElement |
+ UML:ElementReference.package)* >
+<!ATTLIST UML:ElementReference
+ visibility (public | protected | private) #IMPLIED
+ alias CDATA #IMPLIED
+ referencedElement IDREFS #IMPLIED
+ package IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Request -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Request.action (UML:Action)* >
+
+<!ELEMENT UML:Request.messageInstance (UML:MessageInstance)* >
+
+<!ELEMENT UML:Request (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Request.action |
+ UML:Request.messageInstance |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Request
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Signal -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Signal.reception (UML:Reception)* >
+
+<!ELEMENT UML:Signal.occurrence (UML:SignalEvent)* >
+
+<!ELEMENT UML:Signal (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Request.action | UML:Request.messageInstance |
+ UML:Signal.reception | UML:Signal.occurrence |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Signal.parameter)* >
+<!ATTLIST UML:Signal
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ reception IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Exception -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Exception.context (UML:BehavioralFeature)* >
+
+<!ELEMENT UML:Exception (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Request.action |
+ UML:Request.messageInstance |
+ UML:Signal.reception | UML:Signal.occurrence |
+ UML:Exception.context |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Signal.parameter)* >
+<!ATTLIST UML:Exception
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ reception IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Reception -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Reception.isPolymorphic EMPTY >
+<!ATTLIST UML:Reception.isPolymorphic
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Reception.specification (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Reception.signal (UML:Signal)* >
+
+<!ELEMENT UML:Reception (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ UML:Reception.isPolymorphic |
+ UML:Reception.specification | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Reception.signal |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Reception
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ isPolymorphic (false | true) #IMPLIED
+ specification CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Argument -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Argument.value (UML:Expression | UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Argument.action (UML:Action)* >
+
+<!ELEMENT UML:Argument (UML:Argument.value | XMI.extension |
+ UML:Argument.action)* >
+<!ATTLIST UML:Argument
+ action IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.ActionSequence -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActionSequence.transition (UML:Transition)* >
+
+<!ELEMENT UML:ActionSequence.state (UML:State)* >
+
+<!ELEMENT UML:ActionSequence.state2 (UML:State)* >
+
+<!ELEMENT UML:ActionSequence (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ActionSequence.transition |
+ UML:ActionSequence.state |
+ UML:ActionSequence.state2 |
+ UML:ModelElement.taggedValue |
+ UML:ActionSequence.action)* >
+<!ATTLIST UML:ActionSequence
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ state2 IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Action -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Action.recurrence (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Action.target (UML:ObjectSetExpression) >
+
+<!ELEMENT UML:Action.isAsynchronous EMPTY >
+<!ATTLIST UML:Action.isAsynchronous
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Action.script (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Action.request (UML:Request)* >
+
+<!ELEMENT UML:Action.message (UML:Message)* >
+
+<!ELEMENT UML:Action.actionSequence (UML:ActionSequence)* >
+
+<!ELEMENT UML:Action (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Action.request |
+ UML:Action.message | UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:Action
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.CreateAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CreateAction.instantiation (UML:Classifier)* >
+
+<!ELEMENT UML:CreateAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:CreateAction.instantiation |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:CreateAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ instantiation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.CallAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CallAction.mode EMPTY >
+<!ATTLIST UML:CallAction.mode
+ xmi.value (synchronous | asynchronous) #REQUIRED
+>
+
+<!ELEMENT UML:CallAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ UML:CallAction.mode | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:CallAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ mode (synchronous | asynchronous) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LocalInvocation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LocalInvocation (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:LocalInvocation
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.ReturnAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ReturnAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:ReturnAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.SendAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SendAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:SendAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.UninterpretedAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UninterpretedAction.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:UninterpretedAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence |
+ UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script |
+ UML:UninterpretedAction.body |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request |
+ UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:UninterpretedAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ body CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.TerminateAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TerminateAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:TerminateAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.DestroyAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DestroyAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:DestroyAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Link -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Link.association (UML:Association)* >
+
+<!ELEMENT UML:Link (UML:ModelElement.name | UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Link.association |
+ UML:ModelElement.taggedValue | UML:Link.linkRole)* >
+<!ATTLIST UML:Link
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkEnd -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LinkEnd.link (UML:Link)* >
+
+<!ELEMENT UML:LinkEnd.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:LinkEnd.instance (UML:Instance)* >
+
+<!ELEMENT UML:LinkEnd (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:LinkEnd.link |
+ UML:LinkEnd.associationEnd | UML:LinkEnd.instance |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:LinkEnd
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Instance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Instance.linkEnd (UML:LinkEnd)* >
+
+<!ELEMENT UML:Instance.messageInstance3 (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.messageInstance2 (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.messageInstance (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.attributeLink (UML:AttributeLink)* >
+
+<!ELEMENT UML:Instance.classifier (UML:Classifier)* >
+
+<!ELEMENT UML:Instance (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:Instance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.AttributeLink -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AttributeLink.instance (UML:Instance)* >
+
+<!ELEMENT UML:AttributeLink.attribute (UML:Attribute)* >
+
+<!ELEMENT UML:AttributeLink.value (UML:Instance)* >
+
+<!ELEMENT UML:AttributeLink (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AttributeLink.instance |
+ UML:AttributeLink.attribute |
+ UML:AttributeLink.value |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:AttributeLink
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ attribute IDREFS #IMPLIED
+ value IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Object -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Object (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue | UML:Instance.slot)* >
+<!ATTLIST UML:Object
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.DataValue -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DataValue (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:DataValue
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkObject -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LinkObject (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier | UML:Link.association |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot | UML:Link.linkRole)* >
+<!ATTLIST UML:LinkObject
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.MessageInstance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:MessageInstance.specification (UML:Request)* >
+
+<!ELEMENT UML:MessageInstance.sender (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance.receiver (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance.argument (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:MessageInstance.specification |
+ UML:MessageInstance.sender |
+ UML:MessageInstance.receiver |
+ UML:MessageInstance.argument |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:MessageInstance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ sender IDREFS #IMPLIED
+ receiver IDREFS #IMPLIED
+ argument IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Collaboration -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Collaboration.representedClassifier (UML:Classifier)* >
+
+<!ELEMENT UML:Collaboration.representedOperation (UML:Operation)* >
+
+<!ELEMENT UML:Collaboration.constrainingElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Collaboration (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Collaboration.representedClassifier |
+ UML:Collaboration.representedOperation |
+ UML:Collaboration.constrainingElement |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Collaboration.interaction)* >
+<!ATTLIST UML:Collaboration
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ representedClassifier IDREFS #IMPLIED
+ representedOperation IDREFS #IMPLIED
+ constrainingElement IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Interaction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Interaction.context (UML:Collaboration)* >
+
+<!ELEMENT UML:Interaction (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Interaction.context |
+ UML:ModelElement.taggedValue |
+ UML:Interaction.message)* >
+<!ATTLIST UML:Interaction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.AssociationRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationRole.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:AssociationRole.base (UML:Association)* >
+
+<!ELEMENT UML:AssociationRole.namespace (UML:Collaboration)* >
+
+<!ELEMENT UML:AssociationRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:AssociationRole.multiplicity |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:AssociationRole.base |
+ UML:AssociationRole.namespace |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Association.connection)* >
+<!ATTLIST UML:AssociationRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ ModelElement.namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ AssociationRole.namespace IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.AssociationEndRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationEndRole.associationRole
+ (UML:AssociationRole)* >
+
+<!ELEMENT UML:AssociationEndRole.base (UML:AssociationEnd)* >
+
+<!ELEMENT UML:AssociationEndRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:AssociationEnd.isNavigable |
+ UML:AssociationEnd.isOrdered |
+ UML:AssociationEnd.aggregation |
+ UML:AssociationEnd.multiplicity |
+ UML:AssociationEnd.changeable |
+ UML:AssociationEnd.targetScope |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AssociationEnd.type |
+ UML:AssociationEnd.specification |
+ UML:AssociationEnd.association |
+ UML:AssociationEnd.linkEnd |
+ UML:AssociationEnd.associationEndRole |
+ UML:AssociationEndRole.associationRole |
+ UML:AssociationEndRole.base |
+ UML:ModelElement.taggedValue |
+ UML:AssociationEnd.qualifier)* >
+<!ATTLIST UML:AssociationEndRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isNavigable (false | true) #IMPLIED
+ isOrdered (false | true) #IMPLIED
+ aggregation (none | shared | composite) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ associationRole IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Message -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Message.interaction (UML:Interaction)* >
+
+<!ELEMENT UML:Message.predecessor (UML:Message)* >
+
+<!ELEMENT UML:Message.message2 (UML:Message)* >
+
+<!ELEMENT UML:Message.message (UML:Message)* >
+
+<!ELEMENT UML:Message.activator (UML:Message)* >
+
+<!ELEMENT UML:Message.action (UML:Action)* >
+
+<!ELEMENT UML:Message.receiver (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Message.sender (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Message (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Message.interaction | UML:Message.predecessor |
+ UML:Message.message2 | UML:Message.message |
+ UML:Message.activator | UML:Message.action |
+ UML:Message.receiver | UML:Message.sender |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Message
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ interaction IDREFS #IMPLIED
+ predecessor IDREFS #IMPLIED
+ message2 IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ activator IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ receiver IDREFS #IMPLIED
+ sender IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.ClassifierRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ClassifierRole.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ClassifierRole.associationEndRole
+ (UML:AssociationEndRole)* >
+
+<!ELEMENT UML:ClassifierRole.namespace (UML:Collaboration)* >
+
+<!ELEMENT UML:ClassifierRole.message2 (UML:Message)* >
+
+<!ELEMENT UML:ClassifierRole.message (UML:Message)* >
+
+<!ELEMENT UML:ClassifierRole.base (UML:Classifier)* >
+
+<!ELEMENT UML:ClassifierRole.availableFeature (UML:Feature)* >
+
+<!ELEMENT UML:ClassifierRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:ClassifierRole.multiplicity |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ClassifierRole.associationEndRole |
+ UML:ClassifierRole.namespace |
+ UML:ClassifierRole.message2 |
+ UML:ClassifierRole.message |
+ UML:ClassifierRole.base |
+ UML:ClassifierRole.availableFeature |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:ClassifierRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ ModelElement.namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ ClassifierRole.namespace IDREFS #IMPLIED
+ message2 IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ availableFeature IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.Actor -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Actor (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Actor
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.UseCase -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UseCase.extensionPoint (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:UseCase (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:UseCase.extensionPoint | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:UseCase
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ extensionPoint CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.UseCaseInstance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UseCaseInstance (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:UseCaseInstance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.StateMachine -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StateMachine.context (UML:ModelElement)* >
+
+<!ELEMENT UML:StateMachine.submachineState (UML:SubmachineState)* >
+
+<!ELEMENT UML:StateMachine (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateMachine.context |
+ UML:StateMachine.submachineState |
+ UML:ModelElement.taggedValue |
+ UML:StateMachine.top |
+ UML:StateMachine.transitions)* >
+<!ATTLIST UML:StateMachine
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ submachineState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Guard -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Guard.expression (UML:BooleanExpression) >
+
+<!ELEMENT UML:Guard.transition (UML:Transition)* >
+
+<!ELEMENT UML:Guard (UML:ModelElement.name |
+ UML:ModelElement.visibility | UML:Guard.expression |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Guard.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Guard
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.StateVertex -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StateVertex.outgoing (UML:Transition)* >
+
+<!ELEMENT UML:StateVertex.incoming (UML:Transition)* >
+
+<!ELEMENT UML:StateVertex.parent (UML:CompositeState)* >
+
+<!ELEMENT UML:StateVertex (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:StateVertex
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Transition -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Transition.source (UML:StateVertex)* >
+
+<!ELEMENT UML:Transition.target (UML:StateVertex)* >
+
+<!ELEMENT UML:Transition.statemachine (UML:StateMachine)* >
+
+<!ELEMENT UML:Transition.state (UML:State)* >
+
+<!ELEMENT UML:Transition.trigger (UML:Event)* >
+
+<!ELEMENT UML:Transition (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Transition.source | UML:Transition.target |
+ UML:Transition.statemachine |
+ UML:Transition.state | UML:Transition.trigger |
+ UML:ModelElement.taggedValue |
+ UML:Transition.guard | UML:Transition.effect)* >
+<!ATTLIST UML:Transition
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ source IDREFS #IMPLIED
+ target IDREFS #IMPLIED
+ statemachine IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ trigger IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.PseudoState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:PseudoState.kind EMPTY >
+<!ATTLIST UML:PseudoState.kind
+ xmi.value (initial | deepHistory | shallowHistory | join | fork | branch | final) #REQUIRED
+>
+
+<!ELEMENT UML:PseudoState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:PseudoState.kind | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:PseudoState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ kind (initial | deepHistory | shallowHistory | join | fork | branch | final) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.State -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:State.stateMachine (UML:StateMachine)* >
+
+<!ELEMENT UML:State.deferredEvent (UML:Event)* >
+
+<!ELEMENT UML:State.classifierInState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:State (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing | UML:StateVertex.incoming |
+ UML:StateVertex.parent | UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition | UML:State.entry |
+ UML:State.exit)* >
+<!ATTLIST UML:State
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.CompositeState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CompositeState.isConcurrent EMPTY >
+<!ATTLIST UML:CompositeState.isConcurrent
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:CompositeState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:CompositeState.isConcurrent |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit |
+ UML:CompositeState.substate)* >
+<!ATTLIST UML:CompositeState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isConcurrent (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SimpleState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SimpleState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:SimpleState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SubmachineState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SubmachineState.stateMachine (UML:StateMachine)* >
+
+<!ELEMENT UML:SubmachineState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:SubmachineState.stateMachine |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:SubmachineState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ State.stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ SubmachineState.stateMachine IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Event -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Event.state (UML:State)* >
+
+<!ELEMENT UML:Event.transition (UML:Transition)* >
+
+<!ELEMENT UML:Event (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Event
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SignalEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SignalEvent.signal (UML:Signal)* >
+
+<!ELEMENT UML:SignalEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition | UML:SignalEvent.signal |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:SignalEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.CallEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CallEvent.operation (UML:Operation)* >
+
+<!ELEMENT UML:CallEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition | UML:CallEvent.operation |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:CallEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ operation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.TimeEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TimeEvent.duration (UML:TimeExpression) >
+
+<!ELEMENT UML:TimeEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:TimeEvent.duration | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:TimeEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ChangeEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ChangeEvent.changeExpression (UML:BooleanExpression) >
+
+<!ELEMENT UML:ChangeEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:ChangeEvent.changeExpression |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:ChangeEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActivityModel -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActivityModel (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateMachine.context |
+ UML:StateMachine.submachineState |
+ UML:ModelElement.taggedValue |
+ UML:StateMachine.top |
+ UML:StateMachine.transitions |
+ UML:ActivityModel.partition)* >
+<!ATTLIST UML:ActivityModel
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ submachineState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Partition -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Partition.contents (UML:ModelElement)* >
+
+<!ELEMENT UML:Partition.activityModel (UML:ActivityModel)* >
+
+<!ELEMENT UML:Partition (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Partition.contents |
+ UML:Partition.activityModel |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Partition
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ contents IDREFS #IMPLIED
+ activityModel IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActionState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActionState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ActionState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ObjectFlowState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ObjectFlowState.typeState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:ObjectFlowState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ObjectFlowState.typeState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ObjectFlowState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ typeState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ClassifierInState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ClassifierInState.objectFlowState (UML:ObjectFlowState)* >
+
+<!ELEMENT UML:ClassifierInState.inState (UML:State)* >
+
+<!ELEMENT UML:ClassifierInState.type (UML:Classifier)* >
+
+<!ELEMENT UML:ClassifierInState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ClassifierInState.objectFlowState |
+ UML:ClassifierInState.inState |
+ UML:ClassifierInState.type |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:ClassifierInState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ objectFlowState IDREFS #IMPLIED
+ inState IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActivityState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActivityState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:SubmachineState.stateMachine |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ActivityState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ State.stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ SubmachineState.stateMachine IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Foundation (UML:Auxiliary_Elements | UML:Core |
+ UML:Extension_Mechanisms | UML:Data_Types)* >
+<!ATTLIST UML:Foundation
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Auxiliary_Elements (UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding | UML:Node |
+ UML:Component | UML:Comment |
+ UML:ViewElement | UML:Presentation)* >
+<!ATTLIST UML:Auxiliary_Elements
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Core (UML:Element | UML:ModelElement | UML:Namespace |
+ UML:GeneralizableElement | UML:Classifier |
+ UML:Interface | UML:Class | UML:DataType |
+ UML:Feature | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Operation | UML:Method |
+ UML:Parameter | UML:Constraint | UML:Dependency |
+ UML:Generalization | UML:AssociationEnd |
+ UML:Association | UML:AssociationClass |
+ UML:Attribute)* >
+<!ATTLIST UML:Core
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Extension_Mechanisms (UML:TaggedValue | UML:Stereotype)* >
+<!ATTLIST UML:Extension_Mechanisms
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Data_Types (UML:Enumeration | UML:EnumerationLiteral |
+ UML:Primitive | UML:Structure |
+ UML:MultiplicityRange | UML:Geometry |
+ UML:GraphicMarker | UML:Mapping |
+ UML:Expression | UML:ProcedureExpression |
+ UML:ObjectSetExpression | UML:TimeExpression |
+ UML:BooleanExpression)* >
+<!ATTLIST UML:Data_Types
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Model_Management (UML:Package | UML:Subsystem | UML:Model |
+ UML:ElementReference)* >
+<!ATTLIST UML:Model_Management
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Behavioral_Elements (UML:Common_Behavior |
+ UML:Collaborations | UML:Use_Cases |
+ UML:State_Machines)* >
+<!ATTLIST UML:Behavioral_Elements
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Common_Behavior (UML:Request | UML:Signal | UML:Exception |
+ UML:Reception | UML:Argument |
+ UML:ActionSequence | UML:Action |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation | UML:ReturnAction |
+ UML:SendAction | UML:UninterpretedAction |
+ UML:TerminateAction | UML:DestroyAction |
+ UML:Link | UML:LinkEnd | UML:Instance |
+ UML:AttributeLink | UML:Object |
+ UML:DataValue | UML:LinkObject |
+ UML:MessageInstance)* >
+<!ATTLIST UML:Common_Behavior
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Collaborations (UML:Collaboration | UML:Interaction |
+ UML:AssociationRole |
+ UML:AssociationEndRole | UML:Message |
+ UML:ClassifierRole)* >
+<!ATTLIST UML:Collaborations
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Use_Cases (UML:Actor | UML:UseCase |
+ UML:UseCaseInstance)* >
+<!ATTLIST UML:Use_Cases
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:State_Machines (UML:StateMachine | UML:Guard |
+ UML:StateVertex | UML:Transition |
+ UML:PseudoState | UML:State |
+ UML:CompositeState | UML:SimpleState |
+ UML:SubmachineState | UML:Event |
+ UML:SignalEvent | UML:CallEvent |
+ UML:TimeEvent | UML:ChangeEvent |
+ UML:ActivityModel | UML:Partition |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ClassifierInState |
+ UML:ActivityState)* >
+<!ATTLIST UML:State_Machines
+ %XMI.element.att;
+ %XMI.link.att;
+>
diff --git a/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
new file mode 100755
index 00000000000..7eefd5b7e0b
--- /dev/null
+++ b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
@@ -0,0 +1,35 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "File2.idl";
+my $dtd = "XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+
+$I2X = $target->CreateProcess ("$ENV{'ACE_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+$target->DeleteFile($xmi);
+
+exit $status;
diff --git a/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd
new file mode 100644
index 00000000000..3b0ef4154c4
--- /dev/null
+++ b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd
@@ -0,0 +1,6401 @@
+<!-- ===================================================================== -->
+<!--
+ * This file is part of CARDAMOM (R) which is jointly developed by THALES
+ * and SELEX Sistemi Integrati. It is derivative work based on PERCO
+ * Copyright (C) THALES 2000-2003. All rights reserved.
+ * Copyright (C) THALES 2004-2005. All rights reserved.
+ * Copyright (C) SELEX SISTEMI INTEGRATI and THALES 2006-2007.
+ * All rights reserved.
+ *
+ * CARDAMOM is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Library General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * CARDAMOM is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
+ * License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with CARDAMOM; see the file COPYING. If not, write to the
+ * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<!-- ===================================================================== -->
+<!-- Generated by: XMI Framework 1.0 -->
+<!-- Date: Fri Oct 22 14:31:09 PDT 1999 -->
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- This section of the DTD contains XML declarations required by -->
+<!-- XMI. -->
+<!-- _______________________________________________________________ -->
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- 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.metametamodel identifies other files associated with the -->
+<!-- transferred data -->
+<!-- _______________________________________________________________ -->
+
+<!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;
+>
+
+<!ATTLIST XMI
+ xmlns:UML CDATA #IMPLIED
+>
+
+
+<!ELEMENT UML:Binding.argument (UML:ModelElement | UML:Comment |
+ UML:Namespace | UML:GeneralizableElement |
+ UML:Feature | UML:Parameter |
+ UML:Constraint | UML:Dependency |
+ UML:Generalization | UML:AssociationEnd |
+ UML:Request | UML:ActionSequence |
+ UML:Action | UML:Link | UML:LinkEnd |
+ UML:Instance | UML:AttributeLink |
+ UML:MessageInstance | UML:Interaction |
+ UML:Message | UML:StateMachine |
+ UML:Guard | UML:StateVertex |
+ UML:Transition | UML:Event |
+ UML:Partition | UML:Collaboration |
+ UML:Classifier | UML:Association |
+ UML:Stereotype | UML:Package |
+ UML:Signal | UML:Node | UML:Component |
+ UML:Interface | UML:Class | UML:DataType |
+ UML:Subsystem | UML:ClassifierRole |
+ UML:Actor | UML:UseCase |
+ UML:ClassifierInState |
+ UML:AssociationClass | UML:Enumeration |
+ UML:Primitive | UML:Structure |
+ UML:AssociationRole | UML:Model |
+ UML:Exception | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Attribute |
+ UML:Operation | UML:Method |
+ UML:Reception | UML:Refinement |
+ UML:Usage | UML:Trace | UML:Binding |
+ UML:AssociationEndRole |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation | UML:ReturnAction |
+ UML:SendAction | UML:UninterpretedAction |
+ UML:TerminateAction | UML:DestroyAction |
+ UML:LinkObject | UML:Object |
+ UML:DataValue | UML:UseCaseInstance |
+ UML:ActivityModel | UML:PseudoState |
+ UML:State | UML:CompositeState |
+ UML:SimpleState | UML:SubmachineState |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ActivityState | UML:SignalEvent |
+ UML:CallEvent | UML:TimeEvent |
+ UML:ChangeEvent)* >
+
+
+<!ELEMENT UML:ModelElement.taggedValue (UML:TaggedValue)* >
+
+
+<!ELEMENT UML:Namespace.ownedElement (UML:ModelElement | UML:Comment |
+ UML:Namespace |
+ UML:GeneralizableElement |
+ UML:Feature | UML:Parameter |
+ UML:Constraint | UML:Dependency |
+ UML:Generalization |
+ UML:AssociationEnd | UML:Request |
+ UML:ActionSequence | UML:Action |
+ UML:Link | UML:LinkEnd |
+ UML:Instance | UML:AttributeLink |
+ UML:MessageInstance |
+ UML:Interaction | UML:Message |
+ UML:StateMachine | UML:Guard |
+ UML:StateVertex | UML:Transition |
+ UML:Event | UML:Partition |
+ UML:Collaboration | UML:Classifier |
+ UML:Association | UML:Stereotype |
+ UML:Package | UML:Signal |
+ UML:Node | UML:Component |
+ UML:Interface | UML:Class |
+ UML:DataType | UML:Subsystem |
+ UML:ClassifierRole | UML:Actor |
+ UML:UseCase |
+ UML:ClassifierInState |
+ UML:AssociationClass |
+ UML:Enumeration | UML:Primitive |
+ UML:Structure |
+ UML:AssociationRole | UML:Model |
+ UML:Exception |
+ UML:StructuralFeature |
+ UML:BehavioralFeature |
+ UML:Attribute | UML:Operation |
+ UML:Method | UML:Reception |
+ UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding |
+ UML:AssociationEndRole |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation |
+ UML:ReturnAction | UML:SendAction |
+ UML:UninterpretedAction |
+ UML:TerminateAction |
+ UML:DestroyAction | UML:LinkObject |
+ UML:Object | UML:DataValue |
+ UML:UseCaseInstance |
+ UML:ActivityModel |
+ UML:PseudoState | UML:State |
+ UML:CompositeState |
+ UML:SimpleState |
+ UML:SubmachineState |
+ UML:ActionState |
+ UML:ObjectFlowState |
+ UML:ActivityState |
+ UML:SignalEvent | UML:CallEvent |
+ UML:TimeEvent | UML:ChangeEvent)* >
+
+
+<!ELEMENT UML:Classifier.feature (UML:Feature | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Attribute |
+ UML:Operation | UML:Method |
+ UML:Reception)* >
+
+
+<!ELEMENT UML:BehavioralFeature.parameter (UML:Parameter)* >
+
+
+<!ELEMENT UML:Dependency.subDependencies (UML:Dependency |
+ UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding)* >
+
+
+<!ELEMENT UML:AssociationEnd.qualifier (UML:Attribute)* >
+
+
+<!ELEMENT UML:Association.connection (UML:AssociationEnd |
+ UML:AssociationEndRole)* >
+
+
+<!ELEMENT UML:Stereotype.requiredTag (UML:TaggedValue)* >
+
+
+<!ELEMENT UML:Enumeration.literal (UML:EnumerationLiteral)* >
+
+
+<!ELEMENT UML:Signal.parameter (UML:Parameter)* >
+
+
+<!ELEMENT UML:ActionSequence.action (UML:Action | UML:CreateAction |
+ UML:CallAction |
+ UML:LocalInvocation |
+ UML:ReturnAction | UML:SendAction |
+ UML:UninterpretedAction |
+ UML:TerminateAction |
+ UML:DestroyAction)* >
+
+
+<!ELEMENT UML:Action.actualArgument (UML:Argument)* >
+
+
+<!ELEMENT UML:Link.linkRole (UML:LinkEnd)* >
+
+
+<!ELEMENT UML:Instance.slot (UML:AttributeLink)* >
+
+
+<!ELEMENT UML:Collaboration.interaction (UML:Interaction)* >
+
+
+<!ELEMENT UML:Interaction.message (UML:Message)* >
+
+
+<!ELEMENT UML:StateMachine.top (UML:State | UML:CompositeState |
+ UML:SimpleState | UML:SubmachineState |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ActivityState)* >
+
+<!ELEMENT UML:StateMachine.transitions (UML:Transition)* >
+
+
+<!ELEMENT UML:Transition.guard (UML:Guard)* >
+
+<!ELEMENT UML:Transition.effect (UML:ActionSequence)* >
+
+
+<!ELEMENT UML:State.internalTransition (UML:Transition)* >
+
+<!ELEMENT UML:State.entry (UML:ActionSequence)* >
+
+<!ELEMENT UML:State.exit (UML:ActionSequence)* >
+
+
+<!ELEMENT UML:CompositeState.substate (UML:StateVertex |
+ UML:PseudoState | UML:State |
+ UML:CompositeState |
+ UML:SimpleState |
+ UML:SubmachineState |
+ UML:ActionState |
+ UML:ObjectFlowState |
+ UML:ActivityState)* >
+
+
+<!ELEMENT UML:ActivityModel.partition (UML:Partition)* >
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Refinement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Refinement.mapping (UML:Mapping) >
+
+<!ELEMENT UML:Refinement (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description |
+ UML:Refinement.mapping | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client |
+ UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Refinement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Usage -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Usage (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Usage
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Trace -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Trace (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Trace
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Binding -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Binding (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies |
+ UML:Binding.argument)* >
+<!ATTLIST UML:Binding
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Node -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Node.component (UML:Component)* >
+
+<!ELEMENT UML:Node (UML:ModelElement.name | UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding | UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Node.component | UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Node
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ component IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Component -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Component.deployment (UML:Node)* >
+
+<!ELEMENT UML:Component.implements (UML:ModelElement)* >
+
+<!ELEMENT UML:Component (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Component.deployment |
+ UML:Component.implements |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Component
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ deployment IDREFS #IMPLIED
+ implements IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Comment -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Comment (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Comment
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.ViewElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ViewElement.model (UML:ModelElement)* >
+
+<!ELEMENT UML:ViewElement.presentation (UML:Presentation)* >
+
+<!ELEMENT UML:ViewElement (XMI.extension | UML:ViewElement.model |
+ UML:ViewElement.presentation)* >
+<!ATTLIST UML:ViewElement
+ model IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Presentation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Presentation.geometry (UML:Geometry) >
+
+<!ELEMENT UML:Presentation.style (UML:GraphicMarker) >
+
+<!ELEMENT UML:Presentation.model (UML:ModelElement)* >
+
+<!ELEMENT UML:Presentation.viewElement (UML:ViewElement)* >
+
+<!ELEMENT UML:Presentation (UML:Presentation.geometry |
+ UML:Presentation.style | XMI.extension |
+ UML:Presentation.model |
+ UML:Presentation.viewElement)* >
+<!ATTLIST UML:Presentation
+ model IDREFS #IMPLIED
+ viewElement IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Element -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Element (XMI.extension)* >
+<!ATTLIST UML:Element
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.ModelElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ModelElement.name (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ModelElement.visibility EMPTY >
+<!ATTLIST UML:ModelElement.visibility
+ xmi.value (public | protected | private) #REQUIRED
+>
+
+<!ELEMENT UML:ModelElement.binding (UML:Binding)* >
+
+<!ELEMENT UML:ModelElement.template (UML:ModelElement)* >
+
+<!ELEMENT UML:ModelElement.templateParameter (UML:ModelElement)* >
+
+<!ELEMENT UML:ModelElement.implementation (UML:Component)* >
+
+<!ELEMENT UML:ModelElement.view (UML:ViewElement)* >
+
+<!ELEMENT UML:ModelElement.presentation (UML:Presentation)* >
+
+<!ELEMENT UML:ModelElement.namespace (UML:Namespace)* >
+
+<!ELEMENT UML:ModelElement.constraint (UML:Constraint)* >
+
+<!ELEMENT UML:ModelElement.requirement (UML:Dependency)* >
+
+<!ELEMENT UML:ModelElement.provision (UML:Dependency)* >
+
+<!ELEMENT UML:ModelElement.stereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:ModelElement.elementReference (UML:ElementReference)* >
+
+<!ELEMENT UML:ModelElement.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:ModelElement.behavior (UML:StateMachine)* >
+
+<!ELEMENT UML:ModelElement.partition (UML:Partition)* >
+
+<!ELEMENT UML:ModelElement (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:ModelElement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Namespace -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Namespace (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Namespace
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.GeneralizableElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:GeneralizableElement.isRoot EMPTY >
+<!ATTLIST UML:GeneralizableElement.isRoot
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.isLeaf EMPTY >
+<!ATTLIST UML:GeneralizableElement.isLeaf
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.isAbstract EMPTY >
+<!ATTLIST UML:GeneralizableElement.isAbstract
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.generalization
+ (UML:Generalization)* >
+
+<!ELEMENT UML:GeneralizableElement.specialization
+ (UML:Generalization)* >
+
+<!ELEMENT UML:GeneralizableElement (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:GeneralizableElement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Classifier -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Classifier.parameter (UML:Parameter)* >
+
+<!ELEMENT UML:Classifier.structuralFeature (UML:StructuralFeature)* >
+
+<!ELEMENT UML:Classifier.specification (UML:Classifier)* >
+
+<!ELEMENT UML:Classifier.realization (UML:Classifier)* >
+
+<!ELEMENT UML:Classifier.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Classifier.participant (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Classifier.createAction (UML:CreateAction)* >
+
+<!ELEMENT UML:Classifier.instance (UML:Instance)* >
+
+<!ELEMENT UML:Classifier.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:Classifier.classifierRole (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Classifier.classifierInState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:Classifier (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Classifier
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Interface -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Interface (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Interface
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Class -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Class.isActive EMPTY >
+<!ATTLIST UML:Class.isActive
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Class (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Class.isActive | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Class
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isActive (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.DataType -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DataType (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:DataType
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Feature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Feature.ownerScope EMPTY >
+<!ATTLIST UML:Feature.ownerScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:Feature.owner (UML:Classifier)* >
+
+<!ELEMENT UML:Feature.classifierRole (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Feature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Feature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.StructuralFeature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StructuralFeature.multiplicity (#PCDATA |
+ XMI.reference)* >
+
+<!ELEMENT UML:StructuralFeature.changeable EMPTY >
+<!ATTLIST UML:StructuralFeature.changeable
+ xmi.value (none | frozen | addOnly) #REQUIRED
+>
+
+<!ELEMENT UML:StructuralFeature.targetScope EMPTY >
+<!ATTLIST UML:StructuralFeature.targetScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:StructuralFeature.type (UML:Classifier)* >
+
+<!ELEMENT UML:StructuralFeature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:StructuralFeature.multiplicity |
+ UML:StructuralFeature.changeable |
+ UML:StructuralFeature.targetScope |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:StructuralFeature.type |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:StructuralFeature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.BehavioralFeature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:BehavioralFeature.isQuery EMPTY >
+<!ATTLIST UML:BehavioralFeature.isQuery
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:BehavioralFeature.raisedException (UML:Exception)* >
+
+<!ELEMENT UML:BehavioralFeature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:BehavioralFeature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Operation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Operation.specification (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Operation.isPolymorphic EMPTY >
+<!ATTLIST UML:Operation.isPolymorphic
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Operation.concurrency EMPTY >
+<!ATTLIST UML:Operation.concurrency
+ xmi.value (sequential | guarded | concurrent) #REQUIRED
+>
+
+<!ELEMENT UML:Operation.method (UML:Method)* >
+
+<!ELEMENT UML:Operation.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:Operation.occurrence (UML:CallEvent)* >
+
+<!ELEMENT UML:Operation (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ UML:Operation.specification |
+ UML:Operation.isPolymorphic |
+ UML:Operation.concurrency | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Request.action |
+ UML:Request.messageInstance |
+ UML:Operation.method |
+ UML:Operation.collaboration |
+ UML:Operation.occurrence |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Operation
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ specification CDATA #IMPLIED
+ isPolymorphic (false | true) #IMPLIED
+ concurrency (sequential | guarded | concurrent) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ method IDREFS #IMPLIED
+ Operation.collaboration IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Method -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Method.body (UML:ProcedureExpression) >
+
+<!ELEMENT UML:Method.specification (UML:Operation)* >
+
+<!ELEMENT UML:Method (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery | UML:Method.body |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Method.specification |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Method
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Parameter -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Parameter.defaultValue (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Parameter.kind EMPTY >
+<!ATTLIST UML:Parameter.kind
+ xmi.value (in | inout | out | return) #REQUIRED
+>
+
+<!ELEMENT UML:Parameter.behavioralFeature (UML:BehavioralFeature)* >
+
+<!ELEMENT UML:Parameter.type (UML:Classifier)* >
+
+<!ELEMENT UML:Parameter.signal (UML:Signal)* >
+
+<!ELEMENT UML:Parameter (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Parameter.defaultValue | UML:Parameter.kind |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Parameter.behavioralFeature |
+ UML:Parameter.type | UML:Parameter.signal |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Parameter
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ kind (in | inout | out | return) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ behavioralFeature IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Constraint -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Constraint.body (UML:BooleanExpression) >
+
+<!ELEMENT UML:Constraint.constrainedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Constraint.constrainedStereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:Constraint (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Constraint.body | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Constraint.constrainedElement |
+ UML:Constraint.constrainedStereotype |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Constraint
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ constrainedElement IDREFS #IMPLIED
+ constrainedStereotype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Dependency -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Dependency.description (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Dependency.owningDependency (UML:Dependency)* >
+
+<!ELEMENT UML:Dependency.client (UML:ModelElement)* >
+
+<!ELEMENT UML:Dependency.supplier (UML:ModelElement)* >
+
+<!ELEMENT UML:Dependency (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client |
+ UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Dependency
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Generalization -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Generalization.discriminator (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Generalization.subtype (UML:GeneralizableElement)* >
+
+<!ELEMENT UML:Generalization.supertype (UML:GeneralizableElement)* >
+
+<!ELEMENT UML:Generalization (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Generalization.discriminator |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Generalization.subtype |
+ UML:Generalization.supertype |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Generalization
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ discriminator CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ subtype IDREFS #IMPLIED
+ supertype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.AssociationEnd -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationEnd.isNavigable EMPTY >
+<!ATTLIST UML:AssociationEnd.isNavigable
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.isOrdered EMPTY >
+<!ATTLIST UML:AssociationEnd.isOrdered
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.aggregation EMPTY >
+<!ATTLIST UML:AssociationEnd.aggregation
+ xmi.value (none | shared | composite) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:AssociationEnd.changeable EMPTY >
+<!ATTLIST UML:AssociationEnd.changeable
+ xmi.value (none | frozen | addOnly) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.targetScope EMPTY >
+<!ATTLIST UML:AssociationEnd.targetScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.type (UML:Classifier)* >
+
+<!ELEMENT UML:AssociationEnd.specification (UML:Classifier)* >
+
+<!ELEMENT UML:AssociationEnd.association (UML:Association)* >
+
+<!ELEMENT UML:AssociationEnd.linkEnd (UML:LinkEnd)* >
+
+<!ELEMENT UML:AssociationEnd.associationEndRole
+ (UML:AssociationEndRole)* >
+
+<!ELEMENT UML:AssociationEnd (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:AssociationEnd.isNavigable |
+ UML:AssociationEnd.isOrdered |
+ UML:AssociationEnd.aggregation |
+ UML:AssociationEnd.multiplicity |
+ UML:AssociationEnd.changeable |
+ UML:AssociationEnd.targetScope |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AssociationEnd.type |
+ UML:AssociationEnd.specification |
+ UML:AssociationEnd.association |
+ UML:AssociationEnd.linkEnd |
+ UML:AssociationEnd.associationEndRole |
+ UML:ModelElement.taggedValue |
+ UML:AssociationEnd.qualifier)* >
+<!ATTLIST UML:AssociationEnd
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isNavigable (false | true) #IMPLIED
+ isOrdered (false | true) #IMPLIED
+ aggregation (none | shared | composite) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Association -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Association.link (UML:Link)* >
+
+<!ELEMENT UML:Association.associationEnd (UML:AssociationRole)* >
+
+<!ELEMENT UML:Association (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Association.connection)* >
+<!ATTLIST UML:Association
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.AssociationClass -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationClass (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Class.isActive | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature |
+ UML:Association.connection)* >
+<!ATTLIST UML:AssociationClass
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isActive (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ Classifier.associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ Association.associationEnd IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Attribute -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Attribute.initialValue (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Attribute.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Attribute.attributeLink (UML:AttributeLink)* >
+
+<!ELEMENT UML:Attribute (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:StructuralFeature.multiplicity |
+ UML:StructuralFeature.changeable |
+ UML:StructuralFeature.targetScope |
+ UML:Attribute.initialValue | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:StructuralFeature.type |
+ UML:Attribute.associationEnd |
+ UML:Attribute.attributeLink |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Attribute
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Extension_Mechanisms.TaggedValue -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TaggedValue.tag (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:TaggedValue.value (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:TaggedValue.modelElement (UML:ModelElement)* >
+
+<!ELEMENT UML:TaggedValue.stereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:TaggedValue (UML:TaggedValue.tag | UML:TaggedValue.value |
+ XMI.extension | UML:TaggedValue.modelElement |
+ UML:TaggedValue.stereotype)* >
+<!ATTLIST UML:TaggedValue
+ tag CDATA #IMPLIED
+ value CDATA #IMPLIED
+ modelElement IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Extension_Mechanisms.Stereotype -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Stereotype.icon (UML:Geometry) >
+
+<!ELEMENT UML:Stereotype.baseClass (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Stereotype.extendedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Stereotype.stereotypeConstraint (UML:Constraint)* >
+
+<!ELEMENT UML:Stereotype (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Stereotype.icon | UML:Stereotype.baseClass |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Stereotype.extendedElement |
+ UML:Stereotype.stereotypeConstraint |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Stereotype.requiredTag)* >
+<!ATTLIST UML:Stereotype
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ baseClass CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ extendedElement IDREFS #IMPLIED
+ stereotypeConstraint IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Enumeration -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Enumeration (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature |
+ UML:Enumeration.literal)* >
+<!ATTLIST UML:Enumeration
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.EnumerationLiteral -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:EnumerationLiteral.name (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:EnumerationLiteral.enumeration (UML:Enumeration)* >
+
+<!ELEMENT UML:EnumerationLiteral (UML:EnumerationLiteral.name |
+ XMI.extension |
+ UML:EnumerationLiteral.enumeration)* >
+<!ATTLIST UML:EnumerationLiteral
+ name CDATA #IMPLIED
+ enumeration IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Primitive -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Primitive (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Primitive
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Structure -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Structure (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Structure
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.MultiplicityRange -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:MultiplicityRange.lower (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:MultiplicityRange.upper (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:MultiplicityRange (UML:MultiplicityRange.lower |
+ UML:MultiplicityRange.upper |
+ XMI.extension)* >
+<!ATTLIST UML:MultiplicityRange
+ lower CDATA #IMPLIED
+ upper CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Geometry -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Geometry.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Geometry (UML:Geometry.body | XMI.extension)* >
+<!ATTLIST UML:Geometry
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.GraphicMarker -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:GraphicMarker.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:GraphicMarker (UML:GraphicMarker.body | XMI.extension)* >
+<!ATTLIST UML:GraphicMarker
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Mapping -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Mapping.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Mapping (UML:Mapping.body | XMI.extension)* >
+<!ATTLIST UML:Mapping
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Expression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Expression.language (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Expression.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Expression (UML:Expression.language | UML:Expression.body |
+ XMI.extension)* >
+<!ATTLIST UML:Expression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.ProcedureExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ProcedureExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:ProcedureExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.ObjectSetExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ObjectSetExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:ObjectSetExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.TimeExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TimeExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:TimeExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.BooleanExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:BooleanExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:BooleanExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Package -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Package.elementReference (UML:ElementReference)* >
+
+<!ELEMENT UML:Package (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Package
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Subsystem -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Subsystem.isInstantiable EMPTY >
+<!ATTLIST UML:Subsystem.isInstantiable
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Subsystem (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Subsystem.isInstantiable | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Subsystem
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isInstantiable (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Model (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Model
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.ElementReference -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ElementReference.visibility EMPTY >
+<!ATTLIST UML:ElementReference.visibility
+ xmi.value (public | protected | private) #REQUIRED
+>
+
+<!ELEMENT UML:ElementReference.alias (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ElementReference.referencedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:ElementReference.package (UML:Package)* >
+
+<!ELEMENT UML:ElementReference (UML:ElementReference.visibility |
+ UML:ElementReference.alias |
+ XMI.extension |
+ UML:ElementReference.referencedElement |
+ UML:ElementReference.package)* >
+<!ATTLIST UML:ElementReference
+ visibility (public | protected | private) #IMPLIED
+ alias CDATA #IMPLIED
+ referencedElement IDREFS #IMPLIED
+ package IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Request -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Request.action (UML:Action)* >
+
+<!ELEMENT UML:Request.messageInstance (UML:MessageInstance)* >
+
+<!ELEMENT UML:Request (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Request.action |
+ UML:Request.messageInstance |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Request
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Signal -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Signal.reception (UML:Reception)* >
+
+<!ELEMENT UML:Signal.occurrence (UML:SignalEvent)* >
+
+<!ELEMENT UML:Signal (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Request.action | UML:Request.messageInstance |
+ UML:Signal.reception | UML:Signal.occurrence |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Signal.parameter)* >
+<!ATTLIST UML:Signal
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ reception IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Exception -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Exception.context (UML:BehavioralFeature)* >
+
+<!ELEMENT UML:Exception (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Request.action |
+ UML:Request.messageInstance |
+ UML:Signal.reception | UML:Signal.occurrence |
+ UML:Exception.context |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Signal.parameter)* >
+<!ATTLIST UML:Exception
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ reception IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Reception -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Reception.isPolymorphic EMPTY >
+<!ATTLIST UML:Reception.isPolymorphic
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Reception.specification (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Reception.signal (UML:Signal)* >
+
+<!ELEMENT UML:Reception (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ UML:Reception.isPolymorphic |
+ UML:Reception.specification | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Reception.signal |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Reception
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ isPolymorphic (false | true) #IMPLIED
+ specification CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Argument -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Argument.value (UML:Expression | UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Argument.action (UML:Action)* >
+
+<!ELEMENT UML:Argument (UML:Argument.value | XMI.extension |
+ UML:Argument.action)* >
+<!ATTLIST UML:Argument
+ action IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.ActionSequence -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActionSequence.transition (UML:Transition)* >
+
+<!ELEMENT UML:ActionSequence.state (UML:State)* >
+
+<!ELEMENT UML:ActionSequence.state2 (UML:State)* >
+
+<!ELEMENT UML:ActionSequence (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ActionSequence.transition |
+ UML:ActionSequence.state |
+ UML:ActionSequence.state2 |
+ UML:ModelElement.taggedValue |
+ UML:ActionSequence.action)* >
+<!ATTLIST UML:ActionSequence
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ state2 IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Action -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Action.recurrence (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Action.target (UML:ObjectSetExpression) >
+
+<!ELEMENT UML:Action.isAsynchronous EMPTY >
+<!ATTLIST UML:Action.isAsynchronous
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Action.script (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Action.request (UML:Request)* >
+
+<!ELEMENT UML:Action.message (UML:Message)* >
+
+<!ELEMENT UML:Action.actionSequence (UML:ActionSequence)* >
+
+<!ELEMENT UML:Action (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Action.request |
+ UML:Action.message | UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:Action
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.CreateAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CreateAction.instantiation (UML:Classifier)* >
+
+<!ELEMENT UML:CreateAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:CreateAction.instantiation |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:CreateAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ instantiation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.CallAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CallAction.mode EMPTY >
+<!ATTLIST UML:CallAction.mode
+ xmi.value (synchronous | asynchronous) #REQUIRED
+>
+
+<!ELEMENT UML:CallAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ UML:CallAction.mode | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:CallAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ mode (synchronous | asynchronous) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LocalInvocation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LocalInvocation (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:LocalInvocation
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.ReturnAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ReturnAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:ReturnAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.SendAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SendAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:SendAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.UninterpretedAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UninterpretedAction.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:UninterpretedAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence |
+ UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script |
+ UML:UninterpretedAction.body |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request |
+ UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:UninterpretedAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ body CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.TerminateAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TerminateAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:TerminateAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.DestroyAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DestroyAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:DestroyAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Link -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Link.association (UML:Association)* >
+
+<!ELEMENT UML:Link (UML:ModelElement.name | UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Link.association |
+ UML:ModelElement.taggedValue | UML:Link.linkRole)* >
+<!ATTLIST UML:Link
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkEnd -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LinkEnd.link (UML:Link)* >
+
+<!ELEMENT UML:LinkEnd.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:LinkEnd.instance (UML:Instance)* >
+
+<!ELEMENT UML:LinkEnd (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:LinkEnd.link |
+ UML:LinkEnd.associationEnd | UML:LinkEnd.instance |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:LinkEnd
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Instance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Instance.linkEnd (UML:LinkEnd)* >
+
+<!ELEMENT UML:Instance.messageInstance3 (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.messageInstance2 (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.messageInstance (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.attributeLink (UML:AttributeLink)* >
+
+<!ELEMENT UML:Instance.classifier (UML:Classifier)* >
+
+<!ELEMENT UML:Instance (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:Instance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.AttributeLink -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AttributeLink.instance (UML:Instance)* >
+
+<!ELEMENT UML:AttributeLink.attribute (UML:Attribute)* >
+
+<!ELEMENT UML:AttributeLink.value (UML:Instance)* >
+
+<!ELEMENT UML:AttributeLink (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AttributeLink.instance |
+ UML:AttributeLink.attribute |
+ UML:AttributeLink.value |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:AttributeLink
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ attribute IDREFS #IMPLIED
+ value IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Object -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Object (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue | UML:Instance.slot)* >
+<!ATTLIST UML:Object
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.DataValue -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DataValue (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:DataValue
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkObject -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LinkObject (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier | UML:Link.association |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot | UML:Link.linkRole)* >
+<!ATTLIST UML:LinkObject
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.MessageInstance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:MessageInstance.specification (UML:Request)* >
+
+<!ELEMENT UML:MessageInstance.sender (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance.receiver (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance.argument (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:MessageInstance.specification |
+ UML:MessageInstance.sender |
+ UML:MessageInstance.receiver |
+ UML:MessageInstance.argument |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:MessageInstance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ sender IDREFS #IMPLIED
+ receiver IDREFS #IMPLIED
+ argument IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Collaboration -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Collaboration.representedClassifier (UML:Classifier)* >
+
+<!ELEMENT UML:Collaboration.representedOperation (UML:Operation)* >
+
+<!ELEMENT UML:Collaboration.constrainingElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Collaboration (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Collaboration.representedClassifier |
+ UML:Collaboration.representedOperation |
+ UML:Collaboration.constrainingElement |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Collaboration.interaction)* >
+<!ATTLIST UML:Collaboration
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ representedClassifier IDREFS #IMPLIED
+ representedOperation IDREFS #IMPLIED
+ constrainingElement IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Interaction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Interaction.context (UML:Collaboration)* >
+
+<!ELEMENT UML:Interaction (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Interaction.context |
+ UML:ModelElement.taggedValue |
+ UML:Interaction.message)* >
+<!ATTLIST UML:Interaction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.AssociationRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationRole.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:AssociationRole.base (UML:Association)* >
+
+<!ELEMENT UML:AssociationRole.namespace (UML:Collaboration)* >
+
+<!ELEMENT UML:AssociationRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:AssociationRole.multiplicity |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:AssociationRole.base |
+ UML:AssociationRole.namespace |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Association.connection)* >
+<!ATTLIST UML:AssociationRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ ModelElement.namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ AssociationRole.namespace IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.AssociationEndRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationEndRole.associationRole
+ (UML:AssociationRole)* >
+
+<!ELEMENT UML:AssociationEndRole.base (UML:AssociationEnd)* >
+
+<!ELEMENT UML:AssociationEndRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:AssociationEnd.isNavigable |
+ UML:AssociationEnd.isOrdered |
+ UML:AssociationEnd.aggregation |
+ UML:AssociationEnd.multiplicity |
+ UML:AssociationEnd.changeable |
+ UML:AssociationEnd.targetScope |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AssociationEnd.type |
+ UML:AssociationEnd.specification |
+ UML:AssociationEnd.association |
+ UML:AssociationEnd.linkEnd |
+ UML:AssociationEnd.associationEndRole |
+ UML:AssociationEndRole.associationRole |
+ UML:AssociationEndRole.base |
+ UML:ModelElement.taggedValue |
+ UML:AssociationEnd.qualifier)* >
+<!ATTLIST UML:AssociationEndRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isNavigable (false | true) #IMPLIED
+ isOrdered (false | true) #IMPLIED
+ aggregation (none | shared | composite) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ associationRole IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Message -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Message.interaction (UML:Interaction)* >
+
+<!ELEMENT UML:Message.predecessor (UML:Message)* >
+
+<!ELEMENT UML:Message.message2 (UML:Message)* >
+
+<!ELEMENT UML:Message.message (UML:Message)* >
+
+<!ELEMENT UML:Message.activator (UML:Message)* >
+
+<!ELEMENT UML:Message.action (UML:Action)* >
+
+<!ELEMENT UML:Message.receiver (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Message.sender (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Message (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Message.interaction | UML:Message.predecessor |
+ UML:Message.message2 | UML:Message.message |
+ UML:Message.activator | UML:Message.action |
+ UML:Message.receiver | UML:Message.sender |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Message
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ interaction IDREFS #IMPLIED
+ predecessor IDREFS #IMPLIED
+ message2 IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ activator IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ receiver IDREFS #IMPLIED
+ sender IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.ClassifierRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ClassifierRole.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ClassifierRole.associationEndRole
+ (UML:AssociationEndRole)* >
+
+<!ELEMENT UML:ClassifierRole.namespace (UML:Collaboration)* >
+
+<!ELEMENT UML:ClassifierRole.message2 (UML:Message)* >
+
+<!ELEMENT UML:ClassifierRole.message (UML:Message)* >
+
+<!ELEMENT UML:ClassifierRole.base (UML:Classifier)* >
+
+<!ELEMENT UML:ClassifierRole.availableFeature (UML:Feature)* >
+
+<!ELEMENT UML:ClassifierRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:ClassifierRole.multiplicity |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ClassifierRole.associationEndRole |
+ UML:ClassifierRole.namespace |
+ UML:ClassifierRole.message2 |
+ UML:ClassifierRole.message |
+ UML:ClassifierRole.base |
+ UML:ClassifierRole.availableFeature |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:ClassifierRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ ModelElement.namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ ClassifierRole.namespace IDREFS #IMPLIED
+ message2 IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ availableFeature IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.Actor -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Actor (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Actor
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.UseCase -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UseCase.extensionPoint (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:UseCase (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:UseCase.extensionPoint | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:UseCase
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ extensionPoint CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.UseCaseInstance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UseCaseInstance (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:UseCaseInstance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.StateMachine -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StateMachine.context (UML:ModelElement)* >
+
+<!ELEMENT UML:StateMachine.submachineState (UML:SubmachineState)* >
+
+<!ELEMENT UML:StateMachine (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateMachine.context |
+ UML:StateMachine.submachineState |
+ UML:ModelElement.taggedValue |
+ UML:StateMachine.top |
+ UML:StateMachine.transitions)* >
+<!ATTLIST UML:StateMachine
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ submachineState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Guard -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Guard.expression (UML:BooleanExpression) >
+
+<!ELEMENT UML:Guard.transition (UML:Transition)* >
+
+<!ELEMENT UML:Guard (UML:ModelElement.name |
+ UML:ModelElement.visibility | UML:Guard.expression |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Guard.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Guard
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.StateVertex -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StateVertex.outgoing (UML:Transition)* >
+
+<!ELEMENT UML:StateVertex.incoming (UML:Transition)* >
+
+<!ELEMENT UML:StateVertex.parent (UML:CompositeState)* >
+
+<!ELEMENT UML:StateVertex (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:StateVertex
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Transition -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Transition.source (UML:StateVertex)* >
+
+<!ELEMENT UML:Transition.target (UML:StateVertex)* >
+
+<!ELEMENT UML:Transition.statemachine (UML:StateMachine)* >
+
+<!ELEMENT UML:Transition.state (UML:State)* >
+
+<!ELEMENT UML:Transition.trigger (UML:Event)* >
+
+<!ELEMENT UML:Transition (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Transition.source | UML:Transition.target |
+ UML:Transition.statemachine |
+ UML:Transition.state | UML:Transition.trigger |
+ UML:ModelElement.taggedValue |
+ UML:Transition.guard | UML:Transition.effect)* >
+<!ATTLIST UML:Transition
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ source IDREFS #IMPLIED
+ target IDREFS #IMPLIED
+ statemachine IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ trigger IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.PseudoState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:PseudoState.kind EMPTY >
+<!ATTLIST UML:PseudoState.kind
+ xmi.value (initial | deepHistory | shallowHistory | join | fork | branch | final) #REQUIRED
+>
+
+<!ELEMENT UML:PseudoState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:PseudoState.kind | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:PseudoState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ kind (initial | deepHistory | shallowHistory | join | fork | branch | final) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.State -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:State.stateMachine (UML:StateMachine)* >
+
+<!ELEMENT UML:State.deferredEvent (UML:Event)* >
+
+<!ELEMENT UML:State.classifierInState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:State (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing | UML:StateVertex.incoming |
+ UML:StateVertex.parent | UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition | UML:State.entry |
+ UML:State.exit)* >
+<!ATTLIST UML:State
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.CompositeState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CompositeState.isConcurrent EMPTY >
+<!ATTLIST UML:CompositeState.isConcurrent
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:CompositeState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:CompositeState.isConcurrent |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit |
+ UML:CompositeState.substate)* >
+<!ATTLIST UML:CompositeState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isConcurrent (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SimpleState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SimpleState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:SimpleState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SubmachineState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SubmachineState.stateMachine (UML:StateMachine)* >
+
+<!ELEMENT UML:SubmachineState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:SubmachineState.stateMachine |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:SubmachineState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ State.stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ SubmachineState.stateMachine IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Event -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Event.state (UML:State)* >
+
+<!ELEMENT UML:Event.transition (UML:Transition)* >
+
+<!ELEMENT UML:Event (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Event
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SignalEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SignalEvent.signal (UML:Signal)* >
+
+<!ELEMENT UML:SignalEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition | UML:SignalEvent.signal |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:SignalEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.CallEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CallEvent.operation (UML:Operation)* >
+
+<!ELEMENT UML:CallEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition | UML:CallEvent.operation |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:CallEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ operation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.TimeEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TimeEvent.duration (UML:TimeExpression) >
+
+<!ELEMENT UML:TimeEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:TimeEvent.duration | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:TimeEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ChangeEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ChangeEvent.changeExpression (UML:BooleanExpression) >
+
+<!ELEMENT UML:ChangeEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:ChangeEvent.changeExpression |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:ChangeEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActivityModel -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActivityModel (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateMachine.context |
+ UML:StateMachine.submachineState |
+ UML:ModelElement.taggedValue |
+ UML:StateMachine.top |
+ UML:StateMachine.transitions |
+ UML:ActivityModel.partition)* >
+<!ATTLIST UML:ActivityModel
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ submachineState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Partition -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Partition.contents (UML:ModelElement)* >
+
+<!ELEMENT UML:Partition.activityModel (UML:ActivityModel)* >
+
+<!ELEMENT UML:Partition (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Partition.contents |
+ UML:Partition.activityModel |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Partition
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ contents IDREFS #IMPLIED
+ activityModel IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActionState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActionState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ActionState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ObjectFlowState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ObjectFlowState.typeState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:ObjectFlowState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ObjectFlowState.typeState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ObjectFlowState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ typeState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ClassifierInState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ClassifierInState.objectFlowState (UML:ObjectFlowState)* >
+
+<!ELEMENT UML:ClassifierInState.inState (UML:State)* >
+
+<!ELEMENT UML:ClassifierInState.type (UML:Classifier)* >
+
+<!ELEMENT UML:ClassifierInState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ClassifierInState.objectFlowState |
+ UML:ClassifierInState.inState |
+ UML:ClassifierInState.type |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:ClassifierInState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ objectFlowState IDREFS #IMPLIED
+ inState IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActivityState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActivityState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:SubmachineState.stateMachine |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ActivityState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ State.stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ SubmachineState.stateMachine IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Foundation (UML:Auxiliary_Elements | UML:Core |
+ UML:Extension_Mechanisms | UML:Data_Types)* >
+<!ATTLIST UML:Foundation
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Auxiliary_Elements (UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding | UML:Node |
+ UML:Component | UML:Comment |
+ UML:ViewElement | UML:Presentation)* >
+<!ATTLIST UML:Auxiliary_Elements
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Core (UML:Element | UML:ModelElement | UML:Namespace |
+ UML:GeneralizableElement | UML:Classifier |
+ UML:Interface | UML:Class | UML:DataType |
+ UML:Feature | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Operation | UML:Method |
+ UML:Parameter | UML:Constraint | UML:Dependency |
+ UML:Generalization | UML:AssociationEnd |
+ UML:Association | UML:AssociationClass |
+ UML:Attribute)* >
+<!ATTLIST UML:Core
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Extension_Mechanisms (UML:TaggedValue | UML:Stereotype)* >
+<!ATTLIST UML:Extension_Mechanisms
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Data_Types (UML:Enumeration | UML:EnumerationLiteral |
+ UML:Primitive | UML:Structure |
+ UML:MultiplicityRange | UML:Geometry |
+ UML:GraphicMarker | UML:Mapping |
+ UML:Expression | UML:ProcedureExpression |
+ UML:ObjectSetExpression | UML:TimeExpression |
+ UML:BooleanExpression)* >
+<!ATTLIST UML:Data_Types
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Model_Management (UML:Package | UML:Subsystem | UML:Model |
+ UML:ElementReference)* >
+<!ATTLIST UML:Model_Management
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Behavioral_Elements (UML:Common_Behavior |
+ UML:Collaborations | UML:Use_Cases |
+ UML:State_Machines)* >
+<!ATTLIST UML:Behavioral_Elements
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Common_Behavior (UML:Request | UML:Signal | UML:Exception |
+ UML:Reception | UML:Argument |
+ UML:ActionSequence | UML:Action |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation | UML:ReturnAction |
+ UML:SendAction | UML:UninterpretedAction |
+ UML:TerminateAction | UML:DestroyAction |
+ UML:Link | UML:LinkEnd | UML:Instance |
+ UML:AttributeLink | UML:Object |
+ UML:DataValue | UML:LinkObject |
+ UML:MessageInstance)* >
+<!ATTLIST UML:Common_Behavior
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Collaborations (UML:Collaboration | UML:Interaction |
+ UML:AssociationRole |
+ UML:AssociationEndRole | UML:Message |
+ UML:ClassifierRole)* >
+<!ATTLIST UML:Collaborations
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Use_Cases (UML:Actor | UML:UseCase |
+ UML:UseCaseInstance)* >
+<!ATTLIST UML:Use_Cases
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:State_Machines (UML:StateMachine | UML:Guard |
+ UML:StateVertex | UML:Transition |
+ UML:PseudoState | UML:State |
+ UML:CompositeState | UML:SimpleState |
+ UML:SubmachineState | UML:Event |
+ UML:SignalEvent | UML:CallEvent |
+ UML:TimeEvent | UML:ChangeEvent |
+ UML:ActivityModel | UML:Partition |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ClassifierInState |
+ UML:ActivityState)* >
+<!ATTLIST UML:State_Machines
+ %XMI.element.att;
+ %XMI.link.att;
+>
diff --git a/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
new file mode 100755
index 00000000000..336db292d5a
--- /dev/null
+++ b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
@@ -0,0 +1,56 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'ACE_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 1) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl
new file mode 100644
index 00000000000..946d57a7cb0
--- /dev/null
+++ b/flat/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl
@@ -0,0 +1,5 @@
+// $Id$
+
+module TestXMISequence {
+ typedef sequence<char> SeqChar;
+};
diff --git a/flat/CIAO/tools/IDL3_to_XMI/CIAO_IDL3_TO_XMI_Export.h b/flat/CIAO/tools/IDL3_to_XMI/CIAO_IDL3_TO_XMI_Export.h
new file mode 100644
index 00000000000..d34de5bdfd3
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/CIAO_IDL3_TO_XMI_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl CIAO_IDL3_TO_XMI
+// ------------------------------
+#ifndef CIAO_IDL3_TO_XMI_EXPORT_H
+#define CIAO_IDL3_TO_XMI_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (CIAO_IDL3_TO_XMI_HAS_DLL)
+# define CIAO_IDL3_TO_XMI_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && CIAO_IDL3_TO_XMI_HAS_DLL */
+
+#if !defined (CIAO_IDL3_TO_XMI_HAS_DLL)
+# define CIAO_IDL3_TO_XMI_HAS_DLL 1
+#endif /* ! CIAO_IDL3_TO_XMI_HAS_DLL */
+
+#if defined (CIAO_IDL3_TO_XMI_HAS_DLL) && (CIAO_IDL3_TO_XMI_HAS_DLL == 1)
+# if defined (CIAO_IDL3_TO_XMI_BUILD_DLL)
+# define CIAO_IDL3_TO_XMI_Export ACE_Proper_Export_Flag
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* CIAO_IDL3_TO_XMI_BUILD_DLL */
+# define CIAO_IDL3_TO_XMI_Export ACE_Proper_Import_Flag
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* CIAO_IDL3_TO_XMI_BUILD_DLL */
+#else /* CIAO_IDL3_TO_XMI_HAS_DLL == 1 */
+# define CIAO_IDL3_TO_XMI_Export
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARATION(T)
+# define CIAO_IDL3_TO_XMI_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* CIAO_IDL3_TO_XMI_HAS_DLL == 1 */
+
+// Set CIAO_IDL3_TO_XMI_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (CIAO_IDL3_TO_XMI_NTRACE)
+# if (ACE_NTRACE == 1)
+# define CIAO_IDL3_TO_XMI_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define CIAO_IDL3_TO_XMI_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !CIAO_IDL3_TO_XMI_NTRACE */
+
+#if (CIAO_IDL3_TO_XMI_NTRACE == 1)
+# define CIAO_IDL3_TO_XMI_TRACE(X)
+#else /* (CIAO_IDL3_TO_XMI_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define CIAO_IDL3_TO_XMI_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (CIAO_IDL3_TO_XMI_NTRACE == 1) */
+
+#endif /* CIAO_IDL3_TO_XMI_EXPORT_H */
+
+// End of auto generated file.
diff --git a/flat/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc b/flat/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc
new file mode 100644
index 00000000000..9631f139f38
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/IDL3_TO_XMI.mpc
@@ -0,0 +1,71 @@
+// -*- MPC -*-
+// $Id$
+
+project(CIAO_IDL3_TO_XMI_BE) : acelib, install, tao_output, crosscompile, ciao_xml_utils, xerces {
+ after += TAO_IDL_FE
+ sharedname = CIAO_IDL3_TO_XMI_BE
+ libs += TAO_IDL_FE
+ dynamicflags = CIAO_IDL3_TO_XMI_BUILD_DLL
+ includes += $(TAO_ROOT)/TAO_IDL/include $(TAO_ROOT)/TAO_IDL/fe
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ Source_Files {
+ be_global.cpp
+ be_helper.cpp
+ be_init.cpp
+ be_produce.cpp
+ be_sunsoft.cpp
+ IDL3_to_XMI_visitor.cpp
+ IR_Simulator_visitor.cpp
+ Literals.cpp
+ identifier_helper.cpp
+ }
+
+ Header_Files {
+ be_extern.h
+ be_global.h
+ be_helper.h
+ be_sunsoft.h
+ IDL3_to_XMI_visitor.h
+ CIAO_IDL3_TO_XMI_Export.h
+ }
+}
+
+project(CIAO_IDL3_TO_XMI_EXE) : aceexe, install, tao_output, crosscompile, ciao_xml_utils, tao_idl_mcpp, xerces {
+ after += CIAO_IDL3_TO_XMI_BE TAO_IDL_FE
+ exename = tao_idl3_to_xmi
+ libs += CIAO_IDL3_TO_XMI_BE TAO_IDL_FE
+ includes += . $(TAO_ROOT)/TAO_IDL/include \
+ $(TAO_ROOT)/TAO_IDL/fe \
+ $(TAO_ROOT)
+ libpaths += $(TAO_ROOT)/TAO_IDL
+ exeout = $(ACE_ROOT)/bin
+
+ // Adding a strict ordering dependency with TAO_IDL_EXE. It appears on some systems, there
+ // can be a race between these two projects for tao_idl.cpp, causing some errors.
+ after += TAO_IDL_EXE
+
+ // This is necessary for MPC to pull in rules.ciao.GNU
+ includes += $(CIAO_ROOT)
+
+ verbatim(gnuace, local) {
+ ifeq ($(TAO_IDL_PREPROCESSOR),)
+ CPPFLAGS += -DTAO_IDL_PREPROCESSOR=\\\"$(strip $(CXX))\\\"
+ else
+ CPPFLAGS += -DTAO_IDL_PREPROCESSOR=\\\"$(subst \\,\\,$(TAO_IDL_PREPROCESSOR))\\\"
+ endif
+
+ VPATH = $(TAO_ROOT)/TAO_IDL $(TAO_ROOT)/TAO_IDL/driver
+ }
+
+ Source_Files {
+ $(TAO_ROOT)/TAO_IDL/driver/drv_args.cpp
+ $(TAO_ROOT)/TAO_IDL/tao_idl.cpp
+ }
+
+ Header_Files {
+ $(TAO_ROOT)/TAO_IDL/include/drv_extern.h
+ }
+}
diff --git a/flat/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp b/flat/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp
new file mode 100644
index 00000000000..e0d6ff98a1e
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp
@@ -0,0 +1,2324 @@
+// $Id$
+
+#include "IDL3_to_XMI_visitor.h"
+#include "identifier_helper.h"
+
+#include "be_sunsoft.h"
+#include "be_extern.h"
+
+#include "ast_argument.h"
+#include "ast_array.h"
+#include "ast_attribute.h"
+#include "ast_component_fwd.h"
+#include "ast_enum.h"
+#include "ast_enum_val.h"
+#include "ast_eventtype.h"
+#include "ast_eventtype_fwd.h"
+#include "ast_exception.h"
+#include "ast_factory.h"
+#include "ast_field.h"
+#include "ast_home.h"
+#include "ast_operation.h"
+#include "ast_root.h"
+#include "ast_sequence.h"
+#include "ast_string.h"
+#include "ast_structure_fwd.h"
+#include "ast_union.h"
+#include "ast_union_branch.h"
+#include "ast_union_fwd.h"
+#include "ast_union_label.h"
+#include "ast_valuebox.h"
+#include "ast_valuetype_fwd.h"
+#include "ast_native.h"
+#include "utl_exceptlist.h"
+#include "utl_identifier.h"
+#include "utl_idlist.h"
+#include "utl_string.h"
+#include "global_extern.h"
+#include "nr_extern.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_sys_time.h"
+#include "ace/ACE.h"
+
+#include "Literals.h"
+#include "XML/XercesString.h"
+
+#include <iostream>
+#include <limits>
+#include <sstream>
+
+#include "xercesc/dom/DOM.hpp"
+
+#include "XML/XML_Helper.h"
+
+using XERCES_CPP_NAMESPACE::DOMDocument;
+using XERCES_CPP_NAMESPACE::DOMAttr;
+using XERCES_CPP_NAMESPACE::DOMElement;
+using XERCES_CPP_NAMESPACE::DOMText;
+using XERCES_CPP_NAMESPACE::DOMDocumentType;
+using CIAO::XML::XStr;
+
+
+
+#if 0
+struct Foo {
+ std::string foo_;
+ Foo (const char *foo) : foo_ (foo)
+ {
+ std::cout << "Entering " << foo_ << std::endl;
+ }
+ ~Foo ()
+ {
+ std::cout << "Leaving " << foo_ << std::endl;
+ }
+};
+
+#define XMI_TRACE(X) Foo _foobarbaz (X);
+#else
+#define XMI_TRACE(X)
+#endif
+
+namespace CIAO
+{
+ namespace XMI
+ {
+ size_t idl3_to_xmi_visitor::current_id_ = 0;
+
+ template <typename T>
+ ACE_TCHAR *
+ idl3_to_xmi_visitor::number_to_string (T val)
+ {
+ std::stringstream str;
+
+ str << val;
+
+ return ACE::strnew (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ }
+
+ template <>
+ ACE_TCHAR *
+ idl3_to_xmi_visitor::number_to_string (bool val)
+ {
+ if (val)
+ return ACE::strnew (LITERALS[CAPS_TRUE]);
+ else
+ return ACE::strnew (LITERALS[CAPS_FALSE]);
+ }
+
+ idl3_to_xmi_visitor::idl3_to_xmi_visitor (bool skip_imported)
+ : dom_ (0),
+ root_ (0),
+ generalizations_ (0),
+ associations_ (0),
+ base_id_ (idl3_to_xmi_visitor::gen_xmi_id ()),
+ skip_imported_ (skip_imported),
+ union_disc_ (0)
+ {
+ }
+
+ idl3_to_xmi_visitor::~idl3_to_xmi_visitor (void)
+ {
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_decl (AST_Decl *)
+ {
+ XMI_TRACE ("got a decl");
+ return 0;
+ }
+
+ char *
+ copy_scoped_name (UTL_ScopedName *name)
+ {
+ ACE_CString fullname;
+ for (UTL_ScopedNameActiveIterator si (name);
+ !si.is_done ();
+ si.next ())
+ {
+ Identifier *item = si.item ();
+ fullname += item->get_string ();
+ }
+
+ return fullname.rep ();
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_scope (UTL_Scope *node)
+ {
+ XMI_TRACE ("got a scope");
+
+ this->order_ = 0;
+
+ for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ AST_Decl *d = si.item ();
+ d->ast_accept (this);
+ ++this->order_;
+ }
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_type (AST_Type *)
+ {
+ XMI_TRACE ("got a type");
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_predefined_type (AST_PredefinedType *t)
+ {
+ XMI_TRACE ("predef type");
+ ACE_DEBUG ((LM_DEBUG, "pdt: %s\n", t->repoID ()));
+
+ switch (t->pt ())
+ {
+ case AST_PredefinedType::PT_pseudo:
+ this->create_and_store_xmi_id (t);
+ default:
+ break;
+ }
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_module (AST_Module *node)
+ {
+ XMI_TRACE ("module");
+
+ try
+ {
+ ES_Guard package_guard (LITERALS[PACKAGE_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_MODULE]);
+
+ {
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+ ES_Guard owned_guard (LITERALS[OWNEDELEMENT_TAG], this);
+ this->visit_scope (node);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_interface (AST_Interface *node)
+ {
+ XMI_TRACE ("interface");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_INTF]);
+
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ { // Operations.
+ ES_Guard owned_guard (LITERALS[OWNEDELEMENT_TAG], this);
+ this->cached_type_ = node;
+ this->visit_scope (node);
+ this->cached_type_ = 0;
+ }
+
+ // Inheritance
+ for (long i = 0; i < node->n_inherits (); ++i)
+ {
+ XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->inherits ()[i]->repoID ())));
+ }
+
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_interface_fwd (AST_InterfaceFwd *node)
+ {
+ XMI_TRACE ("interface_fwd");
+
+ try
+ {
+ this->create_and_store_xmi_id (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_valuebox (AST_ValueBox *node)
+ {
+ XMI_TRACE ("valuebox");
+
+ if (this->skip_imported_ && node->imported ())
+ return 0;
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_BOXVALUE]);
+
+ // add a generalization for the value we box
+ XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->boxed_type ()->repoID ())));
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_valuetype (AST_ValueType *node)
+ {
+ XMI_TRACE ("valuetype");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->visit_valuetype_impl (node, LITERALS[ST_VALUE]);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ idl3_to_xmi_visitor::visit_valuetype_impl (AST_ValueType *node, const ACE_TCHAR *stereo)
+ {
+ try
+ {
+ this->gen_common_elements (node, stereo);
+
+ // isAbstract
+ if (node->is_abstract ())
+ this->set_attribute (LITERALS[ABSTRACT], LITERALS[_TRUE]);
+ else this->set_attribute (LITERALS[ABSTRACT], LITERALS[_FALSE]);
+
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ if (node->inherits_concrete () != 0)
+ XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->inherits_concrete ()->repoID ())));
+
+ for (long i = 0; i < node->n_supports (); ++i)
+ {
+ XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
+ }
+
+ /* NOTE: CDMW XMI generator ignores supports specifications.
+ // Supports
+ if (node->n_supports () != 0)
+ throw Error ("ValueTypes which support are not currently supported.", node);
+ */
+
+ ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_valuetype_fwd (AST_ValueTypeFwd *node)
+ {
+ XMI_TRACE ("valuetype_fwd");
+
+ try
+ {
+ this->create_and_store_xmi_id (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_component (AST_Component *node)
+ {
+ XMI_TRACE ("component");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_COMP]);
+
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ for (long i = 0; i < node->n_supports (); ++i)
+ {
+ XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
+
+ }
+
+ if (node->base_component () != 0)
+ {
+ XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->base_component ()->repoID ())));
+ }
+
+ // Component ports
+ this->gen_component_ports (node->provides (),
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ LITERALS[ST_PROVIDES],
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
+
+ this->gen_component_ports (node->uses (),
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ LITERALS[ST_USES],
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
+
+ this->gen_component_ports (node->emits (),
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ LITERALS[ST_EMITS],
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
+
+ this->gen_component_ports (node->publishes (),
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ LITERALS[ST_PUBLISH],
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
+
+ this->gen_component_ports (node->consumes (),
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ LITERALS[ST_CONSUMES],
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
+
+
+ ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ // attributes in scope.
+ this->cached_type_ = node;
+ this->visit_scope (node);
+ this->cached_type_ = 0;
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_component_fwd (AST_ComponentFwd *node)
+ {
+ XMI_TRACE ("component_fwd");
+
+ try
+ {
+ this->create_and_store_xmi_id (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_eventtype (AST_EventType *node)
+ {
+ XMI_TRACE ("eventtype");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->visit_valuetype_impl (node, LITERALS[ST_EVENT]);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_eventtype_fwd (AST_EventTypeFwd *node)
+ {
+ XMI_TRACE ("eventtype_fwd");
+
+ this->visit_valuetype_fwd (node);
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_home (AST_Home *node)
+ {
+ XMI_TRACE ("home");
+
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard es_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_HOME]);
+
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+
+ for (long i = 0; i < node->n_supports (); ++i)
+ {
+ XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
+
+ }
+
+ if (node->base_home () != 0)
+ {
+ XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->base_home ()->repoID ())));
+ }
+
+ if (node->factories ().size () != 0)
+ {
+ ES_Guard noe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+ for (size_t i = 0; i < node->factories ().size (); ++i)
+ {
+ AST_Operation **op = 0;
+ node->factories ().get (op, i);
+ this->visit_operation_impl (*op, LITERALS[ST_HFACT]);
+ }
+ }
+
+ if (node->finders () .size () != 0)
+ throw Error ("home finders not supported", node);
+
+ this->add_managed_component (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->managed_component ()->repoID ()));
+
+ ES_Guard noe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ this->cached_type_ = node;
+ // attributes in scope.
+ this->visit_scope (node);
+ this->cached_type_ = 0;
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_factory (AST_Factory *node)
+ {
+ XMI_TRACE ("factory");
+ if (this->skip_imported_ && node->imported ())
+ return 0;
+ throw Error ("Factories not supported", node);
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_structure (AST_Structure *node)
+ {
+ XMI_TRACE ("structure");
+
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->visit_struct_impl (node, LITERALS[ST_STRUCT]);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ idl3_to_xmi_visitor::visit_struct_impl (AST_Structure *node, const ACE_TCHAR *stereotype)
+ {
+ try
+ {
+ this->gen_common_elements (node, stereotype);
+ ES_Guard ns_oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_structure_fwd (AST_StructureFwd *node)
+ {
+ XMI_TRACE ("structure_fwd");
+
+ try
+ {
+ this->create_and_store_xmi_id (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_exception (AST_Exception *node)
+ {
+ XMI_TRACE ("exception");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[EXCEPTION_TAG], this);
+
+ this->visit_struct_impl (node, LITERALS[ST_EX]);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_expression (AST_Expression *)
+ {
+ XMI_TRACE ("expression");
+
+ // we don't particularly care about expressions.
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_enum (AST_Enum *node)
+ {
+ XMI_TRACE ("enum");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ this->visit_scope (node);
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard es_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_ENUM]);
+
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+ ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ idl3_to_xmi_visitor::visit_operation_impl (AST_Operation *op, const ACE_TCHAR *stereotype)
+ {
+ if (this->skip_imported_ && op->imported ())
+ {
+ this->visit_scope (op);
+ return;
+ }
+
+ // This is a mess because the operation has so many special cases....
+ try
+ {
+ ES_Guard op_guard (LITERALS[OP_TAG], this);
+
+ // name and visiblity
+ this->set_attribute (LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (op->original_local_name ()->get_string ()));
+
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+
+ this->set_containing_element (LITERALS[OWNER]);
+
+ // If we have a stereotype, set it
+ if (stereotype != 0)
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ stereotype);
+
+ // XMI ID
+ this->create_and_store_xmi_id (op);
+
+ // while not strictly a namespace, the repo id goes on the
+ // namespace stack as the owner of contained elements.
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (op->repoID ()), this);
+
+ { // we need to generate the tagged value in a custom way here
+ ES_Guard me_guard (LITERALS[ME_TV_TAG], this);
+
+ {
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+ this->set_attribute (LITERALS[TAG], LITERALS[TYPEID]);
+ this->set_attribute (LITERALS[VALUE],
+ ACE_TEXT_CHAR_TO_TCHAR (op->repoID ()));
+ }
+
+ UTL_ExceptList *exceptions = op->exceptions ();
+ if (exceptions != 0 && exceptions->length () > 0)
+ {
+ for (UTL_ExceptlistActiveIterator ei (exceptions);
+ !ei.is_done ();
+ ei.next ())
+ {
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+ this->set_attribute (LITERALS[TAG], LITERALS[RAISES]);
+ this->set_attribute (LITERALS[VALUE],
+ ACE_TEXT_CHAR_TO_TCHAR (ei.item ()->full_name ()));
+ }
+ }
+ }
+
+ ES_Guard bfp_guard (LITERALS[BFP_TAG], this);
+
+ // return value
+ {
+ ES_Guard param_guard (LITERALS[PARAM_TAG], this);
+
+ // I don't think anything else can refer to the parameter by
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (op);
+
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ this->set_attribute (LITERALS[KIND], LITERALS[RETURN]);
+
+ this->set_containing_element (LITERALS[BFEATURE]);
+
+ xid = this->lookup_type_xid (op->return_type ());
+ this->set_attribute (LITERALS[TYPE],
+ xid);
+ }
+
+ if (op->argument_count () != 0)
+ {
+ // Visit arguments
+ for (UTL_ScopeActiveIterator si (op, UTL_Scope::IK_decls);
+ !si.is_done ();)
+ {
+ si.item ()->ast_accept (this);
+ si.next ();
+ }
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (op);
+ throw;
+ }
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_operation (AST_Operation *op)
+ {
+ XMI_TRACE ("operation");
+
+ this->visit_operation_impl (op, 0);
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_field (AST_Field *node)
+ {
+ XMI_TRACE ("field");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard attr_guard (LITERALS[ATTR_TAG], this);
+
+ // I don't think anything else can refer to the parameter by
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ this->set_attribute (LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+
+ switch (node->visibility ())
+ {
+ case AST_Field::vis_NA:
+ case AST_Field::vis_PUBLIC:
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ break;
+ case AST_Field::vis_PRIVATE:
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[_PRIVATE]);
+ break;
+ default:
+ throw Error ("unknown visibility type detected.", node);
+ }
+
+ // I think this is fixed.
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
+
+ this->set_containing_element (LITERALS[OWNER]);
+
+ xid = this->lookup_type_xid (node->field_type ());
+ this->set_attribute (LITERALS[TYPE],
+ xid);
+
+
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_argument (AST_Argument *node)
+ {
+ XMI_TRACE ("argument");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard param_guard (LITERALS[PARAM_TAG], this);
+
+ this->set_attribute (LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+
+ // I don't think anything else can refer to the parameter by
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ // kind
+ switch (node->direction ())
+ {
+ case AST_Argument::dir_IN:
+ this->set_attribute (LITERALS[KIND], LITERALS[_IN]);
+ break;
+
+ case AST_Argument::dir_INOUT:
+ this->set_attribute (LITERALS[KIND], LITERALS[INOUT]);
+ break;
+
+ case AST_Argument::dir_OUT:
+ this->set_attribute (LITERALS[KIND], LITERALS[_OUT]);
+ break;
+
+ default:
+ throw Error ("Unknown argument direction", node);
+ }
+
+ this->set_containing_element (LITERALS[BFEATURE]);
+
+ xid = this->lookup_type_xid (node->field_type ());
+ this->set_attribute (LITERALS[TYPE],
+ xid);
+
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_attribute (AST_Attribute *node)
+ {
+ XMI_TRACE ("attribute");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ if (this->cached_type_ == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Zounds! %d\n",
+ this->cached_type_));
+ throw Error ("Internal error - attribute expected "
+ "to have a cached type, but didn't");
+ }
+
+ try
+ {
+ // ***
+ NS_Guard global_ns (ACE_TEXT ("::"), this);
+ ES_Guard assoc_group (this->associations_, this);
+ ES_Guard attr_guard (LITERALS[ASSOC_TAG], this);
+
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ if (node->readonly ())
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ LITERALS[ST_RO]);
+ this->set_containing_element (LITERALS[OWNER]);
+ // I don't think anything else can refer to the attribute by
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
+
+ { // Containing type
+ ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[MULT], ACE_TEXT ("1"));
+ this->find_and_set_xid_as_attr (LITERALS[TYPE],
+ ACE_TEXT_CHAR_TO_TCHAR (this->cached_type_->repoID ()));
+ }
+
+ {
+ ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+ this->set_attribute (LITERALS[MULT], ACE_TEXT ("1"));
+ xid = this->lookup_type_xid (node->field_type ());
+ this->set_attribute (LITERALS[TYPE], xid);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_union (AST_Union *node)
+ {
+ XMI_TRACE ("union");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_UNION]);
+
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+ ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ // Set discriminator type
+ this->union_disc_ = node->disc_type ();
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ this->union_disc_ = 0;
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_union_fwd (AST_UnionFwd *node)
+ {
+ XMI_TRACE ("union_fwd");
+
+
+ try
+ {
+ this->create_and_store_xmi_id (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_union_branch (AST_UnionBranch *node)
+ {
+ XMI_TRACE ("union_branch");
+
+ try
+ {
+ ES_Guard attr_guard (LITERALS[ATTR_TAG], this);
+
+ // I don't think anything else can refer to the parameter by
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ // name
+ this->set_attribute (LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+
+ // visiblity
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+
+ this->set_containing_element (LITERALS[OWNER]);
+
+ // I think this is fixed.
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_ZTO]);
+
+ xid = this->lookup_type_xid (node->field_type ());
+ this->set_attribute (LITERALS[TYPE],
+ xid);
+
+ {
+ ES_Guard me_tv_guard (LITERALS[ME_TV_TAG], this);
+
+ {
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+ this->set_attribute (LITERALS[TAG], LITERALS[IDLORDER]);
+
+ // convert the order value to a string
+ // need a buffer, with a little safety padding
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer
+ (this->number_to_string (this->order_));
+
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+
+ for (unsigned long i = 0; i < node->label_list_length (); ++i)
+ this->visit_union_label (node->label (i));
+
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ ACE_TCHAR *
+ idl3_to_xmi_visitor::union_label_value (AST_Expression *exp)
+ {
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer;
+
+ // @@TODO: Yuck, there has got to be a better way....
+ AST_Expression::AST_ExprValue *ev = exp->ev ();
+ const size_t bool_length = 6;
+
+ if (exp->ec () != AST_Expression::EC_symbol ||
+ this->union_disc_->node_type () == AST_Decl::NT_typedef ||
+ this->union_disc_->node_type () == AST_Decl::NT_pre_defined)
+ {
+ /* AST_Expression::ExprType type;
+
+ if (this->union_disc_->node_type () == AST_Decl::NT_typedef)
+ {
+ AST_Typedef *td (AST_Typedef::narrow_from_decl (this->union_disc_));
+ type = td->base_type ()->node_type ();
+ }
+ else type = ev->et;*/
+
+ // We have a non-enum discriminator
+ // Allocate memory
+ switch (ev->et)
+ {
+ case AST_Expression::EV_bool:
+ ACE_DEBUG ((LM_DEBUG, "bool disc\n"));
+ buffer.reset (new ACE_TCHAR [bool_length]); // length of 'false' + 1
+ break;
+ case AST_Expression::EV_char:
+ ACE_DEBUG ((LM_DEBUG, "char disc\n"));
+ buffer.reset (new ACE_TCHAR[1]);
+ break;
+ default:
+ ACE_DEBUG ((LM_DEBUG, "numberic?disc\n"));
+ // don't need to allocate room for numerics, handled by
+ // number_to_string
+ break;
+ }
+
+ // Decode the type
+ switch (ev->et)
+ {
+ case AST_Expression::EV_long:
+ buffer.reset (this->number_to_string(ev->u.lval));
+ break;
+ case AST_Expression::EV_ulong:
+ buffer.reset (this->number_to_string(ev->u.ulval));
+ break;
+ case AST_Expression::EV_short:
+ buffer.reset (this->number_to_string(ev->u.sval));
+ break;
+ case AST_Expression::EV_ushort:
+ buffer.reset (this->number_to_string(ev->u.usval));
+ break;
+
+ case AST_Expression::EV_bool:
+ buffer.reset (this->number_to_string (ev->u.bval));
+ break;
+ case AST_Expression::EV_char:
+ *buffer.get () = ev->u.cval;
+ break;
+ default:
+ throw Error ("Unknown union union label type");
+ }
+ }
+ else
+ {
+ AST_Enum *desc (0);
+ if ((desc = AST_Enum::narrow_from_decl (this->union_disc_)) == 0)
+ throw Error ("Descriminator type is not an enum");
+
+ AST_Decl *ev_decl =
+ desc->lookup_by_name (exp->n (), 1);
+
+ if (ev_decl == 0)
+ throw Error ("Couldn't look up enum name");
+
+ AST_EnumVal *ev = AST_EnumVal::narrow_from_decl (ev_decl);
+
+ if (ev == 0)
+ throw Error ("Couldn't look up enum name");
+
+ buffer.reset (ACE::strnew (ACE_TEXT_CHAR_TO_TCHAR (ev->full_name ())));
+ //const char *name = desc->lookup_by_value (exp)->full_name ();
+ // const char *name = exp->n ();
+ //buffer.reset (copy_scoped_name (exp->n ()));
+ }
+
+ if (buffer.get () == 0)
+ throw Error ("Unable to parse union label");
+
+ return buffer.release ();
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_union_label (AST_UnionLabel *node)
+ {
+ XMI_TRACE ("union_label");
+
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+ this->set_attribute (LITERALS[TAG], LITERALS[CASE]);
+
+ if (node->label_kind () == AST_UnionLabel::UL_default)
+ this->set_attribute (LITERALS[VALUE], LITERALS[DEFAULT_UNION]);
+ else
+ {
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR>
+ buffer (this->union_label_value (node->label_val ()));
+
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_constant (AST_Constant *node)
+ {
+ XMI_TRACE ("constant");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard attr_guard (LITERALS[ATTR_TAG], this);
+
+ this->set_attribute (LITERALS[OWNER_SCOPE], LITERALS[CLASSIFIER]);
+ this->set_attribute (LITERALS[CHANGEABLE], LITERALS[FROZEN]);
+ this->gen_common_elements (node, LITERALS[ST_CONST]);
+
+ // Constant type
+ const ACE_TCHAR *exprtype (0);
+ AST_Expression::AST_ExprValue *val
+ (node->constant_value ()->ev ());
+
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> str_value;
+
+ switch (node->et ())
+ {
+ case AST_Expression::EV_short:
+ exprtype = LITERALS[ST_SHORT];
+ str_value.reset (this->number_to_string (val->u.sval));
+ break;
+ case AST_Expression::EV_ushort:
+ exprtype = LITERALS[ST_US];
+ str_value.reset (this->number_to_string (val->u.usval));
+ break;
+ case AST_Expression::EV_long:
+ exprtype = LITERALS[ST_LONG];
+ str_value.reset (this->number_to_string (val->u.lval));
+ break;
+ case AST_Expression::EV_ulong:
+ exprtype = LITERALS[ST_UL];
+ str_value.reset (this->number_to_string (val->u.ulval));
+ break;
+ case AST_Expression::EV_longlong:
+ exprtype = LITERALS[ST_LL];
+ str_value.reset (this->number_to_string (val->u.llval));
+ case AST_Expression::EV_ulonglong:
+ exprtype = LITERALS[ST_ULL];
+ str_value.reset (this->number_to_string (val->u.ullval));
+ break;
+ case AST_Expression::EV_float:
+ exprtype = LITERALS[ST_FLOAT];
+ str_value.reset (this->number_to_string (val->u.fval));
+ break;
+ case AST_Expression::EV_double:
+ exprtype = LITERALS[ST_DOUBLE];
+ str_value.reset (this->number_to_string (val->u.dval));
+ break;
+ case AST_Expression::EV_longdouble:
+ exprtype = LITERALS[ST_LD];
+ str_value.reset (this->number_to_string (val->u.dval));
+ break;
+ case AST_Expression::EV_char:
+ exprtype = LITERALS[ST_CHAR];
+ str_value.reset (this->number_to_string (val->u.cval));
+ break;
+ case AST_Expression::EV_wchar:
+ exprtype = LITERALS[ST_WCHAR];
+ str_value.reset (this->number_to_string (val->u.wcval));
+ break;
+ case AST_Expression::EV_octet:
+ exprtype = LITERALS[ST_OCTET];
+ str_value.reset (this->number_to_string (val->u.dval));
+ break;
+ case AST_Expression::EV_bool:
+ exprtype = LITERALS[ST_BOOL];
+ str_value.reset (this->number_to_string (val->u.bval));
+ break;
+ case AST_Expression::EV_string:
+ exprtype = LITERALS[ST_STR];
+ str_value.reset (ACE::strnew (
+ ACE_TEXT_CHAR_TO_TCHAR (val->u.strval->get_string ())));
+ break;
+ case AST_Expression::EV_wstring:
+ exprtype = LITERALS[ST_WSTR];
+ str_value.reset (ACE::strnew (
+ ACE_TEXT_CHAR_TO_TCHAR (val->u.wstrval)));
+ break;
+ case AST_Expression::EV_enum:
+ {
+ UTL_Scope *s = node->defined_in ();
+ AST_Decl *d =
+ s->lookup_by_name (node->constant_value ()->n (), 1);
+ exprtype = ACE_TEXT_CHAR_TO_TCHAR (
+ ScopeAsDecl (d->defined_in ())->repoID ());
+ str_value.reset (ACE::strnew (
+ ACE_TEXT_CHAR_TO_TCHAR (d->full_name ())));
+ }
+ break;
+
+ default:
+ throw Error ("Unsupported constant type", node);
+ }
+
+ // type attribute
+ XStr xid (this->lookup_xid (exprtype));
+ this->set_attribute (LITERALS[TYPE],
+ xid);
+
+ {
+ ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
+ {
+ ES_Guard tv (LITERALS[TV_TAG], this);
+ this->set_attribute (LITERALS[TAG], LITERALS[INIT_VAL]);
+ this->set_attribute (LITERALS[VALUE], str_value. get ());
+ }
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_enum_val (AST_EnumVal *node)
+ {
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ XMI_TRACE ("enum val");
+ ES_Guard att_guard (LITERALS[ATTR_TAG], this);
+
+ this->create_and_store_xmi_id (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ this->set_attribute (LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+
+ // I think this is fixed.
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
+ this->set_containing_element (LITERALS[OWNER]);
+
+ ES_Guard me_guard (LITERALS[ME_TV_TAG], this);
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+
+ this->set_attribute (LITERALS[TAG], LITERALS[IDLORDER]);
+
+ // convert the enum value to a string
+ // need a buffer, with a little safety padding
+
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer
+ (this->number_to_string (node->constant_value ()->ev ()->u.eval));
+
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_array (AST_Array *node)
+ {
+ XMI_TRACE ("array val");
+ throw Error ("Arrays not supported", node);
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_sequence (AST_Sequence *node)
+ {
+ XMI_TRACE ("sequence val");
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node,
+ LITERALS[ST_SEQ]);
+
+ // Generate the bounds and type on the sequence, which is an
+ // association in the association tree.
+ NS_Guard global_ns (ACE_TEXT ("::"), this);
+ ES_Guard assoc_group (this->associations_, this);
+ ES_Guard assoc_g (LITERALS[ASSOC_TAG], this);
+
+ // I don't think anything else can refer to this association
+ // xid, so I won't store it.
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->set_containing_element (LITERALS[NS]);
+
+ ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
+
+
+ { // Bounds
+ ES_Guard assocend (LITERALS[ASSOC_END_TAG], this);
+
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_ZTO]);
+
+ xid = this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ this->set_attribute (LITERALS[TYPE], xid);
+
+ ES_Guard assoc_qual (LITERALS[ASSOC_END_QUAL_TAG], this);
+ ES_Guard attr (LITERALS[ATTR_TAG], this);
+
+ xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[NAME], LITERALS[INDEX]);
+ this->set_attribute (LITERALS[TYPE], LITERALS[ST_LONG]);
+
+ ES_Guard me_c (LITERALS[ME_CONS_TAG], this);
+ ES_Guard cons (LITERALS[CONSTRAINT], this);
+ ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
+ ES_Guard tv (LITERALS[TV_TAG], this);
+
+ this->set_attribute (LITERALS[TAG], LITERALS[CONST_UPPER]);
+
+ // @@TODO: need to extract bound from node.
+ if (node->unbounded ())
+ this->set_attribute (LITERALS[CONST_UPPER], LITERALS[UNBOUNDED_SEQ]);
+ else
+ { // bounded sequence
+ // convert the array bound to a string
+ // need a buffer, with a little safety padding
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer
+ (this->number_to_string (node->max_size ()->ev ()->u.ulval));
+
+ this->set_attribute (LITERALS[CONST_UPPER], buffer.get ());
+ }
+ }
+
+ // Sequence type
+ ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
+
+ XStr seq_type = this->lookup_type_xid (node->base_type ());
+ this->set_attribute (LITERALS[TYPE],
+ seq_type);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_string (AST_String *)
+ {
+ XMI_TRACE ("string");
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_typedef (AST_Typedef *node)
+ {
+ XMI_TRACE ("typedef");
+
+ if (this->skip_imported_ && node->imported ())
+ return 0;
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ AST_Decl *base (node->base_type ());
+ if (base->node_type () == AST_Decl::NT_sequence ||
+ base->node_type () == AST_Decl::NT_array)
+ {
+ // Anonymous Sequences and arrays appear to be a special case
+ const ACE_TCHAR *stereo (0);
+ switch (base->node_type ())
+ {
+ case AST_Decl::NT_sequence:
+ stereo = LITERALS[ST_SEQ];
+ break;
+ case AST_Decl::NT_array:
+ stereo = LITERALS[ST_ARR];
+ break;
+ default:
+ throw Error ("Unsupported anonymous type inside typedef.",
+ node);
+ }
+ this->gen_common_elements (node, stereo);
+
+ // Hopefully we have hit something like:
+ // typedef char AirportName[4];
+ AST_Array* the_array = 0;
+ AST_Sequence* the_sequence = 0;
+ if (base->node_type () == AST_Decl::NT_array)
+ {
+ the_array = AST_Array::narrow_from_decl (base);
+ }
+ else
+ {
+ the_sequence = AST_Sequence::narrow_from_decl (base);
+ }
+
+ // <UML:Namespace.ownedElement>
+ NS_Guard global_ns (ACE_TEXT ("::"), this);
+
+ // <UML:Association xmi.id="xmi.1210085542354" visibility="public" namespace="xmi.1210085542350">
+ ES_Guard assoc_group (this->associations_, this);
+ ES_Guard assoc_g (LITERALS[ASSOC_TAG], this);
+
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->set_containing_element (LITERALS[NS]);
+
+ // <UML:Association.connection>
+ ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
+
+ {
+ // <UML:AssociationEnd multiplicity="0..1" type="xmi.1210085542353">
+ ES_Guard assocend (LITERALS[ASSOC_END_TAG], this);
+
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_ZTO]);
+
+ xid =
+ this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ this->set_attribute (LITERALS[TYPE], xid);
+
+ // <UML:AssociationEnd.qualifier>
+ ES_Guard assoc_qual (LITERALS[ASSOC_END_QUAL_TAG], this);
+
+ for (unsigned long i = 0;
+ the_array != 0 && i < the_array->n_dims ();
+ ++i)
+ {
+ // <UML:Attribute xmi.id="xmi.1210085542355" name="index0" type='xmi.1210085542329'> - N.B. that type is long.
+ ES_Guard attr (LITERALS[ATTR_TAG], this);
+
+ xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ std::stringstream str;
+ str << LITERALS[INDEX];
+ str << i;
+
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ xid = this->lookup_xid (LITERALS[ST_LONG]);
+ this->set_attribute (LITERALS[TYPE], xid);
+
+ // <UML:ModelElement.constraint>
+ ES_Guard me_c (LITERALS[ME_CONS_TAG], this);
+
+ // <UML:Constraint xmi.id="xmi.1210085542356">
+ ES_Guard cons (LITERALS[CONSTRAINT], this);
+
+ xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ // <UML:ModelElement.taggedValue>
+ ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
+
+ // <UML:TaggedValue tag="constraintUpperValue" value="4"/>
+ ES_Guard tv (LITERALS[TV_TAG], this);
+
+ this->set_attribute (LITERALS[TAG], LITERALS[CONST_UPPER]);
+
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer (
+ this->number_to_string (
+ the_array->dims ()[i]->ev ()->u.ulval));
+
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+
+ if (the_sequence)
+ {
+ ES_Guard attr (LITERALS[ATTR_TAG], this);
+
+ xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[NAME], LITERALS[INDEX]);
+ xid = this->lookup_xid (LITERALS[ST_LONG]);
+ this->set_attribute (LITERALS[TYPE], xid);
+
+
+ ES_Guard me_c (LITERALS[ME_CONS_TAG], this);
+ ES_Guard cons (LITERALS[CONSTRAINT], this);
+ ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
+ ES_Guard tv (LITERALS[TV_TAG], this);
+
+ this->set_attribute (LITERALS[TAG], LITERALS[CONST_UPPER]);
+
+ // @@TODO: need to extract bound from node.
+ if (the_sequence->unbounded ())
+ {
+ this->set_attribute (LITERALS[CONST_UPPER],
+ LITERALS[UNBOUNDED_SEQ]);
+ }
+ else
+ { // bounded sequence
+ // convert the array bound to a string
+ // need a buffer, with a little safety padding
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer (
+ this->number_to_string (
+ the_sequence->max_size ()->ev ()->u.ulval));
+
+ this->set_attribute (LITERALS[CONST_UPPER],
+ buffer.get ());
+ }
+ }
+
+ // <UML:AssociationEnd multiplicity="1..1" type="xmi.1210085542346"/> - type is Char for this IDL
+ ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
+
+ XStr seq_type =
+ this->lookup_type_xid (
+ (the_array ?
+ the_array->base_type () :
+ the_sequence->base_type ()));
+ this->set_attribute (LITERALS[TYPE],
+ seq_type);
+ }
+ }
+ else
+ {
+ this->gen_common_elements (node,
+ LITERALS[ST_TYPEDEF]);
+
+ // Generalization
+ XStr xid (this->add_generalization (node,
+ node->base_type ()));
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_root (AST_Root *node)
+ {
+ XMI_TRACE ("root");
+ try
+ {
+ ACE_CString fn;
+
+ if ((fn = be_global->filename ()) == "")
+ {
+ fn = idl_global->stripped_filename ()->get_string ();
+ fn = fn.substr (0, fn.rfind ('.'));
+ fn += ".xmi";
+ }
+
+ const char *path = be_global->output_dir ();
+ ACE_CString target_name;
+
+ if (path != 0)
+ {
+ target_name = path;
+ target_name += "/";
+ }
+
+ target_name += fn;
+
+ ACE_DEBUG ((LM_DEBUG, "Opening %C\n",
+ target_name.c_str ()));
+
+ CIAO::XML::NoOp_Resolver res_func;
+ CIAO::XML::XML_Schema_Resolver<> resolver (res_func);
+ CIAO::XML::XML_Error_Handler handler;
+ CIAO::XML::XML_Helper<> helper (resolver, handler);
+
+ // Create XML document
+ std::auto_ptr<DOMDocumentType> doctype (
+ helper.create_doctype (ACE_TEXT("XMI"),
+ 0,
+ ACE_TEXT_CHAR_TO_TCHAR (be_global->dtd ())));
+
+ if ((this->dom_ = helper.create_dom (ACE_TEXT("XMI"),
+ ACE_TEXT(""),
+ doctype.get ())) == 0)
+ ACE_ERROR_RETURN ((LM_ERROR, "Unable to create XML document."), -1);
+
+ this->root_ = this->dom_->getDocumentElement ();
+
+ this->stack_.push (this->root_);
+
+ this->set_attribute (LITERALS[VERSION_TAG],
+ LITERALS[VERSION_VALUE]);
+
+ this->set_attribute (LITERALS[NS_TAG],
+ LITERALS[NS_VALUE]);
+
+ DOMElement *tmp = 0;
+
+ // Pregenerate stereotypes to cache xmi.ids.
+ DOMElement *stereotypes = this->generate_stereotypes ();
+
+ // Create XMI header
+ {
+ ES_Guard ht_g (LITERALS[HEADER_TAG], this);
+ ES_Guard d_t (LITERALS[DOC_TAG], this);
+ ES_Guard e_t (LITERALS[EXPORTER_TAG], this);
+ this->add_text (LITERALS[EXPORTER_VALUE]);
+ }
+
+ this->stack_.push (this->create_element (LITERALS[CONTENT_TAG]));
+ this->stack_.push (this->create_element (LITERALS[MODEL_TAG]));
+
+ // Store the base model xid
+ this->set_attribute (LITERALS[XMI_ID], this->base_id_);
+ this->id_map_.bind (ACE_TEXT ("::"), this->base_id_);
+
+
+ // Global namespace
+ this->stack_.push (this->create_element (LITERALS[OWNEDELEMENT_TAG]));
+ this->namespace_.push (ACE_TEXT ("::"));
+
+ // Create generalizations and associations elements, but don't join
+ // them to the tree yet
+ this->associations_ = this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
+ this->generalizations_ = this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_root - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ this->stack_.pop (tmp);
+
+ this->stack_.top (tmp);
+
+ tmp->appendChild (this->generalizations_);
+ tmp->appendChild (this->associations_);
+ tmp->appendChild (stereotypes);
+
+ helper.write_DOM (this->dom_,
+ ACE_TEXT_CHAR_TO_TCHAR (target_name.c_str ()));
+ }
+ catch (const Error &ex)
+ {
+ if (ex.node_ != 0)
+ ACE_ERROR ((LM_ERROR, "%s:%d:error: %s\n",
+ ex.node_->file_name ().c_str (),
+ ex.node_->line (),
+ ex.diag_.c_str ()));
+ else
+ ACE_ERROR ((LM_ERROR, "::error:%s\n",
+ ex.diag_.c_str ()));
+
+ return -1;
+ }
+ return 0;
+ }
+
+ int
+ idl3_to_xmi_visitor::visit_native (AST_Native *)
+ {
+ XMI_TRACE ("native");
+ return 0;
+ }
+
+ void
+ idl3_to_xmi_visitor::set_attribute (const ACE_TCHAR *name,
+ const ACE_TCHAR *value)
+ {
+ DOMElement *ele = 0;
+ this->stack_.top (ele);
+
+ ele->setAttribute (XStr (name), XStr (value));
+ }
+
+
+ void
+ idl3_to_xmi_visitor::set_attribute (const ACE_TCHAR *name,
+ const XMLCh *value)
+ {
+ DOMElement *ele = 0;
+ this->stack_.top (ele);
+
+ ele->setAttribute (XStr (name), value);
+ }
+
+ void
+ idl3_to_xmi_visitor::add_text (const ACE_TCHAR *text)
+ {
+ DOMElement *ele = 0;
+ this->stack_.top (ele);
+
+ DOMText *node = this->dom_->createTextNode (XStr (text));
+ ele->appendChild (node);
+ }
+
+ DOMElement *
+ idl3_to_xmi_visitor::create_element (const ACE_TCHAR *name)
+ {
+ DOMElement *ele = 0;
+ this->stack_.top (ele);
+
+ DOMElement *node = this->dom_->createElement (XStr (name));
+
+ ele->appendChild (node);
+
+ return node;
+ }
+
+ DOMElement *
+ idl3_to_xmi_visitor::generate_stereotypes (void)
+ {
+ DOMElement *retval = this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
+
+ // put it on the stack to subsequent create_element calls refer to it.
+ this->stack_.push (retval);
+
+ this->add_stereotype (ST_CONSUMES, ASSOC);
+ this->add_stereotype (ST_ANON_SEQ, CLASS);
+ this->add_stereotype (ST_PRINC, DATATYPE);
+ this->add_stereotype (ST_UNION, CLASS);
+ this->add_stereotype (ST_USES, ASSOC);
+ this->add_stereotype (ST_SEQ, CLASS);
+ this->add_stereotype (ST_ROE, _NULL);
+ this->add_stereotype (ST_RO, _NULL);
+ this->add_stereotype (ST_OBJ, DATATYPE);
+ this->add_stereotype (ST_STR, DATATYPE);
+ this->add_stereotype (ST_LD, DATATYPE);
+ this->add_stereotype (ST_ANON_ARR, CLASS);
+ this->add_stereotype (ST_ALIAS, CLASS);
+ this->add_stereotype (ST_NULL, DATATYPE);
+ this->add_stereotype (ST_VALUE, CLASS);
+ this->add_stereotype (ST_VOID, DATATYPE);
+ this->add_stereotype (ST_EX, CLASS);
+ this->add_stereotype (ST_OCTET, DATATYPE);
+ this->add_stereotype (ST_MANAGES, ASSOC);
+ this->add_stereotype (ST_WSTR, DATATYPE);
+ this->add_stereotype (ST_FLOAT, DATATYPE);
+ this->add_stereotype (ST_ENUM, CLASS);
+ this->add_stereotype (ST_VAL_SUP, CLASS);
+ this->add_stereotype (ST_MODULE, PACKAGE);
+ this->add_stereotype (ST_HFINDER, CLASS);
+ this->add_stereotype (ST_DOUBLE, DATATYPE);
+ this->add_stereotype (ST_LL, DATATYPE);
+ this->add_stereotype (ST_HFACT, CLASS);
+ this->add_stereotype (ST_ARR, CLASS);
+ this->add_stereotype (ST_COMP, CLASS);
+ this->add_stereotype (ST_SHORT, DATATYPE);
+ this->add_stereotype (ST_TYPEDEF, CLASS);
+ this->add_stereotype (ST_ULL, DATATYPE);
+ this->add_stereotype (ST_LONG, DATATYPE);
+ this->add_stereotype (ST_TC, DATATYPE);
+ this->add_stereotype (ST_HOME, CLASS);
+ this->add_stereotype (ST_STRUCT, CLASS);
+ this->add_stereotype (ST_FIXED, DATATYPE);
+ this->add_stereotype (ST_US, DATATYPE);
+ this->add_stereotype (ST_EMITS, ASSOC);
+ this->add_stereotype (ST_BOXVALUE, CLASS);
+ this->add_stereotype (ST_BOOL, DATATYPE);
+ this->add_stereotype (ST_CONST, ATTR);
+ this->add_stereotype (ST_PUBLISH, ASSOC);
+ this->add_stereotype (ST_CONSTANTS, CLASS);
+ this->add_stereotype (ST_PROVIDES, ASSOC);
+ this->add_stereotype (ST_WCHAR, DATATYPE);
+ this->add_stereotype (ST_UL, DATATYPE);
+ this->add_stereotype (ST_VAL_FACT, CLASS);
+ this->add_stereotype (ST_EVENT, CLASS);
+ this->add_stereotype (ST_CHAR, DATATYPE);
+ this->add_stereotype (ST_INTF, CLASS);
+ this->add_stereotype (ST_PRI_KEY, CLASS);
+ this->add_stereotype (ST_ANY, DATATYPE);
+
+ this->stack_.pop (retval);
+
+ return retval;
+ }
+
+ void
+ idl3_to_xmi_visitor::add_stereotype (const LITERAL_T name,
+ const LITERAL_T bc)
+ {
+ // Generate our xmi.id
+ XStr xid (this->gen_xmi_id ());
+
+ // Bind the id in the map
+ this->id_map_.bind (LITERALS[name], xid);
+
+ DOMElement *ele = this->create_element (LITERALS[STEREOTYPE_TAG]);
+ ele->setAttribute (XStr (LITERALS[XMI_ID]), xid);
+ ele->setAttribute (XStr (LITERALS[NAME]), XStr (LITERALS[name]));
+ ele->setAttribute (XStr (LITERALS[BASEC]), XStr (LITERALS[bc]));
+
+ return;
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::gen_xmi_id (const ACE_TCHAR *name, long line)
+ {
+ if (current_id_ == 0)
+ {
+ ACE_OS::srand (ACE_OS::gettimeofday ().msec ());
+ current_id_ = rand ();
+ }
+ std::stringstream str;
+ str << name << ':' << line << '.' << current_id_++;
+
+ XStr retval (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ return retval.release ();
+
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::gen_xmi_id (AST_Decl *node)
+ {
+ if (current_id_ == 0)
+ {
+ ACE_OS::srand (ACE_OS::gettimeofday ().msec ());
+ current_id_ = rand ();
+ }
+
+ // we want these IDs to be unique, but the CDMW code generator sometimes depends
+ // on the order these things were declared in IDL, so for cases like that,
+ // we generate an ID that will sort to the order it was declared in IDL,
+ // no matter which order we visit the nodes.
+ if (node != 0)
+ return gen_xmi_id (ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()),
+ node->line ());
+
+ std::stringstream str;
+
+ str << "xmi." << current_id_++;
+ XStr retval (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ return retval.release ();
+ }
+
+ void
+ idl3_to_xmi_visitor::set_containing_element (const ACE_TCHAR *cont_name)
+ {
+ ACE_TString tmp;
+ XStr xid;
+
+ this->namespace_.top (tmp);
+ this->id_map_.find (tmp, xid);
+ this->set_attribute (cont_name, xid);
+ }
+
+ void
+ idl3_to_xmi_visitor::create_and_store_xmi_id (AST_Decl *node)
+ {
+ try
+ {
+ this->create_and_store_xmi_id (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), node);
+ }
+ catch (Error &ex)
+ {
+ ex.node (node);
+ throw;
+ }
+ }
+
+ void
+ idl3_to_xmi_visitor::create_and_store_xmi_id (const ACE_TCHAR *name, AST_Decl *node)
+ {
+ XStr xid = this->gen_xmi_id (node);
+
+ // store xmi_id
+ if (this->id_map_.trybind (name, xid) == -1)
+ throw Error ("error binding in the XMI ID map");
+
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::lookup_xid (const ACE_TCHAR *name)
+ {
+ XStr tmp;
+ if (this->id_map_.find (name, tmp) == -1)
+ {
+ ACE_CString err ("unknown XMI ID requested for ");
+ err += ACE_TEXT_ALWAYS_CHAR (name);
+ throw Error (err.c_str ());
+ }
+
+ return tmp.release ();
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::lookup_type_xid (AST_Type *node)
+ {
+ AST_PredefinedType *pdt = 0;
+
+ switch (node->node_type ())
+ {
+ case AST_Decl::NT_string:
+ return this->lookup_xid (LITERALS[ST_STR]);
+ case AST_Decl::NT_wstring:
+ return this->lookup_xid (LITERALS[ST_WSTR]);
+
+ case AST_Decl::NT_pre_defined:
+ pdt = AST_PredefinedType::narrow_from_decl (node);
+
+ switch (pdt->pt ())
+ {
+ case AST_PredefinedType::PT_pseudo:
+ return this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (pdt->repoID ()));
+ case AST_PredefinedType::PT_object:
+ return this->lookup_xid (LITERALS[ST_OBJ]);
+ case AST_PredefinedType::PT_any:
+ return this->lookup_xid (LITERALS[ST_ANY]);
+ case AST_PredefinedType::PT_long:
+ return this->lookup_xid (LITERALS[ST_LONG]);
+ case AST_PredefinedType::PT_ulong:
+ return this->lookup_xid (LITERALS[ST_UL]);
+ case AST_PredefinedType::PT_longlong:
+ return this->lookup_xid (LITERALS[ST_LL]);
+ case AST_PredefinedType::PT_ulonglong:
+ return this->lookup_xid (LITERALS[ST_ULL]);
+ case AST_PredefinedType::PT_short:
+ return this->lookup_xid (LITERALS[ST_SHORT]);
+ case AST_PredefinedType::PT_ushort:
+ return this->lookup_xid (LITERALS[ST_US]);
+ case AST_PredefinedType::PT_float:
+ return this->lookup_xid (LITERALS[ST_FLOAT]);
+ case AST_PredefinedType::PT_double:
+ return this->lookup_xid (LITERALS[ST_DOUBLE]);
+ case AST_PredefinedType::PT_longdouble:
+ return this->lookup_xid (LITERALS[ST_LD]);
+ case AST_PredefinedType::PT_char:
+ return this->lookup_xid (LITERALS[ST_CHAR]);
+ case AST_PredefinedType::PT_wchar:
+ return this->lookup_xid (LITERALS[ST_WCHAR]);
+ case AST_PredefinedType::PT_boolean:
+ return this->lookup_xid (LITERALS[ST_BOOL]);
+ case AST_PredefinedType::PT_octet:
+ return this->lookup_xid (LITERALS[ST_OCTET]);
+ case AST_PredefinedType::PT_void:
+ return this->lookup_xid (LITERALS[ST_VOID]);
+ default:
+ throw Error ("Unknown or unsupported predefined type",
+ pdt);
+ }
+ default:
+ return this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ }
+ }
+
+ void
+ idl3_to_xmi_visitor::find_and_set_xid_as_attr (const ACE_TCHAR *attr_name,
+ const ACE_TCHAR *xid_name)
+ {
+ XStr tmp;
+
+ if (this->id_map_.find (xid_name, tmp) == -1)
+ {
+ ACE_CString err ("unknown XMI ID when looking up ");
+ err += ACE_TEXT_ALWAYS_CHAR (xid_name);
+ throw Error (err.c_str ());
+ }
+
+ this->set_attribute (attr_name, tmp);
+ }
+
+ void
+ idl3_to_xmi_visitor::gen_tagged_value (AST_Decl *node)
+ {
+ ES_Guard me_guard (LITERALS[ME_TV_TAG], this);
+ ES_Guard tv_guard (LITERALS[TV_TAG], this);
+
+ this->set_attribute (LITERALS[TAG], LITERALS[TYPEID]);
+ this->set_attribute (LITERALS[VALUE],
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::add_generalization (const ACE_TCHAR *sub, const ACE_TCHAR *super)
+ {
+ return this->add_generalization (XStr (this->lookup_xid (sub)),
+ XStr (this->lookup_xid (super)));
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::add_generalization (AST_Type *sub, AST_Type *super)
+ {
+ return this->add_generalization (XStr (this->lookup_type_xid (sub)),
+ XStr (this->lookup_type_xid (super)));
+ }
+
+ XMLCh *
+ idl3_to_xmi_visitor::add_generalization (const XMLCh *sub, const XMLCh *super)
+ {
+ XStr xid;
+
+ { // add generalization to the 'generalizations' set
+ ES_Guard es_guard (this->generalizations_, this);
+ NS_Guard ns_guard (ACE_TEXT ("::"), this);
+
+ ES_Guard gen_guard (LITERALS[GEN_TAG], this);
+
+ // Generate XMI ID
+ xid = this->gen_xmi_id ();
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ this->set_containing_element (LITERALS[NS]);
+
+ { // subtype
+ ES_Guard st_guard (LITERALS[GEN_SUB_TAG], this);
+ ES_Guard element_guard (LITERALS[GEN_ELEMENT_TAG], this);
+
+ this->set_attribute (LITERALS[IDREF], sub);
+ }
+
+ { // subtype
+ ES_Guard st_guard (LITERALS[GEN_SUPER_TAG], this);
+ ES_Guard element_guard (LITERALS[GEN_ELEMENT_TAG], this);
+
+ this->set_attribute (LITERALS[IDREF], super);
+ }
+ }
+
+ { // Reference generalization in the calling element.
+ ES_Guard et_g (LITERALS[GEN_ELEMENT_GEN_TAG], this);
+ ES_Guard g_g (LITERALS[GEN_TAG], this);
+ this->set_attribute (LITERALS[IDREF], xid);
+ }
+
+ return xid.release ();
+ }
+
+ void
+ idl3_to_xmi_visitor::add_port (const ACE_TCHAR *component,
+ const ACE_TCHAR *port_kind,
+ const ACE_TCHAR *port_type,
+ const ACE_TCHAR *name,
+ bool is_multiple,
+ const ACE_TCHAR *file_name,
+ long line)
+ {
+ if (is_multiple)
+ throw Error ("uses multiple not yet supported.");
+
+ ES_Guard es_guard (this->associations_, this);
+ NS_Guard ns_guard (ACE_TEXT ("::"), this);
+
+ ES_Guard assoc_guard (LITERALS[ASSOC_TAG], this);
+
+ // Generate XMI ID
+ XStr xid (this->gen_xmi_id (file_name, line));
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR], port_kind);
+ this->set_containing_element (LITERALS[NS]);
+
+ ES_Guard conn_guard (LITERALS[ASSOC_CONN_TAG], this);
+
+ { // component end
+ ES_Guard end_guard (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[MULT], ACE_TEXT ("1"));
+ this->find_and_set_xid_as_attr (LITERALS[TYPE], component);
+ }
+
+ { // component end
+ ES_Guard end_guard (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[NAME], name);
+ this->set_attribute (LITERALS[MULT], ACE_TEXT ("1"));
+ this->find_and_set_xid_as_attr (LITERALS[TYPE], port_type);
+ }
+ }
+
+ void
+ idl3_to_xmi_visitor::add_managed_component (const ACE_TCHAR *home,
+ const ACE_TCHAR *component)
+ {
+ ES_Guard es_guard (this->associations_, this);
+ NS_Guard ns_guard (ACE_TEXT ("::"), this);
+
+ ES_Guard assoc_guard (LITERALS[ASSOC_TAG], this);
+
+ // Generate XMI ID
+ XStr xid (this->gen_xmi_id ());
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR], LITERALS[ST_MANAGES]);
+ this->set_containing_element (LITERALS[NS]);
+
+ ES_Guard conn_guard (LITERALS[ASSOC_CONN_TAG], this);
+
+ { // home end
+ ES_Guard end_guard (LITERALS[ASSOC_END_TAG], this);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR], LITERALS[ST_HOME]);
+ this->find_and_set_xid_as_attr (LITERALS[TYPE], home);
+ }
+
+ { // component end
+ ES_Guard end_guard (LITERALS[ASSOC_END_TAG], this);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR], LITERALS[ST_COMP]);
+ this->find_and_set_xid_as_attr (LITERALS[TYPE], component);
+ }
+ }
+
+ void
+ idl3_to_xmi_visitor::gen_common_elements (AST_Decl *node, const ACE_TCHAR *stereotype)
+ {
+ this->create_and_store_xmi_id (node);
+ this->set_attribute (LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->set_containing_element (LITERALS[NS]);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ stereotype);
+
+ NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
+ this->gen_tagged_value (node);
+ }
+ void
+ idl3_to_xmi_visitor::gen_component_ports (PORTS &ports,
+ const ACE_TCHAR *component,
+ const ACE_TCHAR *port_kind,
+ const ACE_TCHAR *file_name)
+ {
+ for (size_t i = 0; i < ports.size (); ++i)
+ {
+ AST_Component::port_description *pd = 0;
+ ports.get (pd, i);
+ this->add_port (component,
+ port_kind,
+ ACE_TEXT_CHAR_TO_TCHAR (pd->impl->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (IdentifierHelper::original_local_name (pd->id)->get_string ()),
+ pd->is_multiple,
+ file_name,
+ pd->line_number);
+ }
+ }
+
+ idl3_to_xmi_visitor::ES_Guard::ES_Guard (const ACE_TCHAR *name, idl3_to_xmi_visitor *vis)
+ : vis_ (*vis)
+ {
+ if (vis_.stack_.push (vis_.create_element (name)))
+ throw Error ("element stack error");
+ }
+
+ idl3_to_xmi_visitor::ES_Guard::ES_Guard (DOMElement *ele, idl3_to_xmi_visitor *vis)
+ : vis_ (*vis)
+ {
+ if (vis_.stack_.push (ele) != 0)
+ throw Error ("element stack error");
+ }
+
+ idl3_to_xmi_visitor::ES_Guard::~ES_Guard (void)
+ {
+ DOMElement *tmp;
+ if (vis_.stack_.pop (tmp) != 0)
+ {
+ vis_.output_dirty_ = true;
+ ACE_ERROR ((LM_ERROR, "error: element stack underflow."));
+ }
+ }
+
+ idl3_to_xmi_visitor::NS_Guard::NS_Guard (const ACE_TCHAR *name, idl3_to_xmi_visitor *vis)
+ : vis_ (*vis)
+ {
+ int res = vis_.namespace_.push (name);
+
+ if (res == 0) return;
+ throw Error ("stack error");
+ }
+
+ idl3_to_xmi_visitor::NS_Guard::~NS_Guard (void)
+ {
+ ACE_TString tmp;
+ if (vis_.namespace_.pop (tmp) != 0)
+ {
+ vis_.output_dirty_ = true;
+ ACE_ERROR ((LM_ERROR, "error:namespace stack underflow"));
+ }
+ }
+ }
+}
diff --git a/flat/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h b/flat/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h
new file mode 100644
index 00000000000..210d814ffa0
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h
@@ -0,0 +1,299 @@
+/**
+ * @file IDL3_to_XMI_visitor.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Implements a visitor that generates XMI for the CARDAMOM
+ * code generation facility.
+ *
+ * This IDL->XMI mapping appears to be based on a IDL->UML->XMI
+ * mapping, and should be valid XMI version 1.1
+ */
+
+#ifndef CIAO_XMI_VISITOR_H
+#define CIAO_XMI_VISITOR_H
+
+#include "ace/Containers.h"
+#include "ace/Hash_Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "ace/SString.h"
+
+#include "xercesc/util/XercesDefs.hpp"
+
+#include "ast_visitor.h"
+#include "ast_component.h"
+#include "ast_concrete_type.h"
+
+#include "utl_scoped_name.h"
+#include "Literals.h"
+#include "XML/XercesString.h"
+#include "CIAO_IDL3_TO_XMI_Export.h"
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class TAO_OutStream;
+class UTL_ExceptList;
+
+namespace XERCES_CPP_NAMESPACE
+{
+ class DOMDocument;
+ class DOMElement;
+}
+
+namespace CIAO
+{
+ namespace XMI
+ {
+
+ /**
+ * @class idl3_to_xmi_visitor
+ * @brief Visitor that generates XMI for the CARDAMOM code
+ * generation facilities.
+ */
+ class CIAO_IDL3_TO_XMI_Export idl3_to_xmi_visitor : public ast_visitor
+ {
+ public:
+ idl3_to_xmi_visitor (bool skip_imported);
+ virtual ~idl3_to_xmi_visitor (void);
+
+ virtual int visit_decl (AST_Decl *d);
+ virtual int visit_scope (UTL_Scope *node);
+ virtual int visit_type (AST_Type *node);
+ virtual int visit_predefined_type (AST_PredefinedType *node);
+ virtual int visit_module (AST_Module *node);
+ virtual int visit_interface (AST_Interface *node);
+ virtual int visit_interface_fwd (AST_InterfaceFwd *node);
+ virtual int visit_valuebox (AST_ValueBox *node);
+ virtual int visit_valuetype (AST_ValueType *node);
+ virtual int visit_valuetype_fwd (AST_ValueTypeFwd *node);
+ virtual int visit_component (AST_Component *node);
+ virtual int visit_component_fwd (AST_ComponentFwd *node);
+ virtual int visit_eventtype (AST_EventType *node);
+ virtual int visit_eventtype_fwd (AST_EventTypeFwd *node);
+ virtual int visit_home (AST_Home *node);
+ virtual int visit_factory (AST_Factory *node);
+ virtual int visit_structure (AST_Structure *node);
+ virtual int visit_structure_fwd (AST_StructureFwd *node);
+ virtual int visit_exception (AST_Exception *node);
+ virtual int visit_expression (AST_Expression *node);
+ virtual int visit_enum (AST_Enum *node);
+ virtual int visit_operation (AST_Operation *node);
+ virtual int visit_field (AST_Field *node);
+ virtual int visit_argument (AST_Argument *node);
+ virtual int visit_attribute (AST_Attribute *node);
+ virtual int visit_union (AST_Union *node);
+ virtual int visit_union_fwd (AST_UnionFwd *node);
+ virtual int visit_union_branch (AST_UnionBranch *node);
+ virtual int visit_union_label (AST_UnionLabel *node);
+ virtual int visit_constant (AST_Constant *node);
+ virtual int visit_enum_val (AST_EnumVal *node);
+ virtual int visit_array (AST_Array *node);
+ virtual int visit_sequence (AST_Sequence *node);
+ virtual int visit_string (AST_String *node);
+ virtual int visit_typedef (AST_Typedef *node);
+ virtual int visit_root (AST_Root *node);
+ virtual int visit_native (AST_Native *node);
+
+ struct Error
+ {
+ Error (const ACE_CString &diag, AST_Decl *node = 0)
+ : diag_ (diag),
+ node_ (node)
+ {}
+
+ void node (AST_Decl *node) { if (node_ == 0) node_ = node; }
+
+ const ACE_CString diag_;
+ AST_Decl *node_;
+ };
+
+ private:
+ /// Generates several elements common to most XMI elements.
+ /// Generates the following attributes: xmi.id, name, visibility, namespace, stereotype
+ /// and the tagged value grouping.
+ /// @param stereotype The stereotype this element should be associated with.
+ void gen_common_elements (AST_Decl *node, const ACE_TCHAR *stereotype);
+
+ /// Converts a number into a string representation.
+ /// Caller responsible for memory.
+ template <typename T>
+ ACE_TCHAR * number_to_string (T val);
+
+ /// Common elements of operation XMI generation
+ void visit_operation_impl (AST_Operation *node, const ACE_TCHAR *stereotype);
+
+ /// implementation for elements common to both eventtypes
+ /// and valuetypes
+ void visit_valuetype_impl (AST_ValueType *, const ACE_TCHAR *stereotype);
+
+ /// implementation of elements common to exceptions and structures.
+ void visit_struct_impl (AST_Structure *, const ACE_TCHAR *stereotype);
+
+ /// sets an attribute on the element at the top of the stack.
+ void set_attribute (const ACE_TCHAR *name,
+ const ACE_TCHAR *value);
+
+
+ /// sets an attribute on the element at the top of the stack
+ void set_attribute (const ACE_TCHAR *name,
+ const XMLCh *value);
+
+ /// Adds a text child to the element at the top of the stack
+ void add_text (const ACE_TCHAR *text);
+
+ /// Greates a new element as a child of the current stack element
+ XERCES_CPP_NAMESPACE::DOMElement * create_element (const ACE_TCHAR *name);
+
+ /// Generate stereotypes for XMI document
+ XERCES_CPP_NAMESPACE::DOMElement * generate_stereotypes (void);
+
+ /// Helper method which creates new stereotype elements
+ void add_stereotype (const LITERAL_T name,
+ const LITERAL_T bc);
+
+ /// Generates an XMI ID.
+ /// @param node If passed, the file name and line number will be
+ /// generated as part of the ID.
+ static XMLCh * gen_xmi_id (AST_Decl * node = 0);
+
+ /// Generates an XMI ID with file_name and line as part of the id.
+ static XMLCh * gen_xmi_id (const ACE_TCHAR *file_name, long line);
+
+ /// Used to store the next ID for generation
+ static size_t current_id_;
+
+ /// Generates the tagged value grouping common to most XMI elements
+ void gen_tagged_value (AST_Decl *);
+
+ /// Sets an attribute with name containment_name whose value is the
+ /// ID of the top of the namespace stack.
+ void set_containing_element (const ACE_TCHAR *containment_name);
+
+ /// Looks up the xmi:id assoviated with xid_name and sets it as an
+ /// attribute
+ void find_and_set_xid_as_attr (const ACE_TCHAR *attr_name, const ACE_TCHAR *xid_name);
+
+ /// Creates a XMI ID based on node, and sets its value to
+ /// the xmi.id attribute of the current top of element stack.
+ void create_and_store_xmi_id (AST_Decl *node);
+
+ /// Creates a XMI ID based on node, and sets its value to
+ /// the name attribute of the current top of element stack.
+ void create_and_store_xmi_id (const ACE_TCHAR *name, AST_Decl *node = 0);
+
+ /// Finds and returns the xmi.id associated with name.
+ XMLCh * lookup_xid (const ACE_TCHAR *name);
+
+ /// Finds and returns the xmi.id associated with the provided type.
+ XMLCh * lookup_type_xid (AST_Type *);
+
+ /// Used to add generalizations - most commonly used for supports
+ /// relationships. in component foo supports bar, foo is the sub,
+ /// bar is the super.
+ XMLCh * add_generalization (const ACE_TCHAR *sub, const ACE_TCHAR *super);
+ XMLCh * add_generalization (AST_Type *sub, AST_Type *super);
+
+ XMLCh * add_generalization (const XMLCh *sub, const XMLCh *super);
+
+ /// @param component Repository ID of component
+ /// @param port_kind text of port stereotype from LITERALS
+ /// @param port_type Repository ID of port type (ie, interface type for facet)
+ /// @param name The name of the port
+ /// @param is_multiple The multiplicity of the port (ie, uses multiple.)
+ void add_port (const ACE_TCHAR *component,
+ const ACE_TCHAR *port_kind,
+ const ACE_TCHAR *port_type,
+ const ACE_TCHAR *name,
+ bool is_multiple,
+ const ACE_TCHAR *file,
+ long line);
+
+ void add_managed_component (const ACE_TCHAR *home, const ACE_TCHAR *component);
+
+
+ typedef ACE_Unbounded_Queue<AST_Component::port_description> PORTS;
+
+ /// @param ports The queue representing the port from AST_component
+ /// @param component RepoID of the component
+ /// @param port_kind stereotype text of the port
+ void gen_component_ports (PORTS &ports,
+ const ACE_TCHAR *component,
+ const ACE_TCHAR *port_kind,
+ const ACE_TCHAR *file_name);
+
+ ACE_TCHAR * union_label_value (AST_Expression *exp);
+
+ typedef ACE_Hash_Map_Manager_Ex< ACE_TString,
+ CIAO::XML::XStr,
+ ACE_Hash <ACE_TString>,
+ ACE_Equal_To <ACE_TString>,
+ ACE_Null_Mutex > XMI_ID_MAP;
+
+ /// Stores xmi.ids for elements, indexed by repoId.
+ XMI_ID_MAP id_map_;
+
+ typedef ACE_Unbounded_Stack<XERCES_CPP_NAMESPACE::DOMElement *> ELEMENT_STACK;
+
+ /// Stores elements we are currently generating XMI. Top of stack is the current
+ /// element.
+ ELEMENT_STACK stack_;
+
+ /// Provides a "protected" push that is popped when the current scope
+ /// is exited.
+ struct ES_Guard
+ {
+ ES_Guard (const ACE_TCHAR *name, idl3_to_xmi_visitor *);
+ ES_Guard (XERCES_CPP_NAMESPACE::DOMElement *ele,
+ idl3_to_xmi_visitor *);
+ ~ES_Guard (void);
+
+ idl3_to_xmi_visitor &vis_;
+ };
+
+ friend struct ES_Guard;
+
+ typedef ACE_Unbounded_Stack< ACE_TString > STRING_STACK;
+
+ /// Stores namespaces associated with our current scope.
+ STRING_STACK namespace_;
+
+ /// Provides a protected push for the namespace stack that
+ /// pops when the current scope is exited.
+ struct NS_Guard
+ {
+ NS_Guard (const ACE_TCHAR *name, idl3_to_xmi_visitor *);
+ ~NS_Guard (void);
+
+ idl3_to_xmi_visitor &vis_;
+ };
+
+ friend struct NS_Guard;
+
+ XERCES_CPP_NAMESPACE::DOMDocument *dom_;
+
+ XERCES_CPP_NAMESPACE::DOMElement *root_;
+
+ XERCES_CPP_NAMESPACE::DOMElement *generalizations_;
+
+ XERCES_CPP_NAMESPACE::DOMElement *associations_;
+
+ const CIAO::XML::XStr base_id_;
+
+ /// true if for some reason the generated output is bad
+ /// and shouldn't be written.
+ bool output_dirty_;
+
+ bool skip_imported_;
+
+ /// Used to determine IDL ordering of union labels.
+ size_t order_;
+
+ /// USed to cache the type of union descriminators
+ AST_ConcreteType *union_disc_;
+
+ /// Used to cache the type whose scope we are currently in.
+ AST_Decl *cached_type_;
+ };
+ }
+}
+#endif
diff --git a/flat/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.cpp b/flat/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.cpp
new file mode 100644
index 00000000000..976f036092b
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.cpp
@@ -0,0 +1,932 @@
+// $Id$
+
+#include "IR_Simulator_visitor.h"
+
+#include "be_sunsoft.h"
+#include "be_extern.h"
+
+#include "ast_argument.h"
+#include "ast_array.h"
+#include "ast_attribute.h"
+#include "ast_component_fwd.h"
+#include "ast_enum.h"
+#include "ast_enum_val.h"
+#include "ast_eventtype.h"
+#include "ast_eventtype_fwd.h"
+#include "ast_exception.h"
+#include "ast_factory.h"
+#include "ast_field.h"
+#include "ast_home.h"
+#include "ast_operation.h"
+#include "ast_root.h"
+#include "ast_sequence.h"
+#include "ast_string.h"
+#include "ast_structure_fwd.h"
+#include "ast_union.h"
+#include "ast_union_branch.h"
+#include "ast_union_fwd.h"
+#include "ast_union_label.h"
+#include "ast_valuebox.h"
+#include "ast_valuetype_fwd.h"
+#include "ast_native.h"
+#include "utl_exceptlist.h"
+#include "utl_identifier.h"
+#include "utl_idlist.h"
+#include "utl_string.h"
+#include "global_extern.h"
+#include "nr_extern.h"
+#include "ace/OS_NS_stdio.h"
+
+
+#include <iostream>
+#include <limits>
+
+#if 0
+#define XMI_TRACE(X) std::cout << X << std::endl
+#else
+#define XMI_TRACE(X)
+#endif
+
+namespace CIAO
+{
+ namespace XMI
+ {
+ struct Incr_Guard
+ {
+ public:
+ Incr_Guard (size_t &subject, bool arm = false)
+ : subject_ (subject),
+ armed_ (arm)
+ {
+ }
+
+ ~Incr_Guard (void)
+ {
+ if (this->armed_)
+ --subject_;
+ }
+ void arm (void)
+ {
+ this->armed_ = true;
+ ++subject_;
+ }
+
+ private:
+ size_t &subject_;
+ bool armed_;
+ };
+
+ ir_simulator_visitor::ir_simulator_visitor (void)
+ : associating_ (false)
+ {
+ }
+
+ ir_simulator_visitor::~ir_simulator_visitor (void)
+ {
+ }
+
+ int
+ ir_simulator_visitor::visit_decl (AST_Decl *)
+ {
+ XMI_TRACE ("got a decl");
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_scope (UTL_Scope *node)
+ {
+ XMI_TRACE ("got a scope");
+
+ for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ AST_Decl *d = si.item ();
+
+ if (d->ast_accept (this) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ir_simulator_visitor::visit_scope - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+ }
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_type (AST_Type *)
+ {
+ XMI_TRACE ("got a type");
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_predefined_type (AST_PredefinedType *)
+ {
+ XMI_TRACE ("predef type");
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_module (AST_Module *node)
+ {
+ XMI_TRACE ("module");
+
+ if (!this->do_i_care (node)) return 0;
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ try
+ {
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_module - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_interface (AST_Interface *node)
+ {
+ XMI_TRACE ("interface");
+ if (!this->do_i_care (node)) return 0;
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ try
+ {
+ // Inheritance
+ for (long i = 0; i < node->n_inherits (); ++i)
+ {
+ this->visit_interface (node->inherits ()[i]);
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "idl3_to_idl2_visitor::visit_interface - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_interface_fwd (AST_InterfaceFwd *node)
+ {
+ XMI_TRACE ("interface_fwd");
+
+ // won't hurt to import the fwd interface
+ node->set_imported (false);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_valuebox (AST_ValueBox *node)
+ {
+ XMI_TRACE ("valuebox");
+ if (!this->do_i_care (node)) return 0;
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ try
+ {
+ // **** need to visit type we are boxing?
+ node->boxed_type ()->ast_accept (this);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_valuetype (AST_ValueType *node)
+ {
+ XMI_TRACE ("valuetype");
+
+ try
+ {
+ this->visit_valuetype_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ void
+ ir_simulator_visitor::visit_valuetype_impl (AST_ValueType *node)
+ {
+ Incr_Guard guard (this->associating_);
+ if (!this->do_i_care (node)) return;
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ try
+ {
+ if (node->inherits_concrete () != 0)
+ this->visit_valuetype_impl (node->inherits_concrete ());
+
+ long lim = node->n_supports ();
+ AST_Interface **sppts = node->supports ();
+
+ for (long i = 0; i < lim; ++i)
+ sppts[i]->ast_accept (this);
+
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+ }
+
+ int
+ ir_simulator_visitor::visit_valuetype_fwd (AST_ValueTypeFwd *node)
+ {
+ XMI_TRACE ("valuetype_fwd");
+
+ try
+ {
+ // no harm from importing a fwd interface
+ // node->is_imported (false);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_component (AST_Component *node)
+ {
+ XMI_TRACE ("component");
+ if (!this->do_i_care (node)) return 0;
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ try
+ {
+ if (node->base_component () != 0)
+ node->base_component ()->ast_accept (this);
+
+ long len = node->n_supports ();
+ AST_Interface **sppts = node->supports ();
+
+ for (long i = 0; i < len; ++i)
+ sppts[i]->ast_accept (this);
+
+ // **** ports
+ this->component_ports (node->provides ());
+ this->component_ports (node->uses ());
+ this->component_ports (node->emits ());
+ this->component_ports (node->publishes ());
+ this->component_ports (node->consumes ());
+
+ // attributes in scope.
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ void
+ ir_simulator_visitor::component_ports (PORTS &ports)
+ {
+ for (size_t i = 0; i < ports.size (); ++i)
+ {
+ AST_Component::port_description *pd = 0;
+ ports.get (pd, i);
+ pd->impl->ast_accept (this);
+ }
+ }
+
+ int
+ ir_simulator_visitor::visit_component_fwd (AST_ComponentFwd *node)
+ {
+ XMI_TRACE ("component_fwd");
+
+ try
+ {
+ // no harm from importing a fwd interface
+ // node->is_imported (false);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_eventtype (AST_EventType *node)
+ {
+ XMI_TRACE ("eventtype");
+
+ try
+ {
+ this->visit_valuetype_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_eventtype_fwd (AST_EventTypeFwd *node)
+ {
+ XMI_TRACE ("eventtype_fwd");
+
+ this->visit_valuetype_fwd (node);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_home (AST_Home *node)
+ {
+ XMI_TRACE ("home");
+ if (!this->do_i_care (node)) return 0;
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ try
+ {
+ // **** supported interfaces
+ long len = node->n_supports ();
+ AST_Interface **sppts = node->supports ();
+
+ for (long i = 0; i < len; ++i)
+ sppts[i]->ast_accept (this);
+
+ if (node->base_home ())
+ node->base_home ()->ast_accept (this);
+
+ if (node->managed_component ())
+ {
+ node->managed_component ()->ast_accept (this);
+ }
+
+ if (node->primary_key ())
+ node->primary_key ()->ast_accept (this);
+
+ for (size_t i = 0; i < node->factories ().size (); ++i)
+ {
+ AST_Operation **op = 0;
+ node->factories ().get (op, i);
+ (*op)->ast_accept (this);
+ }
+
+ for (size_t i = 0; i < node->finders ().size (); ++i)
+ {
+ AST_Operation **op = 0;
+ node->finders ().get (op, i);
+ (*op)->ast_accept (this);
+ }
+
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_factory (AST_Factory *node)
+ {
+ XMI_TRACE ("factory");
+
+ throw Error ("Factories not supported", node);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_structure (AST_Structure *node)
+ {
+ XMI_TRACE ("structure");
+
+ try
+ {
+ this->visit_struct_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ ir_simulator_visitor::visit_struct_impl (AST_Structure *node)
+ {
+ if (!this->do_i_care (node)) return;
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ try
+ {
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+ }
+
+ int
+ ir_simulator_visitor::visit_structure_fwd (AST_StructureFwd *node)
+ {
+ XMI_TRACE ("structure_fwd");
+
+ try
+ {
+ node->set_imported (false);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_exception (AST_Exception *node)
+ {
+ XMI_TRACE ("exception");
+
+
+ try
+ {
+ this->visit_struct_impl (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_expression (AST_Expression *)
+ {
+ XMI_TRACE ("expression");
+
+ /* Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+ */
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_enum (AST_Enum *node)
+ {
+ XMI_TRACE ("enum");
+ if (!this->do_i_care (node)) return 0;
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ try
+ {
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_operation (AST_Operation *node)
+ {
+ XMI_TRACE ("operation");
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ try
+ {
+ // ACE_DEBUG ((LM_DEBUG, "foo"));
+
+ if (node->return_type ())
+ {
+ // ACE_DEBUG ((LM_DEBUG, "bar"));
+ node->return_type ()->ast_accept (this);
+ }
+ // **** arguments
+ // **** exceptions
+ UTL_ExceptList *exceptions = node->exceptions ();
+ if (exceptions != 0 && exceptions->length () > 0)
+ {
+ for (UTL_ExceptlistActiveIterator ei (exceptions);
+ !ei.is_done ();
+ ei.next ())
+ {
+ ei.item ()->ast_accept (this);
+ }
+ }
+
+ this->visit_scope (node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_field (AST_Field *node)
+ {
+ XMI_TRACE ("field");
+
+ if (node == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, "null field?\n"));
+ return 0;
+ }
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ try
+ {
+ if (node->field_type ())
+ node->field_type ()->ast_accept (this);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_argument (AST_Argument *node)
+ {
+ XMI_TRACE ("argument");
+
+ this->visit_field (node);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_attribute (AST_Attribute *node)
+ {
+ XMI_TRACE ("attribute");
+
+ this->visit_field (node);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_union (AST_Union *node)
+ {
+ XMI_TRACE ("union");
+ if (!this->do_i_care (node)) return 0;
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ if (node->disc_type ())
+ this->visit_type (node->disc_type ());
+
+ this->visit_scope (node);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_union_fwd (AST_UnionFwd *node)
+ {
+ XMI_TRACE ("union_fwd");
+ node->set_imported (false);
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_union_branch (AST_UnionBranch *node)
+ {
+ XMI_TRACE ("union_branch");
+ this->visit_field (node);
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_union_label (AST_UnionLabel *node)
+ {
+ XMI_TRACE ("union_label");
+
+ if (node->label_val ())
+ node->label_val ()->ast_accept (this);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_constant (AST_Constant *)
+ {
+ XMI_TRACE ("constant");
+
+ // CDMW XMI generator does not generate XMI for constants.
+ // it, in
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_enum_val (AST_EnumVal *node)
+ {
+ try
+ {
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_array (AST_Array *node)
+ {
+ XMI_TRACE ("array val");
+ if (!this->do_i_care (node)) return 0;
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ node->base_type ()->ast_accept (this);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_sequence (AST_Sequence *node)
+ {
+ XMI_TRACE ("sequence val");
+
+ try
+ {
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ node->base_type ()->ast_accept (this);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_string (AST_String *)
+ {
+ XMI_TRACE ("string");
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_typedef (AST_Typedef *node)
+ {
+ XMI_TRACE ("typedef");
+
+ Incr_Guard guard (this->associating_);
+
+ if (!this->associating_)
+ {
+ // not associating, imported, not my concern
+ if (node->imported ()) return 0;
+ // not imported, but not associating, need to set the guard
+ else guard.arm ();
+ }
+ // associating, import
+ else node->set_imported (false);
+
+ node->base_type ()->ast_accept (this);
+
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_root (AST_Root *node)
+ {
+ XMI_TRACE ("root");
+ try
+ {
+ this->visit_scope (node);
+ }
+ catch (const Error &ex)
+ {
+ if (ex.node_ != 0)
+ ACE_ERROR ((LM_ERROR, "%s:%d:error: %s\n",
+ ex.node_->file_name ().c_str (),
+ ex.node_->line (),
+ ex.diag_.c_str ()));
+ else
+ ACE_ERROR ((LM_ERROR, "::error:%s\n",
+ ex.diag_.c_str ()));
+
+ return -1;
+ }
+ return 0;
+ }
+
+ int
+ ir_simulator_visitor::visit_native (AST_Native *)
+ {
+ XMI_TRACE ("native");
+ return 0;
+ }
+
+ bool
+ ir_simulator_visitor::do_i_care (AST_Decl *node)
+ {
+ std::string name (node->repoID ());
+
+ if (this->seen_types_.insert (name).second)
+ return true;
+ return false;
+ }
+ }
+}
diff --git a/flat/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.h b/flat/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.h
new file mode 100644
index 00000000000..49b8f202449
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/IR_Simulator_visitor.h
@@ -0,0 +1,119 @@
+/**
+ * @file IR_Simulator_visitor.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id$
+ * Implements a visitor that generates XMI for the CARDAMOM
+ * code generation facility.
+ *
+ * This IDL->XMI mapping appears to be based on a IDL->UML->XMI
+ * mapping, and should be valid XMI version 1.1
+ */
+
+#ifndef CIAO_IR_SIMULATOR_VISITOR_H
+#define CIAO_IR_SIMULATOR_VISITOR_H
+
+#include "ace/Containers.h"
+#include "ace/Hash_Map_Manager.h"
+#include "ace/Null_Mutex.h"
+#include "ace/SString.h"
+
+#include "xercesc/util/XercesDefs.hpp"
+
+#include "ast_visitor.h"
+#include "ast_component.h"
+#include "utl_scoped_name.h"
+#include "Literals.h"
+#include "XML/XercesString.h"
+#include "CIAO_IDL3_TO_XMI_Export.h"
+
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class TAO_OutStream;
+class UTL_ExceptList;
+
+#include <set>
+#include <string>
+
+namespace CIAO
+{
+ namespace XMI
+ {
+
+ /**
+ * @class ir_simulator_visitor
+ * @brief Visitor that generates XMI for the CARDAMOM code
+ * generation facilities.
+ */
+ class CIAO_IDL3_TO_XMI_Export ir_simulator_visitor : public ast_visitor
+ {
+ public:
+ ir_simulator_visitor (void);
+ virtual ~ir_simulator_visitor (void);
+
+ virtual int visit_decl (AST_Decl *d);
+ virtual int visit_scope (UTL_Scope *node);
+ virtual int visit_type (AST_Type *node);
+ virtual int visit_predefined_type (AST_PredefinedType *node);
+ virtual int visit_module (AST_Module *node);
+ virtual int visit_interface (AST_Interface *node);
+ virtual int visit_interface_fwd (AST_InterfaceFwd *node);
+ virtual int visit_valuebox (AST_ValueBox *node);
+ virtual int visit_valuetype (AST_ValueType *node);
+ void visit_valuetype_impl (AST_ValueType *);
+ virtual int visit_valuetype_fwd (AST_ValueTypeFwd *node);
+ virtual int visit_component (AST_Component *node);
+ virtual int visit_component_fwd (AST_ComponentFwd *node);
+ virtual int visit_eventtype (AST_EventType *node);
+ virtual int visit_eventtype_fwd (AST_EventTypeFwd *node);
+ virtual int visit_home (AST_Home *node);
+ virtual int visit_factory (AST_Factory *node);
+ virtual int visit_structure (AST_Structure *node);
+ void visit_struct_impl (AST_Structure *node);
+ virtual int visit_structure_fwd (AST_StructureFwd *node);
+ virtual int visit_exception (AST_Exception *node);
+ virtual int visit_expression (AST_Expression *node);
+ virtual int visit_enum (AST_Enum *node);
+ virtual int visit_operation (AST_Operation *node);
+ virtual int visit_field (AST_Field *node);
+ virtual int visit_argument (AST_Argument *node);
+ virtual int visit_attribute (AST_Attribute *node);
+ virtual int visit_union (AST_Union *node);
+ virtual int visit_union_fwd (AST_UnionFwd *node);
+ virtual int visit_union_branch (AST_UnionBranch *node);
+ virtual int visit_union_label (AST_UnionLabel *node);
+ virtual int visit_constant (AST_Constant *node);
+ virtual int visit_enum_val (AST_EnumVal *node);
+ virtual int visit_array (AST_Array *node);
+ virtual int visit_sequence (AST_Sequence *node);
+ virtual int visit_string (AST_String *node);
+ virtual int visit_typedef (AST_Typedef *node);
+ virtual int visit_root (AST_Root *node);
+ virtual int visit_native (AST_Native *node);
+
+ struct Error
+ {
+ Error (const ACE_CString &diag, AST_Decl *node = 0)
+ : diag_ (diag),
+ node_ (node)
+ {}
+
+ void node (AST_Decl *node) { if (node_ == 0) node_ = node; }
+
+ const ACE_CString diag_;
+ AST_Decl *node_;
+ };
+
+ private:
+ typedef ACE_Unbounded_Queue<AST_Component::port_description> PORTS;
+ void component_ports (PORTS &ports);
+
+ bool do_i_care (AST_Decl *node);
+ size_t associating_;
+ std::set <std::string> seen_types_;
+ };
+ }
+}
+#endif
diff --git a/flat/CIAO/tools/IDL3_to_XMI/Literals.cpp b/flat/CIAO/tools/IDL3_to_XMI/Literals.cpp
new file mode 100644
index 00000000000..90596146b47
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/Literals.cpp
@@ -0,0 +1,154 @@
+// $Id$
+
+#include "Literals.h"
+
+namespace CIAO
+{
+ namespace XMI
+ {
+
+ const ACE_TCHAR* const LITERALS[MAX_LITERAL] =
+ {
+ ACE_TEXT("xmi.version"), // VERSION_TAG
+ ACE_TEXT("1.1"), // VERSION_VALUE
+ ACE_TEXT("xmlns:UML"), // NS_TAG
+ ACE_TEXT("org.omg/UML1.3"), // NS_VALUE
+ ACE_TEXT("XMI.header"), // HEADER_TAG
+ ACE_TEXT("XMI.documentation"), // DOC_TAG
+ ACE_TEXT("XMI.exporter"), // EXPORTER_TAG
+ ACE_TEXT("DOC Group IDL to XMI converter"), // EXPORTER_VALUE
+ ACE_TEXT("XMI.content"), // CONTENT_TAG
+ ACE_TEXT("UML:Model"), // MODEL_TAG
+ ACE_TEXT("xmi.id"), // XMI_ID
+ ACE_TEXT("UML:Namespace.ownedElement"), // OWNEDELEMENT_TAG
+ ACE_TEXT("UML:Package"), // PACKAGE_TAG
+ ACE_TEXT("UML:ModelElement"), // MODELELEMENT_TAG
+ ACE_TEXT("UML:ModelElement.taggedValue"), // ME_TV_TAG
+ ACE_TEXT("UML:ModelElement.constraint"), // ME_CONS_TAG
+ ACE_TEXT("UML:Constraint"), // CONSTRAINT
+ ACE_TEXT("UML:TaggedValue"), // TV_TAG
+ ACE_TEXT("UML:Stereotype"), // STEREOTYPE_TAG
+ ACE_TEXT("UML:Class"), // CLASS_TAG
+ ACE_TEXT("UML:Operation"), // OP_TAG
+ ACE_TEXT("UML:BehavioralFeature.parameter"), // BFP_TAG
+ ACE_TEXT("UML:Parameter"), // PARAM_TAG
+ ACE_TEXT("UML:BehavioralFeature.raisedException"), // BF_RE_TAG
+ ACE_TEXT("UML:Exception"), // EXCEPT_TAG
+ ACE_TEXT("UML:Attribute"), // ATTR_TAG
+ ACE_TEXT("UML:Association"), // ASSOC_TAG
+ ACE_TEXT("UML:Association.connection"), // ASSOC_CONN_TAG
+ ACE_TEXT("UML:AssociationEnd"), // ASSOC_END_TAG
+ ACE_TEXT("UML:AssociationEnd.qualifier"), // ASSOC_END_QUAL_TAG
+ ACE_TEXT("UML:Generalization"), // GEN_TAG
+ ACE_TEXT("UML:Generalization.subtype"), // GEN_SUB_TAG
+ ACE_TEXT("UML:Generalization.supertype"), // GEN_SUPER_TAG
+ ACE_TEXT("UML:GeneralizableElement"), // GEN_ELEMENT_TAG
+ ACE_TEXT("UML:GeneralizableElement.generalization"),// GEN_ELEMENT_GEN_TAG
+ ACE_TEXT("UML:Exception"), // EXCEPTION_TAG
+
+ // ******* Attributes
+ ACE_TEXT("tag"), // TAG
+ ACE_TEXT("value"), // VALUE
+ ACE_TEXT("name"), // NAME
+ ACE_TEXT("baseClass"), // BASEC
+ ACE_TEXT("visibility"), // VISIBIL
+ ACE_TEXT("stereotype"), //STEREO_ATTR
+ ACE_TEXT("namespace"), // NS
+ ACE_TEXT("owner"), // OWNER
+ ACE_TEXT("kind"), // KIND
+ ACE_TEXT("behavioralFeature"), // BFEATURE
+ ACE_TEXT("type"), // TYPE
+ ACE_TEXT("isAbstract"), // ABSTRACT
+ ACE_TEXT("multiplicity"), // MULT
+ ACE_TEXT("xmi.idref"), // IDREF
+ ACE_TEXT("ownerScope"), // OWNER_SCOPE
+ ACE_TEXT("changeable"), // CHANGEABLE
+
+ // ******* Attribute values
+ ACE_TEXT("Association"), // ASSOC
+ ACE_TEXT("Class"), // CLASS
+ ACE_TEXT("DataType"), // DATATYPE
+ ACE_TEXT("Package"), // PACKAGE
+ ACE_TEXT("null"), // NULL
+ ACE_TEXT("Attribute"), // ATTR
+ ACE_TEXT("public"), // PUBLIC
+ ACE_TEXT("private"), // _PRIVATE
+ ACE_TEXT("typeid"), // TYPEID
+ ACE_TEXT("raises"), // RAISES
+ ACE_TEXT("return"), // RETURN
+ ACE_TEXT("in"), // _IN
+ ACE_TEXT("inout"), // INOUT
+ ACE_TEXT("out"), // _OUT
+ ACE_TEXT("true"), // _TRUE
+ ACE_TEXT("false"), // _FALSE
+ ACE_TEXT("TRUE"), // CAPS_TRUE
+ ACE_TEXT("FALSE"), // CAPS_FALSE
+ ACE_TEXT("1..1"), // MULT_OTO
+ ACE_TEXT("0..1"), // MULT_ZTO
+ ACE_TEXT("IDLOrder"), // IDLORDER
+ ACE_TEXT("index"), // INDEX
+ ACE_TEXT("constraintUpperValue"), // CONST_UPPER
+ ACE_TEXT("*"), // UNBOUNDED_SEQ
+ ACE_TEXT("Case"), // CASE
+ ACE_TEXT("default"), // DEFAULT_UNION
+ ACE_TEXT("classifier"), // CLASSIFIER
+ ACE_TEXT("frozen"), // FROZEN
+ ACE_TEXT("initialValue"), // INIT_VAL
+ //******** Stereotypes
+ ACE_TEXT("CCMConsumes"), // ST_CONSUMES
+ ACE_TEXT("CORBAAnonymousSequence"), // ST_ANON_SEQ
+ ACE_TEXT("CORBAPrincipal"), // ST_PRINC
+ ACE_TEXT("CORBAUnion"), // ST_UNION
+ ACE_TEXT("CCMUses"), // ST_USES
+ ACE_TEXT("CORBASequence"), // ST_SEQ
+ ACE_TEXT("readonlyEnd"), // ST_ROE
+ ACE_TEXT("readonly"), // ST_RO
+ ACE_TEXT("CORBAObject"), // ST_OBJ
+ ACE_TEXT("CORBAstring"), // ST_STR
+ ACE_TEXT("CORBAlongdouble"), // ST_LD
+ ACE_TEXT("CORBAAnonymousArray"), // ST_ANON_ARR
+ ACE_TEXT("CORBAAlias"), // ST_ALIAS
+ ACE_TEXT("null"), // ST_NULL
+ ACE_TEXT("CORBAValue"), // ST_VALUE
+ ACE_TEXT("void"), // ST_VOID
+ ACE_TEXT("CORBAException"), // ST_EX
+ ACE_TEXT("CORBAoctet"), // ST_OCTET
+ ACE_TEXT("CCMManages"), // ST_MANAGES
+ ACE_TEXT("CORBAwstring"), // ST_WSTR
+ ACE_TEXT("CORBAfloat"), // ST_FLOAT
+ ACE_TEXT("CORBAEnum"), // ST_ENUM
+ ACE_TEXT("CORBAValueSupports"), // ST_VAL_SUP
+ ACE_TEXT("CORBAModule"), // ST_MODULE
+ ACE_TEXT("CCMHomeFinder"), // ST_HFINDER
+ ACE_TEXT("CORBAdouble"), // ST_DOUBLE
+ ACE_TEXT("CORBAlonglong"), // ST_LL
+ ACE_TEXT("CCMHomeFactory"), // ST_HFACT
+ ACE_TEXT("CORBAArray"), // ST_ARR
+ ACE_TEXT("CCMComponent"), // ST_COMP
+ ACE_TEXT("CORBAshort"), // ST_SHORT
+ ACE_TEXT("CORBATypedef"), // ST_TYPEDEF
+ ACE_TEXT("CORBAunsignedlonglong"), // ST_ULL
+ ACE_TEXT("CORBAlong"), // ST_LONG
+ ACE_TEXT("CORBATypeCode"), // ST_TC
+ ACE_TEXT("CCMHome"), // ST_HOME
+ ACE_TEXT("CORBAStruct"), // ST_STRUCT
+ ACE_TEXT("CORBAFixed"), // ST_FIXED
+ ACE_TEXT("CORBAunsignedshort"), // ST_US
+ ACE_TEXT("CCMEmits"), // ST_EMITS
+ ACE_TEXT("CORBABoxedValue"), // ST_BOXVALUE
+ ACE_TEXT("CORBAboolean"), // ST_BOOL
+ ACE_TEXT("CORBAConstant"), // ST_CONST
+ ACE_TEXT("CCMPublishes"), // ST_PUBLISH
+ ACE_TEXT("CORBAConstants"), // ST_CONSTANTS
+ ACE_TEXT("CCMProvides"), // ST_PROVIDES
+ ACE_TEXT("CORBAwchar"), // ST_WCHAR
+ ACE_TEXT("CORBAunsignedlong"), // ST_UL
+ ACE_TEXT("CORBAValueFactory"), // ST_VAL_FACT
+ ACE_TEXT("CCMEvent"), // ST_EVENT
+ ACE_TEXT("CORBAchar"), // ST_CHAR
+ ACE_TEXT("CORBAInterface"), // ST_INTF
+ ACE_TEXT("CCMPrimaryKey"), // ST_PRI_KEY
+ ACE_TEXT("CORBAany") // ST_ANY
+ };
+ }
+}
diff --git a/flat/CIAO/tools/IDL3_to_XMI/Literals.h b/flat/CIAO/tools/IDL3_to_XMI/Literals.h
new file mode 100644
index 00000000000..04cabafa759
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/Literals.h
@@ -0,0 +1,168 @@
+/**
+ * @file Literals.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id$
+ *
+ */
+
+#ifndef XMI_LITERALS_H
+#define XMI_LITERALS_H
+
+#include "ace/config-lite.h"
+
+namespace CIAO
+{
+ namespace XMI
+ {
+ enum LITERAL_T
+ {
+ VERSION_TAG,
+ VERSION_VALUE,
+ NS_TAG,
+ NS_VALUE,
+ HEADER_TAG,
+ DOC_TAG,
+ EXPORTER_TAG,
+ EXPORTER_VALUE,
+ CONTENT_TAG,
+ MODEL_TAG,
+ XMI_ID,
+ OWNEDELEMENT_TAG,
+ PACKAGE_TAG,
+ MODELELEMENT_TAG,
+ ME_TV_TAG,
+ ME_CONS_TAG,
+ CONSTRAINT,
+ TV_TAG,
+ STEREOTYPE_TAG,
+ CLASS_TAG,
+ OP_TAG,
+ BFP_TAG,
+ PARAM_TAG,
+ BF_RE_TAG,
+ EXCEPT_TAG,
+ ATTR_TAG,
+ ASSOC_TAG,
+ ASSOC_CONN_TAG,
+ ASSOC_END_TAG,
+ ASSOC_END_QUAL_TAG,
+ GEN_TAG,
+ GEN_SUB_TAG,
+ GEN_SUPER_TAG,
+ GEN_ELEMENT_TAG,
+ GEN_ELEMENT_GEN_TAG,
+ EXCEPTION_TAG,
+
+ // Attributes
+ TAG,
+ VALUE,
+ NAME,
+ BASEC,
+ VISIBIL,
+ STEREO_ATTR,
+ NS,
+ OWNER,
+ KIND,
+ BFEATURE,
+ TYPE,
+ ABSTRACT,
+ MULT,
+ IDREF,
+ OWNER_SCOPE,
+ CHANGEABLE,
+
+ // attribute values
+ ASSOC,
+ CLASS,
+ DATATYPE,
+ PACKAGE,
+ _NULL,
+ ATTR,
+ PUBLIC,
+ _PRIVATE,
+ TYPEID,
+ RAISES,
+ RETURN,
+ _IN,
+ INOUT,
+ _OUT,
+ _TRUE,
+ _FALSE,
+ CAPS_TRUE,
+ CAPS_FALSE,
+ MULT_OTO,
+ MULT_ZTO,
+ IDLORDER,
+ INDEX,
+ CONST_UPPER,
+ UNBOUNDED_SEQ,
+ CASE,
+ DEFAULT_UNION,
+ CLASSIFIER,
+ FROZEN,
+ INIT_VAL,
+ // Stereotypes
+ ST_CONSUMES,
+ ST_ANON_SEQ,
+ ST_PRINC,
+ ST_UNION,
+ ST_USES,
+ ST_SEQ,
+ ST_ROE,
+ ST_RO,
+ ST_OBJ,
+ ST_STR,
+ ST_LD,
+ ST_ANON_ARR,
+ ST_ALIAS,
+ ST_NULL,
+ ST_VALUE,
+ ST_VOID,
+ ST_EX,
+ ST_OCTET,
+ ST_MANAGES,
+ ST_WSTR,
+ ST_FLOAT,
+ ST_ENUM,
+ ST_VAL_SUP,
+ ST_MODULE,
+ ST_HFINDER,
+ ST_DOUBLE,
+ ST_LL,
+ ST_HFACT,
+ ST_ARR,
+ ST_COMP,
+ ST_SHORT,
+ ST_TYPEDEF,
+ ST_ULL,
+ ST_LONG,
+ ST_TC,
+ ST_HOME,
+ ST_STRUCT,
+ ST_FIXED,
+ ST_US,
+ ST_EMITS,
+ ST_BOXVALUE,
+ ST_BOOL,
+ ST_CONST,
+ ST_PUBLISH,
+ ST_CONSTANTS,
+ ST_PROVIDES,
+ ST_WCHAR,
+ ST_UL,
+ ST_VAL_FACT,
+ ST_EVENT,
+ ST_CHAR,
+ ST_INTF,
+ ST_PRI_KEY,
+ ST_ANY,
+
+ MAX_LITERAL
+ };
+
+ extern const ACE_TCHAR* const LITERALS[MAX_LITERAL];
+ }
+}
+
+#endif /* XMI_LITERALS_H */
diff --git a/flat/CIAO/tools/IDL3_to_XMI/be_extern.h b/flat/CIAO/tools/IDL3_to_XMI/be_extern.h
new file mode 100644
index 00000000000..532b5ebe64e
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/be_extern.h
@@ -0,0 +1,86 @@
+// This may look like C, but it's really -*- C++ -*-
+// $Id$
+/*
+
+COPYRIGHT
+
+Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
+States of America. All Rights Reserved.
+
+This product is protected by copyright and distributed under the following
+license restricting its use.
+
+The Interface Definition Language Compiler Front End (CFE) is made
+available for your use provided that you include this license and copyright
+notice on all media and documentation and the software program in which
+this product is incorporated in whole or part. You may copy and extend
+functionality (but may not remove functionality) of the Interface
+Definition Language CFE without charge, but you are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by you or with the express written consent of Sun
+Microsystems, Inc. ("Sun").
+
+The names of Sun Microsystems, Inc. and any of its subsidiaries or
+affiliates may not be used in advertising or publicity pertaining to
+distribution of Interface Definition Language CFE as permitted herein.
+
+This license is effective until terminated by Sun for failure to comply
+with this license. Upon termination, you shall destroy or return all code
+and documentation for the Interface Definition Language CFE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+DEALING, USAGE OR TRADE PRACTICE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Use, duplication, or disclosure by the government is subject to
+restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
+52.227-19.
+
+Sun, Sun Microsystems and the Sun logo are trademarks or registered
+trademarks of Sun Microsystems, Inc.
+
+SunSoft, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
+
+NOTE:
+
+SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+trademarks or registered trademarks of Sun Microsystems, Inc.
+
+*/
+
+#ifndef TAO_IFR_BE_EXTERN_H
+#define TAO_IFR_BE_EXTERN_H
+
+#include "CIAO_IDL3_TO_XMI_Export.h"
+#include "be_global.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+extern CIAO_IDL3_TO_XMI_Export BE_GlobalData *be_global;
+
+extern CIAO_IDL3_TO_XMI_Export int BE_init (int &, ACE_TCHAR*[]);
+extern CIAO_IDL3_TO_XMI_Export void BE_post_init (char *[], long);
+extern CIAO_IDL3_TO_XMI_Export void BE_version (void);
+extern CIAO_IDL3_TO_XMI_Export void BE_produce (void);
+extern CIAO_IDL3_TO_XMI_Export void BE_cleanup (void);
+extern CIAO_IDL3_TO_XMI_Export void BE_abort (void);
+
+#endif /* TAO_IFR_BE_EXTERN_H */
diff --git a/flat/CIAO/tools/IDL3_to_XMI/be_global.cpp b/flat/CIAO/tools/IDL3_to_XMI/be_global.cpp
new file mode 100644
index 00000000000..6a640166e84
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/be_global.cpp
@@ -0,0 +1,226 @@
+// $Id$
+
+// ============================================================================
+//
+//
+// = LIBRARY
+// TAO_IDL3_TO_IDL2L_BE_DLL
+//
+// = FILENAME
+// be_global.cpp
+//
+// = DESCRIPTION
+// Stores global data specific to the compiler back end.
+//
+// = AUTHOR
+// Jeff Parsons <j.parsons@vanderbilt.edu>
+//
+// ============================================================================
+
+#include "be_global.h"
+#include "ast_generator.h"
+#include "global_extern.h"
+#include "idl_defines.h"
+#include "ace/OS_NS_stdio.h"
+
+CIAO_IDL3_TO_XMI_Export BE_GlobalData *be_global = 0;
+
+BE_GlobalData::BE_GlobalData (void)
+ : ir_filter_ (false),
+ filename_ (0),
+ output_dir_ (0),
+ dtd_ ("XMI.dtd"),
+ local_only_(true)
+{
+}
+
+BE_GlobalData::~BE_GlobalData (void)
+{
+}
+
+bool
+BE_GlobalData::ir_filter (void) const
+{
+ return this->ir_filter_;
+}
+
+void
+BE_GlobalData::ir_filter (bool flag)
+{
+ this->ir_filter_ = flag;
+}
+
+const char *
+BE_GlobalData::filename (void) const
+{
+ return this->filename_;
+}
+
+void
+BE_GlobalData::filename (char *fname)
+{
+ this->filename_ = fname;
+}
+
+const char*
+BE_GlobalData::output_dir (void) const
+{
+ return this->output_dir_;
+}
+
+void
+BE_GlobalData::output_dir (const char* s)
+{
+ delete [] this->output_dir_;
+ this->output_dir_ = ACE::strnew (s);
+}
+
+const char*
+BE_GlobalData::dtd (void) const
+{
+ return this->dtd_.c_str ();
+}
+
+void
+BE_GlobalData::dtd (const char* s)
+{
+ this->dtd_ = s;
+}
+
+bool
+BE_GlobalData::local_only (void) const
+{
+ return this->local_only_;
+}
+
+void
+BE_GlobalData::local_only (bool flag)
+{
+ this->local_only_ = flag;
+}
+
+void
+BE_GlobalData::parse_args (long &i, char **av)
+{
+ switch (av[i][1])
+ {
+ // Directory where the generated file is to
+ // be kept. Default is the current directory from which
+ // <tao_idl3_to_idl2> is called.
+ case 'f':
+ be_global->ir_filter (true);
+ break;
+
+ case 'o':
+ switch (av[i][2])
+ {
+ case 'd':
+ if (av[i][3] == '\0')
+ {
+ be_global->output_dir (av [i + 1]);
+ i++;
+ }
+ else
+ {
+ be_global->output_dir (av[i] + 3);
+ }
+ break;
+
+ case 'f':
+ if (av[i][3] == '\0')
+ {
+ be_global->filename (av [i + 1]);
+ i++;
+ }
+ else
+ {
+ be_global->filename (av[i] + 3);
+ }
+ break;
+ default:
+ idl_global->set_compile_flags (idl_global->compile_flags ()
+ | IDL_CF_ONLY_USAGE);
+ }
+ break;
+
+ case 'x':
+ if (av[i][3] == '\0')
+ {
+ be_global->dtd (av [i + 1]);
+ ++i;
+ }
+ else
+ {
+ be_global->dtd (av[i] + 3);
+ }
+ break;
+
+ case 'n':
+ be_global->local_only (false);
+ break;
+
+ default:
+ ACE_ERROR ((
+ LM_ERROR,
+ ACE_TEXT ("IDL: I don't understand the '%s' option\n"),
+ av[i]));
+
+ idl_global->set_compile_flags (idl_global->compile_flags ()
+ | IDL_CF_ONLY_USAGE);
+ break;
+ }
+}
+
+// Prepare an argument for a BE
+void
+BE_GlobalData::prep_be_arg (char *)
+{
+}
+
+void
+BE_GlobalData::arg_post_proc (void)
+{
+}
+
+void
+BE_GlobalData::usage (void) const
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("-f \t\t Simulates IFR type filtering on included types.\n")
+ ));
+ ACE_DEBUG ((
+ LM_DEBUG,
+ ACE_TEXT (" -od <dir>\t\tOutput directory for the generated file.")
+ ACE_TEXT (" Default is current directory\n")
+ ));
+ ACE_DEBUG ((
+ LM_DEBUG,
+ ACE_TEXT (" -of <dir>\t\tOutput file for the generated XMI.")
+ ACE_TEXT (" Default for example.idl is example.xmi\n")
+ ));
+ ACE_DEBUG ((
+ LM_DEBUG,
+ ACE_TEXT (" -xd <dtd_file>\t\tFull path to XMI dtd file to include in generated file..")
+ ACE_TEXT (" Default is XMI.dtd.\n")
+ ));
+ ACE_DEBUG ((
+ LM_DEBUG,
+ ACE_TEXT (" -n \t\t\t. Exports XMI for non-local entities.\n")
+ ));
+}
+
+AST_Generator *
+BE_GlobalData::generator_init (void)
+{
+ AST_Generator *gen = 0;
+ ACE_NEW_RETURN (gen,
+ AST_Generator,
+ 0);
+ return gen;
+}
+
+
+void
+BE_GlobalData::destroy (void)
+{
+}
diff --git a/flat/CIAO/tools/IDL3_to_XMI/be_global.h b/flat/CIAO/tools/IDL3_to_XMI/be_global.h
new file mode 100644
index 00000000000..2092587d94a
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/be_global.h
@@ -0,0 +1,103 @@
+/* -*- c++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO_IFR_BE_DLL
+//
+// = FILENAME
+// be_global.h
+//
+// = DESCRIPTION
+// Header file for class containing compiler back end global data.
+//
+// = AUTHOR
+// Jeff Parsons <parsons@cs.wustl.edu>
+//
+// ============================================================================
+
+#ifndef TAO_IFR_BE_GLOBAL_H
+#define TAO_IFR_BE_GLOBAL_H
+
+#include "CIAO_IDL3_TO_XMI_Export.h"
+#include "idl_defines.h"
+
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class AST_Generator;
+
+// Defines a class containing all back end global data.
+
+class CIAO_IDL3_TO_XMI_Export BE_GlobalData
+{
+public:
+ // = TITLE
+ // BE_GlobalData
+ //
+ // = DESCRIPTION
+ // Storage of global data specific to the compiler back end
+ //
+ BE_GlobalData (void);
+ // Constructor.
+
+ virtual ~BE_GlobalData (void);
+ // Destructor.
+
+ // Data accessors.
+ bool ir_filter (void) const;
+ void ir_filter (bool flag);
+
+ const char *filename (void) const;
+ void filename (char *fname);
+
+ const char* output_dir (void) const;
+ void output_dir (const char* s);
+
+ const char * dtd (void) const;
+ void dtd (const char *s);
+
+ bool local_only (void) const;
+ void local_only (bool);
+
+ void parse_args (long &i, char **av);
+ // Parse args that affect the backend.
+
+ void prep_be_arg (char *s);
+ // Special BE arg call factored out of DRV_args.
+
+ void arg_post_proc (void);
+ // Checks made after parsing args.
+
+ void usage (void) const;
+ // Usage message for backend options.
+
+ AST_Generator *generator_init (void);
+ // Create an AST node generator.
+
+ void destroy (void);
+ // Cleanup.
+
+private:
+ bool ir_filter_;
+
+ char *filename_;
+ // Name of the IDL file we are processing.
+
+ char *output_dir_;
+ // Directory where the generated file is to be
+ // kept. Default value is 0 for this string which means the current
+ // directory from which the <tao_picml> is called.
+
+ /// full path to dtd to be used.
+ ACE_CString dtd_;
+
+ /// generate xmi for local entities only
+ bool local_only_;
+};
+
+#endif /* TAO_IFR_BE_GLOBAL_H */
diff --git a/flat/CIAO/tools/IDL3_to_XMI/be_helper.cpp b/flat/CIAO/tools/IDL3_to_XMI/be_helper.cpp
new file mode 100644
index 00000000000..bc344868064
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/be_helper.cpp
@@ -0,0 +1,438 @@
+// $Id$
+
+// ============================================================================
+//
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// be_helper.cpp
+//
+// = DESCRIPTION
+// Provides helper classes to print generated code to the output
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// Improvements by Carlos O'Ryan
+//
+// ============================================================================
+
+#include "be_helper.h"
+#include "idl_defines.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_string.h"
+#include "ace/os_include/os_ctype.h"
+
+ACE_RCSID (be,
+ be_helper,
+ "$Id$")
+
+static const char copyright[] =
+" <-- \n"
+" -*- XML -*-\n"
+"\n"
+" $I" "d$\n\n"
+" **** Code generated by the The ACE ORB (TAO) IDL Compiler ****\n"
+" TAO and the TAO IDL Compiler have been developed by:\n"
+" Center for Distributed Object Computing\n"
+" Washington University\n"
+" St. Louis, MO\n"
+" USA\n"
+" http:www.cs.wustl.edu/~schmidt/doc-center.html\n"
+" and\n"
+" Distributed Object Computing Laboratory\n"
+" University of California at Irvine\n"
+" Irvine, CA\n"
+" USA\n"
+" http:doc.ece.uci.edu/\n"
+" and\n"
+" Institute for Software Integrated Systems\n"
+" Vanderbilt University\n"
+" Nashville, TN\n"
+" USA\n"
+" http:www.isis.vanderbilt.edu/\n"
+"\n"
+" Information about TAO is available at:\n"
+" http:www.cs.wustl.edu/~schmidt/TAO.html\n"
+"-->";
+
+TAO_NL::TAO_NL (void)
+{
+}
+
+TAO_INDENT::TAO_INDENT (int do_now)
+ : do_now_ (do_now)
+{
+}
+
+TAO_UNINDENT::TAO_UNINDENT (int do_now)
+ : do_now_ (do_now)
+{
+}
+
+const TAO_NL be_nl;
+const TAO_INDENT be_idt;
+const TAO_INDENT be_idt_nl (1);
+const TAO_UNINDENT be_uidt;
+const TAO_UNINDENT be_uidt_nl (1);
+
+// Methods of the TAO_OutStream class.
+
+TAO_OutStream::TAO_OutStream (void)
+ : fp_ (0),
+ indent_level_ (0)
+{
+}
+
+TAO_OutStream::~TAO_OutStream (void)
+{
+ // Close the underlying I/O handle only if it exists.
+ if (this->fp_ != 0)
+ {
+ ACE_OS::fclose (this->fp_);
+ this->fp_ = 0;
+ }
+
+ indent_level_ = 0;
+}
+
+int
+TAO_OutStream::open (const char *fname)
+{
+ if (fname != 0)
+ {
+ // File name exists, open an I/O file handle.
+ this->fp_ = ACE_OS::fopen (fname, "w");
+
+ if (this->fp_ != 0)
+ {
+ // Put the copyright notice.
+ ACE_OS::fprintf (this->fp_,
+ "%s\n",
+ copyright);
+
+ ACE_OS::fflush (this->fp_);
+
+ return 0;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ else
+ {
+ return -1;
+ }
+}
+
+// Return the underlying lowlevel file pointer.
+// indentation.
+FILE *
+TAO_OutStream::file (void)
+{
+ return this->fp_;
+}
+
+int
+TAO_OutStream::incr_indent (unsigned short flag)
+{
+ indent_level_++;
+
+ if (flag != 0)
+ {
+ return this->indent ();
+ }
+ else
+ {
+ // Do not indent output.
+ return 0;
+ }
+}
+
+// Indentation
+int
+TAO_OutStream::decr_indent (unsigned short flag)
+{
+ this->indent_level_--;
+ // Just in case somebody gets "unindent happy".
+ if (this->indent_level_ < 0)
+ {
+ // ACE_DEBUG ((LM_DEBUG, "negative indentation?\n"));
+ this->indent_level_ = 0;
+ }
+ if (flag != 0)
+ {
+ return this->indent ();
+ }
+ else
+ {
+ // Do not indent output.
+ return 0;
+ }
+}
+
+int
+TAO_OutStream::reset (void)
+{
+ this->indent_level_ = 0;
+ return 0;
+}
+
+// Indented print.
+int
+TAO_OutStream::indent (void)
+{
+ // Based on the current indentation level, leave appropriate number of blank
+ // spaces in the output.
+ if (this->indent_level_ > 0)
+ {
+ for (int i = 0; i < this->indent_level_; i++)
+ {
+ ACE_OS::fprintf (this->fp_, " ");
+ ACE_OS::fflush (this->fp_);
+ }
+ }
+
+ return 0;
+}
+
+int
+TAO_OutStream::nl (void)
+{
+ ACE_OS::fprintf (this->fp_, "\n");
+ this->indent ();
+ return 0;
+}
+
+// Printf style variable argument print.
+int
+TAO_OutStream::print (const char *format, ...)
+{
+ int result = 0;
+ va_list ap;
+ va_start (ap, format);
+ ACE_OSCALL (::vfprintf (this->fp_,
+ format,
+ ap),
+ int,
+ -1,
+ result);
+
+ ACE_OS::fflush (this->fp_);
+ va_end (ap);
+
+ return result;
+}
+
+void
+TAO_OutStream::gen_ifndef_string (const char *fname,
+ const char *prefix,
+ const char *suffix)
+{
+ static char macro_name [NAMEBUFSIZE];
+
+ ACE_OS::memset (macro_name,
+ '\0',
+ NAMEBUFSIZE);
+
+ const char *extension = ACE_OS::strrchr (fname, '.');
+
+ if (extension == 0)
+ {
+ // File seems to have no extension, so let us take the name
+ // as it is.
+ extension = fname;
+ }
+
+ ACE_OS::sprintf (macro_name, prefix);
+
+ size_t offset = ACE_OS::strlen (prefix);
+
+ // Convert letters in fname to upper case.
+ for (int i = 0; i < (extension - fname); i++)
+ {
+ if (isalpha (fname [i]))
+ {
+ macro_name[i + offset] = (char) toupper (fname [i]);
+ }
+ else if (isdigit (fname [i]))
+ {
+ macro_name[i + offset] = fname[i];
+ }
+ else
+ {
+ macro_name[i + offset] = '_';
+ }
+ }
+
+ ACE_OS::strcat (macro_name, suffix);
+
+ // Generate the #ifndef ... #define statements.
+ this->print ("#ifndef %s\n",
+ macro_name);
+ this->print ("#define %s",
+ macro_name);
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const char *str)
+{
+ ACE_OS::fprintf (this->fp_, "%s", str);
+ ACE_OS::fflush (this->fp_);
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::UShort num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%hu",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::Short num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%hd",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::ULong num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%lu",
+ (unsigned long) num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::Long num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%ld",
+ (long) num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+#if defined (ACE_WIN64)
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::ULongLong num)
+{
+ ACE_OS::fprintf (this->fp_,
+ ACE_UINT64_FORMAT_SPECIFIER,
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const ACE_CDR::LongLong num)
+{
+ ACE_OS::fprintf (this->fp_,
+ ACE_INT64_FORMAT_SPECIFIER,
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+#endif /* ACE_WIN64 */
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const unsigned long num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%lu",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const long num)
+{
+ ACE_OS::fprintf (this->fp_,
+ "%ld",
+ num);
+
+ ACE_OS::fflush (this->fp_);
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const TAO_NL&)
+{
+ ACE_OS::fprintf (this->fp_ ,
+ "\n");
+ this->indent ();
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const TAO_INDENT& i)
+{
+ this->incr_indent (0);
+
+ if (i.do_now_)
+ {
+ this->nl ();
+ }
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (const TAO_UNINDENT& i)
+{
+ this->decr_indent (0);
+
+ if (i.do_now_)
+ {
+ this->nl ();
+ }
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (Identifier *id)
+{
+ return this->print (id);
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (UTL_IdList *id)
+{
+ return this->print (id);
+}
+
+TAO_OutStream &
+TAO_OutStream::operator<< (AST_Expression *expr)
+{
+ return this->print (expr);
+}
diff --git a/flat/CIAO/tools/IDL3_to_XMI/be_helper.h b/flat/CIAO/tools/IDL3_to_XMI/be_helper.h
new file mode 100644
index 00000000000..d8bbb3b1766
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/be_helper.h
@@ -0,0 +1,176 @@
+/* -*- c++ -*- */
+// $Id$
+
+/**
+ * @file be_helper.h
+ * @author Aniruddha Gokhale
+ * @author Carlos O'Ryan
+ *
+ * Defines the abstract class for outputting the C++ mapping. This is a
+ * helper class to the singleton TAO_CodeGen class
+ */
+
+#ifndef TAO_BE_OUTSTRM_H
+#define TAO_BE_OUTSTRM_H
+
+#include "ace/CDR_Base.h"
+
+class Identifier;
+class UTL_IdList;
+class AST_Expression;
+
+// a dummy structure to inform TAO_OutStream's << operator to put a newline
+// and use the current indentation for the succeeding line
+struct TAO_NL
+{
+public:
+ TAO_NL (void);
+};
+
+struct TAO_INDENT
+{
+ // = TITLE
+ // Operates like a manipulator, increasing the indentation level.
+ //
+ // = DESCRIPTION
+ // Increase the indentation level, if the "do_now" parameter is
+ // not zero then the <indent> method is called on the stream.
+ //
+ TAO_INDENT (int do_now = 0);
+
+ const int do_now_;
+};
+
+struct TAO_UNINDENT
+{
+ // = TITLE
+ // Operates like a manipulator, decreasing the indentation level.
+ //
+ // = DESCRIPTION
+ // Decrease the indentation level, if the "do_now" parameter is
+ // not zero then the <indent> method is called on the stream.
+ //
+ TAO_UNINDENT (int do_now = 0);
+
+ const int do_now_;
+};
+
+extern const TAO_NL be_nl;
+extern const TAO_INDENT be_idt;
+extern const TAO_INDENT be_idt_nl;
+extern const TAO_UNINDENT be_uidt;
+extern const TAO_UNINDENT be_uidt_nl;
+
+class TAO_OutStream
+{
+ // =TITLE
+ // TAO_OutStream
+ //
+ // =DESCRIPTION
+ // Defines an interface by which the backend code generator can
+ // print its output to the underlying I/O handle. This is a
+ // helper class that will be used by the TAO_CodeGen
+ // class. However, this is an abstract class and classes that
+ // understand specific front ends must derive from this class.
+public:
+ TAO_OutStream (void);
+ // constructor.
+
+ virtual ~TAO_OutStream (void);
+ // destructor.
+
+ int open (const char *fname);
+ // open the underlying low-level handle for output.
+
+
+ FILE *file (void);
+ // Return the underlying lowlevel file pointer.
+
+ int incr_indent (unsigned short flag = 1);
+ // increment the indentation level and by default actually indent the output
+ // accordingly
+
+ int decr_indent (unsigned short flag = 1);
+ // decrease the indentation level and by default actually indent the output
+ // accordingly
+
+ int reset (void);
+ // reset indentation level to 0
+
+ int indent (void);
+ // indent starting next line
+
+ int nl (void);
+ // put a newline and indent on the next line
+
+ int print (const char *format, ...);
+ // "printf" style variable argument print
+
+ void gen_ifndef_string (const char *fname,
+ const char *prefix,
+ const char *suffix);
+
+ // =overloaded operators
+
+ TAO_OutStream &operator<< (const char *str);
+ // output the char string and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::UShort num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::Short num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::ULong num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::Long num);
+ // output the integer and return a reference to ourselves
+
+#if defined (ACE_WIN64)
+ TAO_OutStream &operator<< (const ACE_CDR::ULongLong num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const ACE_CDR::LongLong num);
+ // output the integer and return a reference to ourselves
+#endif /* ACE_WIN64 */
+
+ TAO_OutStream &operator<< (const unsigned long num);
+ // output the integer and return a reference to ourselves
+
+ TAO_OutStream &operator<< (const long num);
+ // output the integer and return a reference to ourselves
+
+ // = MANIPULATORS
+
+ TAO_OutStream &operator<< (const TAO_NL& nl);
+ TAO_OutStream &operator<< (const TAO_INDENT& i);
+ TAO_OutStream &operator<< (const TAO_UNINDENT& i);
+
+ // The following will be provided by specialized classes
+
+ TAO_OutStream &operator<< (Identifier *id);
+ // output an Identifier node
+
+ TAO_OutStream &operator<< (UTL_IdList *idl);
+ // output a scoped name
+
+ TAO_OutStream &operator<< (AST_Expression *expr);
+ // output an AST_Expression node
+
+ // provided by specialized classes
+ virtual TAO_OutStream &print (Identifier *id) = 0;
+
+ virtual TAO_OutStream &print (UTL_IdList *idl) = 0;
+
+ virtual TAO_OutStream &print (AST_Expression *idl) = 0;
+
+protected:
+ FILE *fp_;
+ // the underlying low-level I/O handle
+
+ int indent_level_;
+ // indentation level
+};
+
+#endif // if !defined
diff --git a/flat/CIAO/tools/IDL3_to_XMI/be_init.cpp b/flat/CIAO/tools/IDL3_to_XMI/be_init.cpp
new file mode 100644
index 00000000000..7863fcae9d8
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/be_init.cpp
@@ -0,0 +1,31 @@
+// $Id$
+
+#include "global_extern.h"
+#include "be_extern.h"
+#include "../../ciao/Version.h"
+
+CIAO_IDL3_TO_XMI_Export void
+BE_version (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "%s %s\n",
+ ACE_TEXT ("TAO_ID3_TO_IDL2_BE, version"),
+ ACE_TEXT (CIAO_VERSION)));
+}
+
+CIAO_IDL3_TO_XMI_Export int
+BE_init (int & /* argc */, ACE_TCHAR * /* argv */ [])
+{
+ // Initialize BE global data object.
+ ACE_NEW_RETURN (be_global,
+ BE_GlobalData,
+ -1);
+
+ idl_global->pass_orb_idl (true);
+ return 0;
+}
+
+CIAO_IDL3_TO_XMI_Export void
+BE_post_init (char * /* files */ [], long /* nfiles */)
+{
+}
diff --git a/flat/CIAO/tools/IDL3_to_XMI/be_produce.cpp b/flat/CIAO/tools/IDL3_to_XMI/be_produce.cpp
new file mode 100644
index 00000000000..7a66096bd32
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/be_produce.cpp
@@ -0,0 +1,139 @@
+// $Id$
+
+/*
+
+COPYRIGHT
+
+Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
+States of America. All Rights Reserved.
+
+This product is protected by copyright and distributed under the following
+license restricting its use.
+
+The Interface Definition Language Compiler Front End (CFE) is made
+available for your use provided that you include this license and copyright
+notice on all media and documentation and the software program in which
+this product is incorporated in whole or part. You may copy and extend
+functionality (but may not remove functionality) of the Interface
+Definition Language CFE without charge, but you are not authorized to
+license or distribute it to anyone else except as part of a product or
+program developed by you or with the express written consent of Sun
+Microsystems, Inc. ("Sun").
+
+The names of Sun Microsystems, Inc. and any of its subsidiaries or
+affiliates may not be used in advertising or publicity pertaining to
+distribution of Interface Definition Language CFE as permitted herein.
+
+This license is effective until terminated by Sun for failure to comply
+with this license. Upon termination, you shall destroy or return all code
+and documentation for the Interface Definition Language CFE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
+DEALING, USAGE OR TRADE PRACTICE.
+
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
+
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+Use, duplication, or disclosure by the government is subject to
+restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
+Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
+52.227-19.
+
+Sun, Sun Microsystems and the Sun logo are trademarks or registered
+trademarks of Sun Microsystems, Inc.
+
+SunSoft, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
+
+NOTE:
+
+SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
+trademarks or registered trademarks of Sun Microsystems, Inc.
+
+ */
+
+#include "CIAO_IDL3_TO_XMI_Export.h"
+#include "global_extern.h"
+#include "be_extern.h"
+#include "fe_extern.h"
+#include "ast_root.h"
+#include "IDL3_to_XMI_visitor.h"
+#include "IR_Simulator_visitor.h"
+#include <xercesc/util/PlatformUtils.hpp>
+
+// Clean up before exit, whether successful or not.
+CIAO_IDL3_TO_XMI_Export void
+BE_cleanup (void)
+{
+ idl_global->destroy ();
+}
+
+// Abort this run of the BE.
+CIAO_IDL3_TO_XMI_Export void
+BE_abort (void)
+{
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Fatal Error - Aborting\n")));
+
+ // BE_cleanup will be called after the exception is caught.
+ BE_cleanup ();
+}
+
+// Do the work of this BE. This is the starting point for code generation.
+CIAO_IDL3_TO_XMI_Export void
+BE_produce (void)
+{
+ // Get the root node.
+ AST_Decl *d = idl_global->root ();
+ AST_Root *ast_root = AST_Root::narrow_from_decl (d);
+
+ if (ast_root == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%N:%l) BE_produce - ")
+ ACE_TEXT ("No Root\n")));
+ BE_abort ();
+ }
+
+ xercesc::XMLPlatformUtils::Initialize ();
+
+ if (be_global->ir_filter ())
+ {
+ CIAO::XMI::ir_simulator_visitor visitor;
+
+ if (visitor.visit_root (ast_root) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("error: an error occured in the ir_simulator visitor.")));
+ xercesc::XMLPlatformUtils::Terminate ();
+ BE_cleanup ();
+ return;
+ }
+ }
+
+ CIAO::XMI::idl3_to_xmi_visitor visitor (be_global->ir_filter ());
+
+ if (visitor.visit_root (ast_root) == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%N:%l) BE_produce -")
+ ACE_TEXT (" failed to accept visitor\n")));
+ }
+
+ xercesc::XMLPlatformUtils::Terminate ();
+
+ // Clean up.
+ BE_cleanup ();
+}
diff --git a/flat/CIAO/tools/IDL3_to_XMI/be_sunsoft.cpp b/flat/CIAO/tools/IDL3_to_XMI/be_sunsoft.cpp
new file mode 100644
index 00000000000..96a90f43fb3
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/be_sunsoft.cpp
@@ -0,0 +1,191 @@
+// $Id$
+
+#include "be_sunsoft.h"
+#include "ast_expression.h"
+#include "utl_identifier.h"
+#include "utl_idlist.h"
+#include "utl_string.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_string.h"
+#include "ace/os_include/os_ctype.h"
+
+ACE_RCSID (be,
+ be_sunsoft,
+ "$Id$")
+
+TAO_SunSoft_OutStream::TAO_SunSoft_OutStream (void)
+ : TAO_OutStream ()
+{
+}
+
+TAO_SunSoft_OutStream::~TAO_SunSoft_OutStream (void)
+{
+}
+
+TAO_OutStream &
+TAO_SunSoft_OutStream::print (Identifier *id)
+{
+ ACE_OS::fprintf (this->fp_,
+ id->get_string ());
+
+ return *this;
+}
+
+TAO_OutStream &
+TAO_SunSoft_OutStream::print (UTL_IdList *idl)
+{
+ long first = true;
+ long second = false;
+ Identifier *id = 0;
+
+ for (UTL_IdListActiveIterator i (idl); !i.is_done (); i.next ())
+ {
+ if (!first)
+ {
+ *this << "::";
+ }
+ else if (second)
+ {
+ first = second = false;
+ }
+
+ // Print the identifier.
+ id = i.item ();
+ *this << id;
+
+ if (first)
+ {
+ if (ACE_OS::strcmp (id->get_string (), "") != 0)
+ {
+ // Does not start with a "".
+ first = false;
+ }
+ else
+ {
+ second = true;
+ }
+ }
+ }
+
+ return *this;
+}
+
+TAO_OutStream&
+TAO_SunSoft_OutStream::print (AST_Expression *expr)
+{
+ AST_Expression::AST_ExprValue *ev = expr->ev ();
+
+ if (ev)
+ {
+ switch (ev->et)
+ {
+ case AST_Expression::EV_short:
+ this->TAO_OutStream::print ("%hd", ev->u.sval);
+ break;
+ case AST_Expression::EV_ushort:
+ this->TAO_OutStream::print ("%hu%c", ev->u.usval, 'U');
+ break;
+ case AST_Expression::EV_long:
+ this->TAO_OutStream::print ("%ld", ev->u.lval);
+ break;
+ case AST_Expression::EV_ulong:
+ this->TAO_OutStream::print ("%u%c", ev->u.ulval, 'U');
+ break;
+ case AST_Expression::EV_longlong:
+#if ! defined (ACE_LACKS_LONGLONG_T)
+ this->TAO_OutStream::print ("%ld", ev->u.llval);
+#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
+ break;
+ case AST_Expression::EV_ulonglong:
+#if ! defined (ACE_LACKS_LONGLONG_T)
+ this->TAO_OutStream::print ("ACE_UINT64_LITERAL (");
+ this->TAO_OutStream::print (ACE_TEXT_ALWAYS_CHAR (ACE_UINT64_FORMAT_SPECIFIER),
+ ev->u.ullval);
+ this->TAO_OutStream::print (")");
+#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
+ break;
+ case AST_Expression::EV_float:
+ this->TAO_OutStream::print ("%f%c", ev->u.fval, 'F');
+ break;
+ case AST_Expression::EV_double:
+ this->TAO_OutStream::print ("%24.16G", ev->u.dval);
+ break;
+ case AST_Expression::EV_longdouble:
+ break;
+ case AST_Expression::EV_char:
+ // isprint() sees \ and ' as printable characters
+ // so we have to test for them first.
+ if (ev->u.cval == '\\')
+ this->TAO_OutStream::print ("'\\\\'");
+ else if (ev->u.cval == '\'')
+ this->TAO_OutStream::print ("'\\''");
+
+ // This handles hex and octal escape sequences
+ // that would print out either as weird characters
+ // or as an unsigned number too large for a char.
+ else if ((unsigned char) ev->u.cval > ACE_CHAR_MAX)
+ this->TAO_OutStream::print ("%hd", ev->u.cval);
+ else if (isprint (ev->u.cval))
+ this->TAO_OutStream::print ("'%c'", ev->u.cval);
+ else if (iscntrl (ev->u.cval))
+ switch (ev->u.cval)
+ {
+ case '\n':
+ this->TAO_OutStream::print ("'\\n'");
+ break;
+ case '\t':
+ this->TAO_OutStream::print ("'\\t'");
+ break;
+ case '\r':
+ this->TAO_OutStream::print ("'\\r'");
+ break;
+ case '\v':
+ this->TAO_OutStream::print ("'\\v'");
+ break;
+ case '\f':
+ this->TAO_OutStream::print ("'\\f'");
+ break;
+ case '\b':
+ this->TAO_OutStream::print ("'\\b'");
+ break;
+ case '\a':
+ this->TAO_OutStream::print ("'\\a'");
+ break;
+ case '\?':
+ this->TAO_OutStream::print ("'?'");
+ break;
+ default:
+ this->TAO_OutStream::print ("'\\x%x'", ev->u.cval);
+ }
+ else
+ this->TAO_OutStream::print ("'\\x%x'", ev->u.cval);
+ break;
+ case AST_Expression::EV_wchar:
+ this->TAO_OutStream::print ("L'%lc'", ev->u.wcval);
+ break;
+ case AST_Expression::EV_octet:
+ this->TAO_OutStream::print ("%d", ev->u.oval);
+ break;
+ case AST_Expression::EV_bool:
+ this->TAO_OutStream::print ("%s", ev->u.bval ? "true" : "false");
+ break;
+ case AST_Expression::EV_string:
+ this->TAO_OutStream::print ("\"%s\"", ev->u.strval->get_string ());
+ break;
+ case AST_Expression::EV_wstring:
+ this->TAO_OutStream::print ("L\"%s\"", ev->u.wstrval);
+ break;
+ case AST_Expression::EV_enum:
+ this->print (expr->n ());
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ // XXXASG: need to add code here
+ }
+
+ return *this;
+}
diff --git a/flat/CIAO/tools/IDL3_to_XMI/be_sunsoft.h b/flat/CIAO/tools/IDL3_to_XMI/be_sunsoft.h
new file mode 100644
index 00000000000..5aef8a66d4d
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/be_sunsoft.h
@@ -0,0 +1,39 @@
+/* -*- c++ -*- */
+// $Id$
+
+/**
+ * @file be_sunsoft.h
+ *
+ * Sunsoft backend output generation.
+ */
+
+#ifndef TAO_BE_HELPER_H
+#define TAO_BE_HELPER_H
+
+#include "be_helper.h"
+
+class TAO_SunSoft_OutStream : public TAO_OutStream
+{
+ // =TITLE
+ // TAO_SunSoft_OutStream
+ // =DESCRIPTION
+ // Backend specific to SunSoft AST nodes
+public:
+ TAO_SunSoft_OutStream (void);
+ // constructor
+
+ ~TAO_SunSoft_OutStream (void);
+ // destuctor
+
+ virtual TAO_OutStream &print (Identifier *id);
+ // output the SunSoft IDL Identifier Node
+
+ virtual TAO_OutStream &print (UTL_IdList *idl);
+ // output the SunSoft IDL UTL_IdList Node which is usually used to maintain a
+ // scoped name
+
+ virtual TAO_OutStream &print (AST_Expression *expr);
+ // output the contents of the AST_Expression node
+};
+
+#endif // if !defined
diff --git a/flat/CIAO/tools/IDL3_to_XMI/identifier_helper.cpp b/flat/CIAO/tools/IDL3_to_XMI/identifier_helper.cpp
new file mode 100644
index 00000000000..dc540554f18
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/identifier_helper.cpp
@@ -0,0 +1,115 @@
+/* -*- c++ -*- */
+// $Id$
+
+#include "identifier_helper.h"
+#include "utl_identifier.h"
+#include "utl_string.h"
+#include "global_extern.h"
+
+Identifier *
+IdentifierHelper::original_local_name (Identifier * local_name)
+{
+ Identifier * id = 0;
+
+ // Remove _cxx_ if it is present.
+ if (ACE_OS::strstr (local_name->get_string (),
+ "_cxx_")
+ == local_name->get_string ())
+ {
+ // CString class is good to do this stuff.
+ ACE_CString name_str (local_name->get_string ());
+
+ // Remove _cxx_.
+ name_str = name_str.substr (ACE_OS::strlen ("_cxx_"));
+
+ // Assign to the Identifier variable.
+ ACE_NEW_RETURN (id,
+ Identifier (name_str.c_str ()),
+ 0);
+ }
+ else
+ {
+ id = local_name->copy ();
+ }
+
+ return id;
+}
+
+
+ACE_CString
+IdentifierHelper::orig_sn (UTL_IdList * sn, bool appended_to)
+{
+ ACE_CString retval;
+ bool first = true;
+ bool second = false;
+ Identifier *id = 0;
+
+ for (UTL_IdListActiveIterator i (sn); !i.is_done ();)
+ {
+ if (!first)
+ {
+ retval += "::";
+ }
+ else if (second)
+ {
+ first = second = false;
+ }
+
+ id = IdentifierHelper::original_local_name (i.item ());
+ i.next ();
+
+ // Append the identifier.
+ retval +=
+ appended_to && i.is_done ()
+ ? id->get_string ()
+ : IdentifierHelper::try_escape (id).c_str ();
+
+ if (first)
+ {
+ if (ACE_OS::strcmp (id->get_string (), "") != 0)
+ {
+ // Does not start with a "".
+ first = false;
+ }
+ else
+ {
+ second = true;
+ }
+ }
+
+ id->destroy ();
+ delete id;
+ id = 0;
+ }
+
+ return retval;
+}
+
+bool
+IdentifierHelper::is_idl_keyword (Identifier * local_name)
+{
+ UTL_String utl_tmp (local_name->get_string ());
+ ACE_CString ext_id (utl_tmp.get_canonical_rep (),
+ 0,
+ false);
+
+ int status = idl_global->idl_keywords ().find (ext_id);
+ utl_tmp.destroy ();
+
+ return status == 0;
+}
+
+ACE_CString
+IdentifierHelper::try_escape (Identifier * local_name)
+{
+ ACE_CString s_local_name (local_name->get_string ());
+
+ if (IdentifierHelper::is_idl_keyword (local_name))
+ {
+ return "_" + s_local_name;
+ }
+ else
+ {
+ return s_local_name;
+ }
+}
diff --git a/flat/CIAO/tools/IDL3_to_XMI/identifier_helper.h b/flat/CIAO/tools/IDL3_to_XMI/identifier_helper.h
new file mode 100644
index 00000000000..a414b8fadd5
--- /dev/null
+++ b/flat/CIAO/tools/IDL3_to_XMI/identifier_helper.h
@@ -0,0 +1,64 @@
+// $Id$
+
+/* -*- c++ -*- */
+// ============================================================================
+//
+// = LIBRARY
+// TAO_IDL3_TO_IDL2_BE_DLL
+//
+// = FILENAME
+// identifier_helper.h
+//
+// = DESCRIPTION
+// Utilities associated with UTL_Identifier.
+//
+// = AUTHOR
+// Jeff Parsons <j.parsons@vanderbilt.edu>
+//
+// ============================================================================
+
+#ifndef IDENTIFIER_HELPER_H
+#define IDENTIFIER_HELPER_H
+
+#include "utl_scoped_name.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/SString.h"
+
+class Identifier;
+
+struct IdentifierHelper
+{
+ //
+ // = TITLE
+ // IdentifierHelper.
+ //
+ // = DESCRIPTION
+ // 1) keeps escape (leading underscore character in generated
+ // identifier in IDL
+ // 2) removes the '_' escape character when the identifier is
+ // part of another identifier such as in provides_XXX
+ // 3) removes any '_cxx_' in generated IDL
+
+ static Identifier *
+ original_local_name (Identifier * local_name);
+
+ // Removes '_cxx_ from segments of a scoped name, and optionally
+ // de-escape the last segment, if it's to be appended to.
+ static ACE_CString
+ orig_sn (UTL_ScopedName * scoped_name, bool appended_to = false);
+
+ // Detects case-insensitive match with IDL keyword.
+ static bool
+ is_idl_keyword (Identifier * local_name);
+
+ // Preserves the 'escape' (leading underscore) in a
+ // generated identifier if necessary.
+ static ACE_CString
+ try_escape (Identifier * local_name);
+};
+
+#endif /* IDENTIFIER_HELPER_H */