diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2009-02-05 19:10:18 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2009-02-05 19:10:18 +0000 |
commit | 91d56e2d741d9af19addc9fd29a5aa698361b123 (patch) | |
tree | 77d18529ec0f01f8301e5e58130bd8da03d832d2 | |
parent | 9bd4954b1e3fef8c1f4d210f5fd5402889282de3 (diff) | |
download | ATCD-91d56e2d741d9af19addc9fd29a5aa698361b123.tar.gz |
ChangeLogTag: Thu Feb 5 19:07:02 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
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 */ |