<?xml encoding="UTF-8"?> <!-- Copyright (c) 2007-2010 by Kavanagh Consultancy Limited. All rights reserved. --> <!-- OOA of OOA Elements --> <!ELEMENT Project (Description?, Task*, Domain*, Bridge*, ModelPopulation*, MetamodelPopulation*, DomainChart?, Configuration*)> <!ATTLIST Project Name CDATA #REQUIRED Notation (ShlaerMellor | ExecutableUML | ExecutableUML2) "ShlaerMellor" Location CDATA "" LocationFormat CDATA #FIXED "OOA Interchange Format 0.04"> <!-- Name : Name Notation : Notation Location : Project Location LocationFormat : Project Location Format --> <!ELEMENT Description (#PCDATA)> <!ATTLIST Description TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!ELEMENT Task (Description?)> <!ATTLIST Task Name CDATA #REQUIRED> <!-- Name : Name --> <!ELEMENT Domain (MissionStatement?, InformationModel?, Activity*)> <!ATTLIST Domain Name CDATA #REQUIRED DomainCategory (Application | Service | Architectural | Implementation) "Service"> <!-- Name : Name DomainCategory : Domain Category --> <!ELEMENT MissionStatement (#PCDATA)> <!ATTLIST MissionStatement TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!ELEMENT InformationModel (Description?, (BooleanType | EnumeratedType | SymbolicType | NumericType | ArbitraryIDType)*, Object*, (SimpleRelationship | AssociativeRelationship | ComposedRelationship | MathematicallyDependentRelationship | SubtypeSupertypeRelationship)*, Subsystem*, (LifecycleModel | SingleAssignerModel | MultipleAssignerModel | Terminator | PolymorphicDestination)*, ((SubsystemRelationshipModel?, SubsystemCommunicationModel?) | (ObjectInformationModel?, ObjectCommunicationModel?, Report?)), PatternFile*)> <!ATTLIST InformationModel Name CDATA #REQUIRED ManualObjectNumbering (False | True) "False" ManualRelationshipNumbering (False | True) "False"> <!-- Name : Name ManualObjectNumbering : Boolean ManualRelationshipNumbering : Boolean --> <!ELEMENT BooleanType (Description?)> <!ATTLIST BooleanType Name CDATA #REQUIRED Predefined (False | True) "False" FalseAlias CDATA "FALSE" TrueAlias CDATA "TRUE" DefaultValue CDATA #IMPLIED> <!-- Name : Name Predefined : Boolean FalseAlias : Name TrueAlias : Name DefaultValue : Name (1c) --> <!ELEMENT EnumeratedType (Description?, LegalValue+)> <!ATTLIST EnumeratedType Name CDATA #REQUIRED Predefined (False | True) "False" DefaultValue CDATA #IMPLIED> <!-- Name : Name Predefined : Boolean DefaultValue (R) : Name (1c) --> <!ELEMENT LegalValue (Description?)> <!ATTLIST LegalValue Name CDATA #REQUIRED> <!-- Name : Name --> <!ELEMENT SymbolicType (Description?, Pattern?)> <!ATTLIST SymbolicType Name CDATA #REQUIRED Predefined (False | True) "False" MinimumLength CDATA "0" MaximumLength CDATA #IMPLIED DefaultValue CDATA #IMPLIED> <!-- Name : Name Predefined : Boolean MinimumLength : Non-Negative Integer MaximumLength : Non-Negative Integer (1c) DefaultValue : String (1c) --> <!ELEMENT Pattern (#PCDATA)> <!ELEMENT NumericType (Description?)> <!ATTLIST NumericType Name CDATA #REQUIRED Predefined (False | True) "False" ValueFormat (Binary | Octal | Decimal | Hexadecimal | Time) "Decimal" Unit CDATA "" TimeUnit (Year | Month | Day | Hour | Minute | Second | Millisecond | Microsecond | Nanosecond) #IMPLIED MinimumValue CDATA #IMPLIED MaximumValue CDATA #IMPLIED PreferredDecimalPlaces CDATA "0" MaximumDecimalPlaces CDATA #IMPLIED Precision CDATA #IMPLIED DefaultValue CDATA #IMPLIED> <!-- Name : Name Predefined : Boolean ValueFormat : Numeric Value Format Unit : Name (1c) TimeUnit (M) : Time Unit (1c) MinimumValue : Real (1c) MaximumValue : Real (1c) PreferredDecimalPlaces : Non-Negative Integer MaximumDecimalPlaces : Integer (1c) Precision (M) : Real DefaultValue : Real (1c) --> <!ELEMENT ArbitraryIDType (Description?)> <!ATTLIST ArbitraryIDType Name CDATA #REQUIRED Predefined (False | True) "False" Ordinal (False | True) "False" IdentifiedObject CDATA "" ChildParentRelationship CDATA "" ChildMappedToParent (False | True) #IMPLIED MinimumValue CDATA "0" MaximumValue CDATA #IMPLIED UnallocatedPercentageBeforeReallocation CDATA #IMPLIED MinimumUnallocatedBeforeReallocation CDATA "1"> <!-- Name : Name Predefined : Boolean Ordinal : Boolean IdentifiedObject (R) : Name (1c) ChildParentRelationship (R) : Relationship ID (1c) ChildMappedToParent (M) : Boolean MinimumValue : Non-Negative Integer MaximumValue : Non-Negative Integer (1c) UnallocatedPercentageBeforeReallocation : Non-Negative Integer (1c) MinimumUnallocatedBeforeReallocation : Positive Integer --> <!ELEMENT Object (Description?, (SimpleAttribute | ArbitraryIDAttribute | MathematicallyDependentAttribute | ReferentialAttribute | PolymorphicAttribute)*, Identifier*)> <!ATTLIST Object Name CDATA #REQUIRED FirstLetters CDATA #IMPLIED CustomLetters CDATA "" KeyLetters CDATA #IMPLIED ManualNumber CDATA "" Number CDATA #IMPLIED ObjectCategory (TangibleThing | Role | Incident | Interaction | Specification) #IMPLIED Prominent (False | True) "False"> <!-- Name : Name FirstLetters (M) : Key Letters CustomLetters : Key Letters (1c) KeyLetters (M) : Key Letters ManualNumber : Positive Integer (1c) Number (M) : Positive Integer ObjectCategory : Object Category (1c) Prominent : Boolean --> <!ELEMENT SimpleAttribute (Description?, ValueDomain?)> <!ATTLIST SimpleAttribute Name CDATA #REQUIRED Naming (False | True) "False" IdentifyingSuffix CDATA #IMPLIED ManualDataType CDATA "" DataType CDATA #IMPLIED DataTypeAcceptable (False | True) #IMPLIED InitialValue CDATA #IMPLIED Final (False | True) "False" ManualConditional (False | True) "False" Conditional (False | True) #IMPLIED> <!-- Name : Name Naming : Boolean IdentifyingSuffix (M) : Identifying Suffix ManualDataType (R) : Name (1c) // #REQUIRED if InitialValue specified DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean InitialValue : String (1c) Final : Boolean ManualConditional : Boolean Conditional (M) : Boolean --> <!ELEMENT ValueDomain (#PCDATA)> <!ATTLIST ValueDomain TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!ELEMENT ArbitraryIDAttribute (Description?, ValueDomain?)> <!ATTLIST ArbitraryIDAttribute Name CDATA #REQUIRED IdentifyingSuffix CDATA #IMPLIED ManualDataType CDATA "" DataType CDATA #IMPLIED DataTypeAcceptable (False | True) #IMPLIED ManualConditional (False | True) "False" Conditional (False | True) #IMPLIED> <!-- Name : Name IdentifyingSuffix (M) : Identifying Suffix ManualDataType (R) : Name (1c) DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean ManualConditional : Boolean Conditional (M) : Boolean --> <!ELEMENT MathematicallyDependentAttribute (Description?, ValueDomain?)> <!ATTLIST MathematicallyDependentAttribute Name CDATA #REQUIRED IdentifyingSuffix CDATA #IMPLIED ManualDataType CDATA "" DataType CDATA #IMPLIED DataTypeAcceptable (False | True) #IMPLIED ManualConditional (False | True) "False" Conditional (False | True) #IMPLIED> <!-- Name : Name IdentifyingSuffix (M) : Identifying Suffix ManualDataType (R) : Name (1c) DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean ManualConditional : Boolean Conditional (M) : Boolean --> <!ELEMENT ReferentialAttribute (Description?)> <!ATTLIST ReferentialAttribute Name CDATA #REQUIRED IdentifyingSuffix CDATA #IMPLIED ReferentialSuffix CDATA #IMPLIED BaseObject CDATA #IMPLIED BaseAttribute CDATA #IMPLIED BaseAttributeStatus (Unresolved | PartiallyResolved | FullyResolved | Incompatible | MultipleBaseAttributes | OnlyCircularReferences) #IMPLIED ManualDataType CDATA "" DataType CDATA #IMPLIED DataTypeAcceptable (False | True) #IMPLIED LiteralValue CDATA #IMPLIED ManualConditional (False | True) "False" NavigationConditional (False | True) #IMPLIED Conditional (False | True) #IMPLIED> <!-- Name : Name IdentifyingSuffix (M) : Identifying Suffix ReferentialSuffix (M) : Referential Suffix BaseObject (M) : Name (1c) BaseAttribute (M) : Name (1c) BaseAttributeStatus (M) : Base Attribute Status ManualDataType (R) : Name (1c) // #REQUIRED if LiteralValue specified DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean LiteralValue : String (1c) ManualConditional : Boolean NavigationConditional (M) : Boolean Conditional (M) : Boolean --> <!ELEMENT PolymorphicAttribute (PolymorphicAttributeMapping*, Description?)> <!ATTLIST PolymorphicAttribute Name CDATA #REQUIRED IdentifyingSuffix CDATA #IMPLIED SubtypeSupertypeRelationship CDATA "" MappingComplete (False | True) #IMPLIED MappingCompatible (False | True) #IMPLIED ManualDataType CDATA "" DataType CDATA #IMPLIED DataTypeAcceptable (False | True) #IMPLIED ManualConditional (False | True) "False" Conditional (False | True) #IMPLIED> <!-- Name : Name IdentifyingSuffix (M) : Identifying Suffix SubtypeSupertypeRelationship (R) : Relationship ID (1c) MappingComplete (M) : Boolean MappingCompatible (M) : Boolean ManualDataType (R) : Name (1c) DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean ManualConditional : Boolean Conditional (M) : Boolean --> <!ELEMENT PolymorphicAttributeMapping EMPTY> <!ATTLIST PolymorphicAttributeMapping SubtypeObject CDATA #REQUIRED SubtypeAttribute CDATA #REQUIRED> <!-- SubtypeObject (R) : Name SubtypeAttribute (R) : Name --> <!ELEMENT Identifier (IdentifyingAttribute+)> <!ATTLIST Identifier IdentifierID CDATA #IMPLIED Preferred (False | True) "False"> <!-- IdentifierID (M) : Identifier ID Preferred : Boolean --> <!ELEMENT IdentifyingAttribute EMPTY> <!ATTLIST IdentifyingAttribute Attribute CDATA #REQUIRED> <!-- Attribute (R) : Name --> <!ELEMENT SimpleRelationship (Description?, ((FirstParticipant, SecondParticipant) | (SecondParticipant, FirstParticipant)), LoopTraversalMapping*)> <!ATTLIST SimpleRelationship ManualNumber CDATA "" Number CDATA #IMPLIED RelationshipID CDATA #REQUIRED> <!-- ManualNumber : Positive Integer (1c) Number (M) : Positive Integer RelationshipID (M) : Relationship ID // Should be #IMPLIED --> <!ELEMENT FirstParticipant (FirstToSecondMapping?)> <!ATTLIST FirstParticipant Object CDATA #REQUIRED Role CDATA "FIRST" VerbPhrase CDATA "" Many (False | True) "False" Conditional (False | True) "False"> <!-- Object (R) : Name Role : Name VerbPhrase : Name (1c) Many : Boolean Conditional : Boolean --> <!ELEMENT FirstToSecondMapping (ReferentialAttributeMapping+)> <!ATTLIST FirstToSecondMapping TargetIdentifier CDATA #REQUIRED> <!-- TargetIdentifier (R) : Identifier ID --> <!ELEMENT ReferentialAttributeMapping EMPTY> <!ATTLIST ReferentialAttributeMapping ReferentialAttribute CDATA #REQUIRED IdentifyingAttribute CDATA #REQUIRED Constrained (False | True) "False" LoopConstrained (False | True) #IMPLIED> <!-- ReferentialAttribute (R) : Name IdentifyingAttribute (R) : Name Constrained : Boolean LoopConstrained (M) : Boolean --> <!ELEMENT SecondParticipant (SecondToFirstMapping?)> <!ATTLIST SecondParticipant Object CDATA #REQUIRED Role CDATA "SECOND" VerbPhrase CDATA "" Many (False | True) "False" Conditional (False | True) "False"> <!-- Object (R) : Name Role : Name VerbPhrase : Name (1c) Many : Boolean Conditional : Boolean --> <!ELEMENT SecondToFirstMapping (ReferentialAttributeMapping+)> <!ATTLIST SecondToFirstMapping TargetIdentifier CDATA #REQUIRED> <!-- TargetIdentifier (R) : Identifier ID --> <!ELEMENT LoopTraversalMapping EMPTY> <!ATTLIST LoopTraversalMapping TraversedRelationship CDATA #REQUIRED SourceObject CDATA #IMPLIED SourceRole CDATA #IMPLIED SourceRoleRequired CDATA #IMPLIED TargetObject CDATA #REQUIRED TargetRole CDATA #IMPLIED TargetRoleRequired CDATA #IMPLIED> <!-- TraversedRelationship (R) : Relationship ID SourceObject (R) : Name SourceRole (R) : Name SourceRoleRequired (M) : Boolean TargetObject (R) : Name TargetRole (R) : Name TargetRoleRequired (M) : Boolean --> <!ELEMENT AssociativeRelationship (Description?, FirstParticipant, SecondParticipant, AssociativeParticipant, LoopTraversalMapping*)> <!ATTLIST AssociativeRelationship ManualNumber CDATA "" Number CDATA #IMPLIED RelationshipID CDATA #REQUIRED> <!-- ManualNumber : Positive Integer (1c) Number (M) : Positive Integer RelationshipID (M) : Relationship ID // Should be #IMPLIED --> <!ELEMENT AssociativeParticipant (AssociativeToFirstMapping?, AssociativeToSecondMapping?)> <!ATTLIST AssociativeParticipant Object CDATA #REQUIRED Role CDATA #FIXED "ASSOCIATIVE" VerbPhrase CDATA "" ConnectorPhrase CDATA "" Many (False | True) "False" Conditional (False | True) "False"> <!-- Object (R) : Name Role : Name = "ASSOCIATIVE" VerbPhrase : Name (1c) ConnectorPhrase : Name (1c) Many : Boolean Conditional : Boolean --> <!ELEMENT AssociativeToFirstMapping (ReferentialAttributeMapping+)> <!ATTLIST AssociativeToFirstMapping TargetIdentifier CDATA #REQUIRED> <!-- TargetIdentifier (R) : Identifier ID --> <!ELEMENT AssociativeToSecondMapping (ReferentialAttributeMapping+)> <!ATTLIST AssociativeToSecondMapping TargetIdentifier CDATA #REQUIRED> <!-- TargetIdentifier (R) : Identifier ID --> <!ELEMENT ComposedRelationship (Description?, ((FirstParticipant, SecondParticipant) | (SecondParticipant, FirstParticipant)), LoopTraversalMapping, LoopTraversalMapping+)> <!ATTLIST ComposedRelationship ManualNumber CDATA "" Number CDATA #IMPLIED RelationshipID CDATA #REQUIRED> <!-- ManualNumber : Positive Integer (1c) Number (M) : Positive Integer RelationshipID (M) : Relationship ID // Should be #IMPLIED --> <!ELEMENT MathematicallyDependentRelationship (Description?, FirstParticipant, SecondParticipant, LoopTraversalMapping*)> <!ATTLIST MathematicallyDependentRelationship ManualNumber CDATA "" Number CDATA #IMPLIED RelationshipID CDATA #REQUIRED> <!-- ManualNumber : Positive Integer (1c) Number (M) : Positive Integer RelationshipID (M) : Relationship ID // Should be #IMPLIED --> <!ELEMENT SubtypeSupertypeRelationship (Description?, SupertypeParticipant, SubtypeParticipant, SubtypeParticipant+)> <!ATTLIST SubtypeSupertypeRelationship ManualNumber CDATA "" Number CDATA #IMPLIED RelationshipID CDATA #REQUIRED> <!-- ManualNumber : Positive Integer (1c) Number (M) : Positive Integer RelationshipID (M) : Relationship ID // Should be #IMPLIED --> <!ELEMENT SupertypeParticipant EMPTY> <!ATTLIST SupertypeParticipant Object CDATA #REQUIRED Role CDATA #FIXED "SUPERTYPE"> <!-- Object (R) : Name Role : Name = "SUPERTYPE" --> <!ELEMENT SubtypeParticipant (SubtypeToSupertypeMapping?)> <!ATTLIST SubtypeParticipant Object CDATA #REQUIRED Role CDATA #FIXED "SUBTYPE"> <!-- Object (R) : Name Role : Name = "SUBTYPE" --> <!ELEMENT SubtypeToSupertypeMapping (ReferentialAttributeMapping+)> <!ATTLIST SubtypeToSupertypeMapping TargetIdentifier CDATA #REQUIRED> <!-- TargetIdentifier (R) : Identifier ID --> <!ELEMENT Subsystem (Description?, AssignedObject*, AssignedRelationship*, Activity*, ObjectInformationModel?, ObjectCommunicationModel?, Report?)> <!ATTLIST Subsystem Name CDATA #REQUIRED PrefixLetters CDATA "" ManualLowestNumber CDATA "" ManualHighestNumber CDATA "" LowestNumber CDATA #IMPLIED HighestNumber CDATA #IMPLIED> <!-- Name : Name PrefixLetters : Key Letters (1c) ManualLowestNumber : Positive Integer (1c) ManualHighestNumber : Positive Integer (1c) LowestNumber (M) : Positive Integer HighestNumber (M) : Positive Integer --> <!ELEMENT AssignedObject EMPTY> <!ATTLIST AssignedObject Object CDATA #REQUIRED> <!-- Object (R) : Name --> <!ELEMENT AssignedRelationship EMPTY> <!ATTLIST AssignedRelationship Relationship CDATA #REQUIRED> <!-- Relationship (R) : Relationship ID --> <!ELEMENT Activity (ShortNote?, LongNote?)> <!ATTLIST Activity Task CDATA #REQUIRED Row CDATA #IMPLIED Column CDATA #IMPLIED> <!-- Task (R) : Name Row (M) : Positive Integer Column (M) : Positive Integer --> <!ELEMENT ShortNote (#PCDATA)> <!ATTLIST ShortNote TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!ELEMENT LongNote (#PCDATA)> <!ATTLIST LongNote TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!ELEMENT LifecycleModel (Description?, (AttributeDataItem | TransientDataItem)*, (CreationEvent | TransitionEvent)*, TransitionNote*, (SimpleState | CreationState | DeletionState)*, StateTransitionDiagram?)> <!ATTLIST LifecycleModel ActiveObject CDATA #REQUIRED ManualEventNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED ManualStateNumbering (False | True) "False"> <!-- ActiveObject (R) : Name ManualEventNumbering : Boolean LabelPrefix (M) : String ManualStateNumbering : Boolean --> <!ELEMENT AttributeDataItem (Description?)> <!ATTLIST AttributeDataItem Name CDATA #REQUIRED Object CDATA #REQUIRED Attribute CDATA #REQUIRED Many (False | True) "False" Conditional (False | True) "False"> <!-- Name : Name Object (R) : Name Attribute (R) : Name Many : Boolean Conditional : Boolean --> <!ELEMENT TransientDataItem (Description?)> <!ATTLIST TransientDataItem Name CDATA #REQUIRED DataType CDATA "" Many (False | True) "False" Conditional (False | True) "False"> <!-- Name : Name DataType (R) : Name (1c) Many : Boolean Conditional : Boolean --> <!ELEMENT CreationEvent (CarriedDataItem*, Description?)> <!ATTLIST CreationEvent Meaning CDATA #REQUIRED ManualNumber CDATA "" Number CDATA #IMPLIED Label CDATA #IMPLIED> <!-- Meaning (R) : Name ManualNumber : Positive Integer (1c) Number (M) : Positive Integer Label (M) : String --> <!ELEMENT CarriedDataItem EMPTY> <!ATTLIST CarriedDataItem SupplementalDataItem CDATA #REQUIRED> <!-- SupplementalDataItem (R) : Name --> <!ELEMENT TransitionEvent (CarriedDataItem*, Description?)> <!ATTLIST TransitionEvent Meaning CDATA #REQUIRED ManualNumber CDATA "" Number CDATA #IMPLIED Label CDATA #IMPLIED> <!-- Meaning (R) : Name ManualNumber : Positive Integer (1c) Number (M) : Positive Integer Label (M) : String --> <!ELEMENT TransitionNote (Description?)> <!ATTLIST TransitionNote TransitionNoteID CDATA #IMPLIED> <!-- TransitionNoteID (M) : String --> <!ELEMENT SimpleState (Description?, ReceivedDataItem*, SimpleAction?, InternalEvent*, (NewStateTransition | EventIgnoredTransition | CannotHappenTransition)*)> <!ATTLIST SimpleState Name CDATA #REQUIRED ManualNumber CDATA "" Number CDATA #IMPLIED InitialState (False | True) "False" FinalState (False | True) #IMPLIED WaitState (False | True) #IMPLIED TransitionEventsCompatible (False | True) #IMPLIED> <!-- Name : Name ManualNumber : Positive Integer (1c) Number (M) : Positive Integer InitialState : Boolean FinalState (M) : Boolean WaitState (M) : Boolean TransitionEventsCompatible (M) : Boolean --> <!ELEMENT ReceivedDataItem EMPTY> <!ATTLIST ReceivedDataItem SupplementalDataItem CDATA #REQUIRED> <!-- SupplementalDataItem (R) : Name --> <!ELEMENT SimpleAction (StatementBlock?)> <!ATTLIST SimpleAction MaximumVisibleLOC CDATA ""> <!-- MaximumVisibleLOC : Non-Negative Integer (1c) --> <!ELEMENT StatementBlock (#PCDATA)> <!ELEMENT InternalEvent EMPTY> <!ATTLIST InternalEvent Event CDATA #REQUIRED> <!-- Event (R) : String --> <!ELEMENT NewStateTransition EMPTY> <!ATTLIST NewStateTransition TransitionEvent CDATA #REQUIRED NewState CDATA #REQUIRED NewStateCompatible (False | True) #IMPLIED TransferOfControl (False | True) "False" TransitionNote CDATA ""> <!-- TransitionEvent (R) : Name NewState (R) : Name NewStateCompatible (M) : Boolean TransferOfControl : Boolean TransitionNote (R) : String (1c) --> <!ELEMENT EventIgnoredTransition EMPTY> <!ATTLIST EventIgnoredTransition TransitionEvent CDATA #REQUIRED TransitionNote CDATA ""> <!-- TransitionEvent (R) : Name TransitionNote (R) : String (1c) --> <!ELEMENT CannotHappenTransition EMPTY> <!ATTLIST CannotHappenTransition TransitionEvent CDATA #REQUIRED TransitionNote CDATA ""> <!-- TransitionEvent (R) : Name TransitionNote (R) : String (1c) --> <!ELEMENT CreationState (Description?, ReceivedDataItem*, SimpleAction?, InternalEvent*, (NewStateTransition | EventIgnoredTransition | CannotHappenTransition)*)> <!ATTLIST CreationState Name CDATA #REQUIRED ManualNumber CDATA "" Number CDATA #IMPLIED CreationEvent CDATA #REQUIRED CreationEventCompatible (False | True) #IMPLIED InitialState (False | True) "False" FinalState (False | True) #IMPLIED WaitState (False | True) #IMPLIED> <!-- Name : Name ManualNumber : Positive Integer (1c) Number (M) : Positive Integer CreationEvent (R) : Name CreationEventCompatible (M) : Boolean InitialState : Boolean FinalState (M) : Boolean WaitState (M) : Boolean --> <!ELEMENT DeletionState (Description?, ReceivedDataItem*, SimpleAction?, InternalEvent*)> <!ATTLIST DeletionState Name CDATA #REQUIRED ManualNumber CDATA "" Number CDATA #IMPLIED TransitionEventsCompatible (False | True) #IMPLIED> <!-- Name : Name ManualNumber : Positive Integer (1c) Number (M) : Positive Integer TransitionEventsCompatible (M) : Boolean --> <!ELEMENT SingleAssignerModel (Description?, (AttributeDataItem | TransientDataItem)*, TransitionEvent*, TransitionNote*, SimpleState*, StateTransitionDiagram?)> <!ATTLIST SingleAssignerModel CompetitiveRelationship CDATA #REQUIRED ManualEventNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED ManualStateNumbering (False | True) "False"> <!-- CompetitiveRelationship (R) : Relationship ID ManualEventNumbering : Boolean LabelPrefix (M) : String ManualStateNumbering : Boolean --> <!ELEMENT MultipleAssignerModel (Description?, (AttributeDataItem | TransientDataItem)*, TransitionEvent*, TransitionNote*, SimpleState*, StateTransitionDiagram?)> <!ATTLIST MultipleAssignerModel CompetitiveRelationship CDATA #REQUIRED PartitioningObject CDATA #REQUIRED ManualEventNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED ManualStateNumbering (False | True) "False"> <!-- CompetitiveRelationship (R) : Relationship ID PartitioningObject (R) : Name ManualEventNumbering : Boolean LabelPrefix (M) : String ManualStateNumbering : Boolean --> <!ELEMENT Terminator (Description?, (AttributeDataItem | TransientDataItem)*, DomainCrossingEvent*, ExternalEvent*)> <!ATTLIST Terminator Name CDATA #REQUIRED FirstLetters CDATA #IMPLIED CustomLetters CDATA "" KeyLetters CDATA #IMPLIED ManualEventNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- Name (R) : Name FirstLetters (M) : Key Letters CustomLetters : Key Letters (1c) KeyLetters (M) : Key Letters ManualEventNumbering : Boolean LabelPrefix (M) : String --> <!ELEMENT DomainCrossingEvent (CarriedDataItem*, Description?)> <!ATTLIST DomainCrossingEvent Meaning CDATA #REQUIRED ManualNumber CDATA "" Number CDATA #IMPLIED Label CDATA #IMPLIED> <!-- Meaning (R) : Name ManualNumber : Positive Integer (1c) Number (M) : Positive Integer Label (M) : String --> <!ELEMENT ExternalEvent EMPTY> <!ATTLIST ExternalEvent Event CDATA #REQUIRED> <!-- Event (R) : String --> <!ELEMENT PolymorphicDestination (Description?, (AttributeDataItem | TransientDataItem)*, PolymorphicEvent*)> <!ATTLIST PolymorphicDestination SubtypeSupertypeRelationship CDATA #REQUIRED ManualEventNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- SubtypeSupertypeRelationship (R) : Relationship ID ManualEventNumbering : Boolean LabelPrefix (M) : String --> <!ELEMENT PolymorphicEvent (CarriedDataItem*, Description?, PolymorphicEventMapping*)> <!ATTLIST PolymorphicEvent Meaning CDATA #REQUIRED ManualNumber CDATA "" Number CDATA #IMPLIED Label CDATA #IMPLIED MappingComplete CDATA #IMPLIED MappingCompatible CDATA #IMPLIED> <!-- Meaning (R) : Name ManualNumber : Positive Integer (1c) Number (M) : Positive Integer Label (M) : String MappingComplete (M) : Boolean MappingCompatible (M) : Boolean --> <!ELEMENT PolymorphicEventMapping EMPTY> <!ATTLIST PolymorphicEventMapping SubtypeEvent CDATA #REQUIRED> <!-- SubtypeEvent (R) : String --> <!ELEMENT PatternFile (#PCDATA)> <!ATTLIST PatternFile Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Cached (False | True) "False" RuleSetName CDATA #REQUIRED> <!-- Path : * RelativePath : * Cached : * RuleSetName : * --> <!ELEMENT Bridge (ClientAssumptions?, ServerRequirements?)> <!ATTLIST Bridge ClientDomain CDATA #REQUIRED ServerDomain CDATA #REQUIRED> <!-- ClientDomain (R) : Name ServerDomain (R) : Name --> <!ELEMENT ClientAssumptions (#PCDATA)> <!ATTLIST ClientAssumptions TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!ELEMENT ServerRequirements (#PCDATA)> <!ATTLIST ServerRequirements TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!ELEMENT ModelPopulation (Description?, DomainPopulation*)> <!ATTLIST ModelPopulation Name CDATA #REQUIRED> <!-- Name : Name --> <!ELEMENT DomainPopulation (ObjectInstanceTable*, RelationshipInstanceTable*)> <!ATTLIST DomainPopulation Domain CDATA #REQUIRED> <!-- Domain (R) : Name --> <!ELEMENT ObjectInstanceTable (ObjectInstance*)> <!ATTLIST ObjectInstanceTable Object CDATA #REQUIRED> <!-- Object (R) : Name --> <!ELEMENT ObjectInstance (AttributeInstance*)> <!ATTLIST ObjectInstance ObjectInstanceID CDATA #IMPLIED> <!-- ObjectInstanceID (M) : String --> <!ELEMENT AttributeInstance EMPTY> <!ATTLIST AttributeInstance Attribute CDATA #REQUIRED AttributeValue CDATA #IMPLIED> <!-- Attribute (R) : Name AttributeValue : String (1c) --> <!ELEMENT RelationshipInstanceTable (RelationshipInstance*)> <!ATTLIST RelationshipInstanceTable Relationship CDATA #REQUIRED> <!-- Relationship (R) : Relationship ID --> <!ELEMENT RelationshipInstance (ParticipantInstance, ParticipantInstance, ParticipantInstance?)> <!ELEMENT ParticipantInstance EMPTY> <!ATTLIST ParticipantInstance Object CDATA #REQUIRED Role CDATA #IMPLIED ObjectInstance CDATA #REQUIRED> <!-- Object (R) : Name Role (R) : Name ObjectInstance (R) : String --> <!ELEMENT MetamodelPopulation EMPTY> <!ATTLIST MetamodelPopulation MetamodelVersion CDATA #REQUIRED> <!-- MetamodelVersion : String --> <!ELEMENT Configuration (Description?, ArchetypeFile*, Translation*)> <!ATTLIST Configuration Name CDATA #REQUIRED> <!-- Name : * --> <!ELEMENT ArchetypeFile (#PCDATA)> <!ATTLIST ArchetypeFile Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Cached (False | True) "False"> <!-- Path : * RelativePath : * Cached : * --> <!ELEMENT Translation (ErrorMessages?, GeneratedFile*, Notes?)> <!ATTLIST Translation ArchetypeFile CDATA #REQUIRED StartTime CDATA #REQUIRED Duration CDATA #REQUIRED ExitStatus CDATA #REQUIRED> <!-- ArchetypeFile : * StartTime : * Duration : * ExitStatus : * --> <!ELEMENT ErrorMessages (#PCDATA)> <!ATTLIST ErrorMessages TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!ELEMENT GeneratedFile (#PCDATA)> <!ATTLIST GeneratedFile Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Cached (False | True) "False"> <!-- Path : * RelativePath : * Cached : * --> <!ELEMENT Notes (#PCDATA)> <!ATTLIST Notes TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!-- Diagramming Elements --> <!-- All diagrams are optional in OOA Interchange Format. --> <!ELEMENT DomainChart (Shape*, BinaryLink*)> <!ATTLIST DomainChart Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Width CDATA #REQUIRED Height CDATA #REQUIRED Font CDATA #REQUIRED Notation (ShlaerMellor | ExecutableUML | ExecutableUML2) "ShlaerMellor"> <!-- Path : * RelativePath : * Width : Non-Negative Integer Height : Non-Negative Integer Font : Font Notation : Notation --> <!ELEMENT SubsystemRelationshipModel (Shape*, BinaryLink*)> <!ATTLIST SubsystemRelationshipModel Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Width CDATA #REQUIRED Height CDATA #REQUIRED Font CDATA #REQUIRED Notation (ShlaerMellor | ExecutableUML | ExecutableUML2) "ShlaerMellor"> <!-- Path : * RelativePath : * Width : Non-Negative Integer Height : Non-Negative Integer Font : Font Notation : Notation --> <!ELEMENT SubsystemCommunicationModel (Shape*, BinaryLink*)> <!ATTLIST SubsystemCommunicationModel Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Width CDATA #REQUIRED Height CDATA #REQUIRED Font CDATA #REQUIRED Notation (ShlaerMellor | ExecutableUML | ExecutableUML2) "ShlaerMellor"> <!-- Path : * RelativePath : * Width : Non-Negative Integer Height : Non-Negative Integer Font : Font Notation : Notation --> <!ELEMENT ObjectInformationModel (Shape*, (BinaryLink | SpurLink | ParentLink | ChildLink)*)> <!ATTLIST ObjectInformationModel Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Width CDATA #REQUIRED Height CDATA #REQUIRED Font CDATA #REQUIRED Notation (ShlaerMellor | ExecutableUML | ExecutableUML2) "ShlaerMellor"> <!-- Path : * RelativePath : * Width : Non-Negative Integer Height : Non-Negative Integer Font : Font Notation : Notation --> <!ELEMENT ObjectCommunicationModel (Shape*, BinaryLink*)> <!ATTLIST ObjectCommunicationModel Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Width CDATA #REQUIRED Height CDATA #REQUIRED Font CDATA #REQUIRED Notation (ShlaerMellor | ExecutableUML | ExecutableUML2) "ShlaerMellor"> <!-- Path : * RelativePath : * Width : Non-Negative Integer Height : Non-Negative Integer Font : Font Notation : Notation --> <!ELEMENT StateTransitionDiagram (Shape*, (BinaryLink | SimpleUnaryLink)*)> <!ATTLIST StateTransitionDiagram Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Width CDATA #REQUIRED Height CDATA #REQUIRED Font CDATA #REQUIRED Notation (ShlaerMellor | ExecutableUML | ExecutableUML2) "ShlaerMellor"> <!-- Path : * RelativePath : * Width : Non-Negative Integer Height : Non-Negative Integer Font : Font Notation : Notation --> <!ELEMENT Shape EMPTY> <!ATTLIST Shape Name CDATA #REQUIRED X CDATA #REQUIRED Y CDATA #REQUIRED Width CDATA #REQUIRED Height CDATA #REQUIRED PreferredSizeUsage (None | UseAsSize | UseAsMinimumSize | UseAsMaximumSize) "UseAsSize"> <!-- Name : String X : Integer Y : Integer Width : Non-Negative Integer Height : Non-Negative Integer PreferredSizeUsage : Preferred Size Usage --> <!ELEMENT BinaryLink (WayPoint*)> <!ATTLIST BinaryLink LinkID CDATA #REQUIRED SourceShape CDATA #REQUIRED TargetShape CDATA #REQUIRED LabelAnchorFlipped (False | True) "False"> <!-- LinkID : String SourceShape (R) : String TargetShape (R) : String LabelAnchorFlipped : Boolean --> <!ELEMENT WayPoint EMPTY> <!ATTLIST WayPoint X CDATA #REQUIRED Y CDATA #REQUIRED> <!-- X : Integer Y : Integer --> <!ELEMENT SimpleUnaryLink (WayPoint*, TargetPoint)> <!ATTLIST SimpleUnaryLink LinkID CDATA #REQUIRED SourceShape CDATA #REQUIRED> <!-- LinkID : String SourceShape (R) : String --> <!ELEMENT TargetPoint EMPTY> <!ATTLIST TargetPoint X CDATA #REQUIRED Y CDATA #REQUIRED> <!-- X : Integer Y : Integer --> <!ELEMENT SpurLink (WayPoint*, TargetPoint)> <!ATTLIST SpurLink LinkID CDATA #REQUIRED SourceShape CDATA #REQUIRED> <!-- LinkID : String SourceShape (R) : String --> <!ELEMENT ParentLink (WayPoint*, TargetPoint)> <!ATTLIST ParentLink LinkID CDATA #REQUIRED SourceShape CDATA #REQUIRED> <!-- LinkID : String SourceShape (R) : String --> <!ELEMENT ChildLink (WayPoint*)> <!ATTLIST ChildLink LinkID CDATA #REQUIRED SourceShape CDATA #REQUIRED> <!-- LinkID : String SourceShape (R) : String --> <!-- Reporting Elements --> <!-- All reports are optional in OOA Interchange Format. Furthermore, all reporting elements will become obsolete when current Information Model Report is replaced with an archetype template. --> <!ELEMENT Report (Attachment*)> <!ATTLIST Report Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Id CDATA #REQUIRED> <!-- Path : * RelativePath : * Id : * --> <!ELEMENT Attachment EMPTY> <!ATTLIST Attachment Path CDATA #IMPLIED RelativePath CDATA #IMPLIED Id CDATA #REQUIRED> <!-- Path : * RelativePath : * Id : * --> <!-- End of File -->