<?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.05"> <!-- 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?, (ObjectObserver | EventGeneratedObserver | OperationInvokedObserver)*, Activity*)> <!ATTLIST Domain Name CDATA #REQUIRED DomainCategory (Application | Service | Architectural | Implementation) "Service" ManualOperationNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- Name : Name DomainCategory : Domain Category ManualOperationNumbering : Boolean LabelPrefix (M) : String --> <!ELEMENT MissionStatement (#PCDATA)> <!ATTLIST MissionStatement TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!ELEMENT InformationModel (Description?, (BooleanType | EnumeratedType | SymbolicType | NumericType | ArbitraryIDType | ExternalType | ObjectInstanceType | EventInstanceType | ReturnCoordinateType | TransferVectorType)*, Object*, (SimpleRelationship | AssociativeRelationship | ComposedRelationship | MathematicallyDependentRelationship | SubtypeSupertypeRelationship)*, Subsystem*, (LifecycleModel | SingleAssignerModel | MultipleAssignerModel | PolymorphicDestination | ExternalEntity)*, Function*, ((SubsystemRelationshipModel?, SubsystemCommunicationModel?) | (ObjectInformationModel?, ObjectCommunicationModel?, Report?)), PatternFile*)> <!ATTLIST InformationModel Name CDATA #REQUIRED ManualObjectNumbering (False | True) "False" ManualRelationshipNumbering (False | True) "False" ManualOperationNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- Name : Name ManualObjectNumbering : Boolean ManualRelationshipNumbering : Boolean ManualOperationNumbering : Boolean LabelPrefix (M) : String --> <!ELEMENT BooleanType (Description?)> <!ATTLIST BooleanType DataTypeID CDATA #IMPLIED Name CDATA #REQUIRED Predefined (False | True) "False" ReferenceCount CDATA #IMPLIED FalseAlias CDATA "False" TrueAlias CDATA "True" DefaultValue CDATA #IMPLIED> <!-- DataTypeID (M) : Data Type ID Name : Name Predefined : Boolean ReferenceCount (M) : Non-Negative Integer FalseAlias : Name TrueAlias : Name DefaultValue : Name (1c) --> <!ELEMENT EnumeratedType (Description?, LegalValue+)> <!ATTLIST EnumeratedType DataTypeID CDATA #IMPLIED Name CDATA #REQUIRED Predefined (False | True) "False" ReferenceCount CDATA #IMPLIED DefaultValue CDATA #IMPLIED> <!-- DataTypeID (M) : Data Type ID Name : Name Predefined : Boolean ReferenceCount (M) : Non-Negative Integer DefaultValue (R) : Name (1c) --> <!ELEMENT LegalValue (Description?)> <!ATTLIST LegalValue Name CDATA #REQUIRED> <!-- Name : Name --> <!ELEMENT SymbolicType (Description?, Pattern?)> <!ATTLIST SymbolicType DataTypeID CDATA #IMPLIED Name CDATA #REQUIRED Predefined (False | True) "False" ReferenceCount CDATA #IMPLIED MinimumLength CDATA "0" MaximumLength CDATA #IMPLIED DefaultValue CDATA #IMPLIED> <!-- DataTypeID (M) : Data Type ID Name : Name Predefined : Boolean ReferenceCount (M) : Non-Negative Integer MinimumLength : Non-Negative Integer MaximumLength : Non-Negative Integer (1c) DefaultValue : String (1c) --> <!ELEMENT Pattern (#PCDATA)> <!ELEMENT NumericType (Description?)> <!ATTLIST NumericType DataTypeID CDATA #IMPLIED Name CDATA #REQUIRED Predefined (False | True) "False" ReferenceCount CDATA #IMPLIED 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> <!-- DataTypeID (M) : Data Type ID Name : Name Predefined : Boolean ReferenceCount (M) : Non-Negative Integer 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 DataTypeID CDATA #IMPLIED Name CDATA #REQUIRED Predefined (False | True) "False" ReferenceCount CDATA #IMPLIED Ordinal (False | True) "False" IdentifiedObject CDATA "" ChildParentRelationship CDATA "" ChildMappedToParent (False | True) #IMPLIED MinimumValue CDATA "0" MaximumValue CDATA #IMPLIED UnallocatedPercentageBeforeReallocation CDATA #IMPLIED MinimumUnallocatedBeforeReallocation CDATA "1" DefaultValue CDATA #IMPLIED> <!-- DataTypeID (M): Data Type ID Name : Name Predefined : Boolean ReferenceCount (M) : Non-Negative Integer 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 DefaultValue : Non-Negative Integer (1c) --> <!ELEMENT ExternalType (Description?)> <!ATTLIST ExternalType DataTypeID CDATA #IMPLIED Name CDATA #REQUIRED Predefined (False | True) "False" ReferenceCount CDATA #IMPLIED ExternalEntity CDATA #REQUIRED LiteralType CDATA ""> <!-- DataTypeID (M) : Data Type ID Name : Name Predefined : Boolean ReferenceCount (M) : Non-Negative Integer ExternalEntity (R) : Name LiteralType (R) : Name (1c) --> <!ELEMENT ObjectInstanceType (Description?)> <!ATTLIST ObjectInstanceType DataTypeID CDATA #IMPLIED Name CDATA #REQUIRED Predefined CDATA #FIXED "True" ReferenceCount CDATA #IMPLIED Object CDATA #REQUIRED> <!-- DataTypeID (M) : Data Type ID Name : Name Predefined : Boolean ReferenceCount (M) : Non-Negative Integer Object (R) : Name --> <!ELEMENT EventInstanceType (Description?)> <!ATTLIST EventInstanceType DataTypeID CDATA #IMPLIED Name CDATA #REQUIRED Predefined CDATA #FIXED "True" ReferenceCount CDATA #IMPLIED Event CDATA #REQUIRED> <!-- DataTypeID (M) : Data Type ID Name : Name Predefined : Boolean ReferenceCount (M) : Non-Negative Integer Event (R) : Event Label --> <!ELEMENT ReturnCoordinateType (Description?)> <!ATTLIST ReturnCoordinateType DataTypeID CDATA #IMPLIED Name CDATA #REQUIRED Predefined CDATA #FIXED "True" ReferenceCount CDATA #IMPLIED SynchronousService CDATA #REQUIRED> <!-- DataTypeID (M) : Data Type ID Name : Name Predefined : Boolean ReferenceCount (M) : Non-Negative Integer SynchronousService (R) : Operation Label --> <!ELEMENT TransferVectorType (Description?)> <!ATTLIST TransferVectorType DataTypeID CDATA #IMPLIED Name CDATA #REQUIRED Predefined CDATA #FIXED "True" ReferenceCount CDATA #IMPLIED AsynchronousReturnProcess CDATA ""> <!-- DataTypeID (M) : Data Type ID Name : Name Predefined : Boolean ReferenceCount (M) : Non-Negative Integer AsynchronousReturnProcess (R) : Operation Label (1c) --> <!ELEMENT Object (Description?, (SimpleAttribute | ArbitraryIDAttribute | MathematicallyDependentAttribute | ReferentialTrueAttribute | ReferentialPolymorphicAttribute | SimplePolymorphicAttribute)*, Identifier*, AttributeCalculation*)> <!ATTLIST Object Name CDATA #REQUIRED CustomLetters CDATA "" FirstLetters CDATA #IMPLIED KeyLetters CDATA #IMPLIED ManualNumber CDATA "" Number CDATA #IMPLIED ObjectCategory (TangibleThing | Role | Incident | Interaction | Specification) #IMPLIED Prominent (False | True) "False" PreferredIdentifier CDATA "" OrderedByIdentifier CDATA "" ManualOperationNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- Name : Name CustomLetters : Key Letters (1c) FirstLetters (M) : Key Letters KeyLetters (M) : Key Letters ManualNumber : Positive Integer (1c) Number (M) : Positive Integer ObjectCategory : Object Category (1c) Prominent : Boolean PreferredIdentifier (R) : Identifier ID (1c) OrderedByIdentifier (R) : Identifier ID (1c) ManualOperationNumbering : Boolean LabelPrefix (M) : String --> <!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 ManuallyConditional (False | True) "False" Conditional (False | True) #IMPLIED DefaultValue CDATA #IMPLIED DefaultValueFinal (False | True) "False" InitialValue CDATA #IMPLIED InitialValueFinal (False | True) #IMPLIED> <!-- Name : Name Naming : Boolean IdentifyingSuffix (M) : Identifying Suffix ManualDataType (R) : Name (1c) // #REQUIRED if DefaultValue specified DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean ManuallyConditional : Boolean Conditional (M) : Boolean DefaultValue : String (1c) DefaultValueFinal : Boolean InitialValue (M) : String (1c) InitialValueFinal (M) : Boolean --> <!ELEMENT ValueDomain (#PCDATA)> <!ATTLIST ValueDomain TextFormat (Plain | HTML) "Plain"> <!-- TextFormat : * --> <!ELEMENT ArbitraryIDAttribute (Description?, ValueDomain?)> <!ATTLIST ArbitraryIDAttribute Name CDATA #REQUIRED Naming (False | True) "False" IdentifyingSuffix CDATA #IMPLIED ManualDataType CDATA "" DataType CDATA #IMPLIED DataTypeAcceptable (False | True) #IMPLIED ManuallyConditional (False | True) "False" NavigationConditional (False | True) #IMPLIED Conditional (False | True) #IMPLIED DefaultValue CDATA #IMPLIED DefaultValueFinal (False | True) "False" InitialValue CDATA #IMPLIED InitialValueFinal (False | True) #IMPLIED> <!-- Name : Name Naming : Boolean IdentifyingSuffix (M) : Identifying Suffix ManualDataType (R) : Name (1c) // #REQUIRED if DefaultValue specified DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean ManuallyConditional : Boolean NavigationConditional (M) : Boolean Conditional (M) : Boolean DefaultValue : String (1c) DefaultValueFinal : Boolean InitialValue (M) : String (1c) InitialValueFinal (M) : Boolean --> <!ELEMENT MathematicallyDependentAttribute (Description?, ValueDomain?)> <!ATTLIST MathematicallyDependentAttribute Name CDATA #REQUIRED Naming (False | True) "False" IdentifyingSuffix CDATA #IMPLIED MathematicallyDependentRelationship CDATA "" MathematicallyDependentRelationshipCompatible (False | True) #IMPLIED ManualDataType CDATA "" DataType CDATA #IMPLIED DataTypeAcceptable (False | True) #IMPLIED ManuallyConditional (False | True) "False" NavigationConditional (False | True) #IMPLIED Conditional (False | True) #IMPLIED DefaultValue CDATA #IMPLIED DefaultValueFinal (False | True) "False" InitialValue CDATA #IMPLIED InitialValueFinal (False | True) #IMPLIED> <!-- Name : Name Naming : Boolean IdentifyingSuffix (M) : Identifying Suffix MathematicallyDependentRelationship (R) : Relationship ID (1c) MathematicallyDependentRelationshipCompatible (M) : Boolean ManualDataType (R) : Name (1c) // #REQUIRED if DefaultValue specified DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean ManuallyConditional : Boolean NavigationConditional (M) : Boolean Conditional (M) : Boolean DefaultValue : String (1c) DefaultValueFinal : Boolean InitialValue (M) : String (1c) InitialValueFinal (M) : Boolean --> <!ELEMENT ReferentialTrueAttribute (Description?)> <!ATTLIST ReferentialTrueAttribute Name CDATA #REQUIRED IdentifyingSuffix CDATA #IMPLIED ReferentialSuffix CDATA #IMPLIED BaseAttribute CDATA #IMPLIED BaseAttributeStatus (Unresolved | PartiallyResolved | FullyResolved | Incompatible | MultipleBaseAttributes | OnlyCircularReferences) #IMPLIED ManualDataType CDATA "" DataType CDATA #IMPLIED DataTypeAcceptable (False | True) #IMPLIED ManuallyConditional (False | True) "False" NavigationConditional (False | True) #IMPLIED Conditional (False | True) #IMPLIED DefaultValue CDATA #IMPLIED DefaultValueFinal (False | True) "False" InitialValue CDATA #IMPLIED InitialValueFinal (False | True) #IMPLIED> <!-- Name : Name IdentifyingSuffix (M) : Identifying Suffix ReferentialSuffix (M) : Referential Suffix BaseAttribute (M) : Name (1c) BaseAttributeStatus (M) : Base Attribute Status ManualDataType (R) : Name (1c) // #REQUIRED if DefaultValue specified DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean ManuallyConditional : Boolean NavigationConditional (M) : Boolean Conditional (M) : Boolean DefaultValue : String (1c) DefaultValueFinal : Boolean InitialValue (M) : String (1c) InitialValueFinal (M) : Boolean --> <!ELEMENT ReferentialPolymorphicAttribute (PolymorphicAttributeMapping*, Description?)> <!ATTLIST ReferentialPolymorphicAttribute Name CDATA #REQUIRED IdentifyingSuffix CDATA #IMPLIED ReferentialSuffix CDATA #IMPLIED BaseAttribute CDATA #IMPLIED BaseAttributeStatus (Unresolved | PartiallyResolved | FullyResolved | Incompatible | MultipleBaseAttributes | OnlyCircularReferences) #IMPLIED SubtypeSupertypeRelationship CDATA "" MappingComplete (False | True) #IMPLIED MappingCompatible (False | True) #IMPLIED ManualDataType CDATA "" DataType CDATA #IMPLIED DataTypeAcceptable (False | True) #IMPLIED ManuallyConditional (False | True) "False" NavigationConditional (False | True) #IMPLIED Conditional (False | True) #IMPLIED DefaultValue CDATA #IMPLIED DefaultValueFinal (False | True) "False" InitialValue CDATA #IMPLIED InitialValueFinal (False | True) #IMPLIED> <!-- Name : Name IdentifyingSuffix (M) : Identifying Suffix ReferentialSuffix (M) : Referential Suffix BaseAttribute (M) : Name (1c) BaseAttributeStatus (M) : Base Attribute Status SubtypeSupertypeRelationship (R) : Relationship ID (1c) MappingComplete (M) : Boolean MappingCompatible (M) : Boolean ManualDataType (R) : Name (1c) // #REQUIRED if DefaultValue specified DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean ManuallyConditional : Boolean NavigationConditional (M) : Boolean Conditional (M) : Boolean DefaultValue : String (1c) DefaultValueFinal : Boolean InitialValue (M) : String (1c) InitialValueFinal (M) : Boolean --> <!ELEMENT PolymorphicAttributeMapping EMPTY> <!ATTLIST PolymorphicAttributeMapping SubtypeObject CDATA #REQUIRED SubtypeAttribute CDATA #REQUIRED> <!-- SubtypeObject (R) : Name SubtypeAttribute (R) : Name --> <!ELEMENT SimplePolymorphicAttribute (PolymorphicAttributeMapping*, Description?)> <!ATTLIST SimplePolymorphicAttribute 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 ManuallyConditional (False | True) "False" NavigationConditional (False | True) #IMPLIED Conditional (False | True) #IMPLIED DefaultValue CDATA #IMPLIED DefaultValueFinal (False | True) "False" InitialValue CDATA #IMPLIED InitialValueFinal (False | True) #IMPLIED> <!-- Name : Name IdentifyingSuffix (M) : Identifying Suffix SubtypeSupertypeRelationship (R) : Relationship ID (1c) MappingComplete (M) : Boolean MappingCompatible (M) : Boolean ManualDataType (R) : Name (1c) // #REQUIRED if DefaultValue specified DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean ManuallyConditional : Boolean NavigationConditional (M) : Boolean Conditional (M) : Boolean DefaultValue : String (1c) DefaultValueFinal : Boolean InitialValue (M) : String (1c) InitialValueFinal (M) : Boolean --> <!ELEMENT Identifier (IdentifyingAttribute+)> <!ATTLIST Identifier IdentifierID CDATA #IMPLIED CompletelyOrdered (False | True) #IMPLIED> <!-- IdentifierID (M) : Identifier ID CompletelyOrdered (M) : 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 CustomVerbPhrase CDATA "" DefaultVerbPhrase CDATA #IMPLIED VerbPhrase CDATA #IMPLIED> <!-- ManualNumber : Positive Integer (1c) Number (M) : Positive Integer RelationshipID (M) : Relationship ID // Should be #IMPLIED CustomVerbPhrase : Name (1c) DefaultVerbPhrase (M) : Name VerbPhrase (M) : Name --> <!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 ManualConstrained (False | True) "False" LoopConstrained (False | True) #IMPLIED Constrained (False | True) #IMPLIED> <!-- ReferentialAttribute (R) : Name IdentifyingAttribute (R) : Name ManualConstrained : Boolean LoopConstrained (M) : Boolean Constrained (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 CustomVerbPhrase CDATA "" DefaultVerbPhrase CDATA #IMPLIED VerbPhrase CDATA #IMPLIED> <!-- ManualNumber : Positive Integer (1c) Number (M) : Positive Integer RelationshipID (M) : Relationship ID // Should be #IMPLIED CustomVerbPhrase : Name (1c) DefaultVerbPhrase (M) : Name VerbPhrase (M) : Name --> <!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 CustomVerbPhrase CDATA "" DefaultVerbPhrase CDATA #IMPLIED VerbPhrase CDATA #IMPLIED> <!-- ManualNumber : Positive Integer (1c) Number (M) : Positive Integer RelationshipID (M) : Relationship ID // Should be #IMPLIED CustomVerbPhrase : Name (1c) DefaultVerbPhrase (M) : Name VerbPhrase (M) : Name --> <!ELEMENT MathematicallyDependentRelationship (Description?, FirstParticipant, SecondParticipant, LoopTraversalMapping*, RelationshipNavigation*)> <!ATTLIST MathematicallyDependentRelationship ManualNumber CDATA "" Number CDATA #IMPLIED RelationshipID CDATA #REQUIRED CustomVerbPhrase CDATA "" DefaultVerbPhrase CDATA #IMPLIED VerbPhrase CDATA #IMPLIED ManualOperationNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- ManualNumber : Positive Integer (1c) Number (M) : Positive Integer RelationshipID (M) : Relationship ID // Should be #IMPLIED CustomVerbPhrase : Name (1c) DefaultVerbPhrase (M) : Name VerbPhrase (M) : Name ManualOperationNumbering : Boolean LabelPrefix (M) : String --> <!ELEMENT SubtypeSupertypeRelationship (Description?, SupertypeParticipant, SubtypeParticipant, SubtypeParticipant+)> <!ATTLIST SubtypeSupertypeRelationship ManualNumber CDATA "" Number CDATA #IMPLIED RelationshipID CDATA #REQUIRED CustomVerbPhrase CDATA "" DefaultVerbPhrase CDATA #IMPLIED VerbPhrase CDATA #IMPLIED DefaultSubtypeObject CDATA ""> <!-- ManualNumber : Positive Integer (1c) Number (M) : Positive Integer RelationshipID (M) : Relationship ID // Should be #IMPLIED CustomVerbPhrase : Name (1c) DefaultVerbPhrase (M) : Name VerbPhrase (M) : Name DefaultSubtypeObject (R) : Name (1c) --> <!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?, EventDataItem*, (CreationEvent | TransitionEvent)*, TransitionNote*, (SimpleState | CreationState | DeletionState)*, (Action | StateModelProcess)*, StateTransitionDiagram?)> <!ATTLIST LifecycleModel ActiveObject CDATA #REQUIRED ManualEventNumbering (False | True) "False" ManualStateNumbering (False | True) "False" ManualOperationNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- ActiveObject (R) : Name ManualEventNumbering : Boolean ManualStateNumbering : Boolean ManualOperationNumbering : Boolean LabelPrefix (M) : String --> <!ELEMENT EventDataItem (Description?)> <!ATTLIST EventDataItem Name CDATA #REQUIRED Object CDATA "" Attribute CDATA "" ManualDataType CDATA "" DataType CDATA #IMPLIED DataTypeAcceptable (False | True) #IMPLIED Many (False | True) "False" Conditional (False | True) "False" DefaultValue CDATA #IMPLIED> <!-- Name : Name Object (R) : Name (1c) Attribute (R) : Name (1c) ManualDataType (R) : Name (1c) // #REQUIRED if DefaultValue specified DataType (M) : Name (1c) DataTypeAcceptable (M) : Boolean Many : Boolean Conditional : Boolean DefaultValue : String (1c) --> <!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 EventDataItem CDATA #REQUIRED> <!-- EventDataItem (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 (ShortNote?, LongNote?)> <!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 EventDataItem CDATA #REQUIRED> <!-- EventDataItem (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?, EventDataItem*, TransitionEvent*, TransitionNote*, SimpleState*, (Action | StateModelProcess)*, StateTransitionDiagram?)> <!ATTLIST SingleAssignerModel CompetitiveRelationship CDATA #REQUIRED ManualEventNumbering (False | True) "False" ManualStateNumbering (False | True) "False" ManualOperationNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- CompetitiveRelationship (R) : Relationship ID ManualEventNumbering : Boolean ManualStateNumbering : Boolean ManualOperationNumbering : Boolean LabelPrefix (M) : String --> <!ELEMENT MultipleAssignerModel (Description?, EventDataItem*, TransitionEvent*, TransitionNote*, SimpleState*, (Action | StateModelProcess)*, StateTransitionDiagram?)> <!ATTLIST MultipleAssignerModel CompetitiveRelationship CDATA #REQUIRED PartitioningObject CDATA #REQUIRED ManualEventNumbering (False | True) "False" ManualStateNumbering (False | True) "False" ManualOperationNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- CompetitiveRelationship (R) : Relationship ID PartitioningObject (R) : Name ManualEventNumbering : Boolean ManualStateNumbering : Boolean ManualOperationNumbering : Boolean LabelPrefix (M) : String --> <!ELEMENT PolymorphicDestination (Description?, EventDataItem*, PolymorphicEvent*, PolymorphicProcess*)> <!ATTLIST PolymorphicDestination SubtypeSupertypeRelationship CDATA #REQUIRED ManualEventNumbering (False | True) "False" ManualOperationNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- SubtypeSupertypeRelationship (R) : Relationship ID ManualEventNumbering : Boolean ManualOperationNumbering : 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 ExternalEntity (Description?, EventDataItem*, DomainCrossingEvent*, ExternalEvent*, (SynchronousService | BridgingProcess | SynchronousReturnWormhole | AsynchronousReturnWormhole)*)> <!ATTLIST ExternalEntity Name CDATA #REQUIRED CustomLetters CDATA "" FirstLetters CDATA #IMPLIED KeyLetters CDATA #IMPLIED ManualEventNumbering (False | True) "False" ManualOperationNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- Name (R) : Name CustomLetters : Key Letters (1c) FirstLetters (M) : Key Letters KeyLetters (M) : Key Letters ManualEventNumbering : Boolean ManualOperationNumbering : 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 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?, (RequestMapping | SynchronousReturnMapping | AsynchronousReturnMapping | CounterpartMapping | SemanticShiftMapping)*)> <!ATTLIST Bridge ClientDomain CDATA #REQUIRED ServerDomain CDATA #REQUIRED ManualOperationNumbering (False | True) "False" LabelPrefix CDATA #IMPLIED> <!-- ClientDomain (R) : Name ServerDomain (R) : Name ManualOperationNumbering : Boolean LabelPrefix (M) : String --> <!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 -->